---
rules:
  openapi-security-schemes-error:
    description: Having components security schemes ensures that the security
      definition for an API have been standardized and are able to be applied
      across APIs. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#security-scheme-object">security
      schemes object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/security.html"
      target="_blank">OpenAPI security</a> via API Evangelist guidance.
    message: Components MUST Have a Security Schemes
    severity: error
    given: $.components
    then:
      field: securitySchemes
      function: truthy
  openapi-security-schemes-info:
    description: Having components security schemes ensures that the security
      definition for an API have been standardized and are able to be applied
      across APIs. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#security-scheme-object">security
      schemes object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/security.html"
      target="_blank">OpenAPI security</a> via API Evangelist guidance.
    message: Components Have a Security Schemes
    severity: info
    given: $.components
    then:
      field: securitySchemes
      function: falsy
  openapi-components-parameters-error:
    description: Having a components parameters object allows all parameters used
      across an API to be centralized, allowing for reuse and easier governance
      of the parameters used to configure API requests. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/parameters.html"
      target="_blank">OpenAPI parameters</a> via API Evangelist guidance.
    message: Components MUST Have a Parameters Property
    severity: error
    given: $.components
    then:
      field: parameters
      function: truthy
  openapi-components-parameters-info:
    description: Having a components parameters object allows all parameters used
      across an API to be centralized, allowing for reuse and easier governance
      of the parameters used to configure API requests. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/parameters.html"
      target="_blank">OpenAPI parameters</a> via API Evangelist guidance.
    message: Components Have a Parameters Property
    severity: info
    given: $.components
    then:
      field: parameters
      function: falsy
  openapi-components-parameters-description-error:
    description: Having a parameters description provides more depth to what a
      parameter does and will be displayed via documentation, and other tooling
      used across the API lifecycle. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/parameters.html"
      target="_blank">OpenAPI parameters</a> via API Evangelist guidance.
    message: Parameters MUST Have a Description
    given: $.paths.*.*.parameters.*
    then:
      field: description
      function: truthy
  openapi-components-parameters-description-info:
    description: Having a parameters description provides more depth to what a
      parameter does and will be displayed via documentation, and other tooling
      used across the API lifecycle. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/parameters.html"
      target="_blank">OpenAPI parameters</a> via API Evangelist guidance.
    message: Parameters Have a Description
    severity: info
    given: $.components.parameters.*
    then:
      field: description
      function: falsy
  openapi-components-parameters-description-length-error:
    description: Limiting the length of parameters description forces us to be more
      concise in how we describe each parameter, while keeping our documentation
      and other ways descriptions show up in discovery and portals more
      consistent. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/parameters.html"
      target="_blank">OpenAPI parameters</a> via API Evangelist guidance.
    message: Parameters Description MUST Be Less Than 500 Characters
    given: $.components.parameters.*
    then:
      field: summary
      function: length
      functionOptions:
        max: 500
  openapi-components-parameters-enum-casing-error:
    description: Keeping parameters enumerator casing consistent across APIs helps
      reduce confusion by consumers, and can keep aligned with services and
      applications putting an API to work. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html##parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-enum.html"
      target="_blank">OpenAPI parameter enums</a> via API Evangelist guidance.
    message: Parameters Enums MUST Must Be Upper Snake Case
    severity: error
    given: $.components.parameters.*.enum.*
    then:
      function: pattern
      functionOptions:
        notMatch: ^[A-Z]+(?:_[A-Z]+)*$
  openapi-components-parameters-enum-casing-info:
    description: Keeping parameters enumerator casing consistent across APIs helps
      reduce confusion by consumers, and can keep aligned with services and
      applications putting an API to work. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html##parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-enum.html"
      target="_blank">OpenAPI parameter enums</a> via API Evangelist guidance.
    message: Parameters Enums Are Upper Snake Case
    severity: info
    given: $.components.parameters.*.enum.*
    then:
      function: pattern
      functionOptions:
        match: ^[A-Z]+(?:_[A-Z]+)*$
  openapi-components-parameters-enum-info:
    description: Providing enums for your parameters helps reduce errors and keeps
      the inputs for your API requests more consistent for consumers. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-enum.html"
      target="_blank">OpenAPI parameter enums</a> via API Evangelist guidance.
    message: Parameters Have Enum
    severity: info
    given: $.components.parameters.*
    then:
      field: enum
      function: falsy
  openapi-components-parameters-in-error:
    description: Providing an in property for parameters gets explicit about whether
      a parameter is in the path, query, or a header, making it clear to
      consumers where they can configure their request. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-in.html"
      target="_blank">OpenAPI parameter in</a> via API Evangelist guidance.
    message: Parameters In Property MUST Be Set
    given: $.components.parameters.*
    then:
      field: in
      function: truthy
  openapi-components-parameters-in-info:
    description: Providing an in property for parameters gets explicit about whether
      a parameter is in the path, query, or a header, making it clear to
      consumers where they can configure their request. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-in.html"
      target="_blank">OpenAPI parameter in</a> via API Evangelist guidance.
    message: Parameters In Property Is Set
    severity: info
    given: $.components.parameters.*
    then:
      field: in
      function: falsy
  openapi-components-parameters-name-error:
    description: Providing a simple, intuitive, and consistent names for your
      parameters helps make it easier for API consumers to understand how they
      are able to configure their API requests. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-names.html"
      target="_blank">OpenAPI parameter names</a> via API Evangelist guidance.
    message: Parameters MUST Have a Name
    severity: error
    given: $.components.parameters.*
    then:
      field: name
      function: truthy
  openapi-components-parameters-name-info:
    description: Providing a simple, intuitive, and consistent names for your
      parameters helps make it easier for API consumers to understand how they
      are able to configure their API requests. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-names.html"
      target="_blank">OpenAPI parameter names</a> via API Evangelist guidance.
    message: Parameters Have a Name
    severity: info
    given: $.components.parameters.*
    then:
      field: name
      function: falsy
  openapi-components-parameters-name-length-error:
    description: Providing short and concise names for your parameters helps make it
      easier for API consumers to understand how they are able to configure
      their API requests. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-names.html"
      target="_blank">OpenAPI parameter names</a> via API Evangelist guidance.
    message: Parameters Name Length MUST Be Less Than 25 Characters
    given: $.components.parameters[?(@.in=='path')].name
    then:
      field: summary
      function: length
      functionOptions:
        max: 25
  openapi-components-parameters-casing-camel-error:
    description: Providing parameters with consistent naming helps make it easier
      for API consumers to understand how they are able to configure their API
      requests. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-names.html"
      target="_blank">OpenAPI parameter casing</a> via API Evangelist guidance.
    message: Parameters Names MUST Be Camel Case
    severity: error
    given: $.components.parameters.*
    then:
      - field: name
        function: pattern
        functionOptions:
          notMatch: ^[a-z]+(?:[A-Z][a-z]+)*$
      - field: name
        function: pattern
        functionOptions:
          match: ^[A-Z](([a-z0-9]+[A-Z]?)*)$
  openapi-components-parameters-casing-camel-info:
    description: Providing parameters with consistent naming helps make it easier
      for API consumers to understand how they are able to configure their API
      requests. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-names.html"
      target="_blank">OpenAPI parameter casing</a> via API Evangelist guidance.
    message: Parameters Names Are Camel Case
    severity: info
    given: $.components.parameters.*
    then:
      - field: name
        function: pattern
        functionOptions:
          notMatch: ^[a-z]+(?:[A-Z][a-z]+)*$
      - field: name
        function: pattern
        functionOptions:
          match: ^[A-Z](([a-z0-9]+[A-Z]?)*)$
  openapi-components-parameters-schema-error:
    description: Parameters must always possess a schema to help define the format
      and shape of the parameter, setting expections with consumers about what
      should be passed in. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-schema.html"
      target="_blank">OpenAPI parameter schema</a> via API Evangelist guidance.
    message: Parameters MUST Have Schema
    given: $.components.parameters.*
    then:
      field: schema
      function: truthy
  openapi-components-parameters-schema-info:
    description: Parameters must always possess a schema to help define the format
      and shape of the parameter, setting expections with consumers about what
      should be passed in. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-schema.html"
      target="_blank">OpenAPI parameter schema</a> via API Evangelist guidance.
    message: Parameters Have Schema
    severity: info
    given: $.components.parameters.*
    then:
      field: schema
      function: falsy
  openapi-components-parameters-schema-ref-error:
    description: Parameters must always use a schema reference that utilizes
      reusable schema that are defined as part of a centralized schema
      components library. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-schema.html"
      target="_blank">OpenAPI parameter schema</a> via API Evangelist guidance.
    message: Parameters MUST Use Schema Reference
    severity: error
    given: $.components.parameters.*.schema
    then:
      field: $ref
      function: falsy
  openapi-components-parameters-schema-ref-info:
    description: Parameters must always use a schema reference that utilizes
      reusable schema that are defined as part of a centralized schema
      components library. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-schema.html"
      target="_blank">OpenAPI parameter schema</a> via API Evangelist guidance.
    message: Parameters Use Schema Reference
    severity: info
    given: $.components.parameters.*.schema
    then:
      field: $ref
      function: truthy
  openapi-components-parameters-schema-items-array-error:
    description: Parameters that are of an array type should always have the items
      defined, being explicit about what is continued as part of the array. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-schema.html"
      target="_blank">OpenAPI parameter schema</a> via API Evangelist guidance.
    message: Parameter Schema Array MUST Have Items
    given: $.components.parameters.schema[?(@.type=='array')]
    then:
      field: items
      function: truthy
  openapi-components-parameters-schema-items-array-info:
    description: Parameters that are of an array type should always have the items
      defined, being explicit about what is continued as part of the array. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-schema.html"
      target="_blank">OpenAPI parameter schema</a> via API Evangelist guidance.
    message: Parameter Schema Array MUST Has Items
    severity: info
    given: $.components.parameters.schema[?(@.type=='array')]
    then:
      field: items
      function: falsy
  openapi-components-parameters-schema-type-error:
    description: Parameters must always have their schema type defined, being
      precise about what type of data can be inputted and used to configure an
      API request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-schema.html"
      target="_blank">OpenAPI parameter schema</a> via API Evangelist guidance.
    message: Parameter Schema Type
    given: $.components.parameters.*.schema
    then:
      field: type
      function: truthy
  openapi-components-parameters-schema-type-info:
    description: Parameters must always have their schema type defined, being
      precise about what type of data can be inputted and used to configure an
      API request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-schema.html"
      target="_blank">OpenAPI parameter schema</a> via API Evangelist guidance.
    message: Parameter Schema Type
    severity: info
    given: $.components.parameters.*.schema
    then:
      field: type
      function: falsy
  openapi-components-parameters-schema-type-integer-maximum-info:
    description: Parameters that are of the integer schema type must have their
      maximum value set, defining the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type Integer Maximum
    given:
      - $.components.parameters.[?(@.type=='integer')]
    severity: info
    then:
      field: maximum
      function: falsy
  openapi-components-parameters-schema-type-integer-maximum-warn:
    description: Parameters that are of the integer schema type must have their
      maximum value set, defining the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type Integer Maximum
    given:
      - $.components.parameters.[?(@.type=='integer')]
    severity: warn
    then:
      field: maximum
      function: truthy
  openapi-components-parameters-schema-type-integer-minimum-info:
    description: Parameters that are of the integer schema type must have their
      minimum value set, defining the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type Integer Minimum
    given:
      - $.components.parameters.[?(@.type=='integer')]
    severity: info
    then:
      field: minimum
      function: falsy
  openapi-components-parameters-schema-type-integer-minimum-warn:
    description: Parameters that are of the integer schema type must have their
      minimum value set, defining the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type Integer Minimum
    given:
      - $.components.parameters.[?(@.type=='integer')]
    severity: warn
    then:
      field: minimum
      function: truthy
  openapi-components-parameters-schema-type-string-maxlength-info:
    description: Parameters that are of the type string schema type must have their
      maximum value set, defining the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type String MaxLength
    given:
      - $.components.parameters.[?(@.type=='string')]
    severity: info
    then:
      field: maxLength
      function: falsy
  openapi-components-parameters-schema-type-string-maxlength-warn:
    description: Parameters that are of the string schema type must have their
      maximum value set, defining the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type String MaxLength
    given:
      - $.components.parameters.[?(@.type=='string')]
    severity: warn
    then:
      field: maxLength
      function: truthy
  openapi-components-parameters-schema-type-string-minlength-info:
    description: Parameters that are of the string schema type must have their
      minimum value set, defining the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type String MinLength
    given:
      - $.components.parameters.[?(@.type=='string')]
    severity: info
    then:
      field: minLength
      function: falsy
  openapi-components-parameters-schema-type-string-minlength-warn:
    description: Parameters that are of the string schema type must have their
      minimum value set, defining the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type String MinLength
    given:
      - $.components.parameters.[?(@.type=='string')]
    severity: warn
    then:
      field: minLength
      function: truthy
  openapi-components-parameters-schema-type-string-pattern-info:
    description: Parameters that are of the string schema type must have a pattern
      set, using a regex to define the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type String Pattern
    given:
      - $.components.parameters.[?(@.type=='string')]
    severity: info
    then:
      field: pattern
      function: falsy
  openapi-components-parameters-schema-type-string-pattern-warn:
    description: Parameters that are of the string schema type must have a pattern
      set, using a regex to define the shape of parameter data passed in with a
      request. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#parameter-object">parameters
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-parameter-types.html"
      target="_blank">OpenAPI parameter types</a> via API Evangelist guidance.
    message: Parameter Schema Type String Pattern
    given:
      - $.components.parameters.[?(@.type=='string')]
    severity: warn
    then:
      field: pattern
      function: truthy
  openapi-components-examples-error:
    description: Utilizing an example object in the centralized OpenAPI components
      library helps make examples reusable across API requests and responses.
      Having examples centralized makes it easier to define, use, but also
      govern and analyze the examples provided across APIs. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      example object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-examples.html"
      target="_blank">components examples</a> via API Evangelist guidance.
    message: Components MUST Have a Examples Property
    severity: error
    given: $.components
    then:
      field: examples
      function: truthy
  openapi-components-examples-info:
    description: Utilizing an example object in the centralized OpenAPI components
      library helps make examples reusable across API requests and responses.
      Having examples centralized makes it easier to define, use, but also
      govern and analyze the examples provided across APIs. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      example object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-examples.html"
      target="_blank">components examples</a> via API Evangelist guidance.
    message: Components Have a Examples Property
    severity: info
    given: $.components
    then:
      field: examples
      function: falsy
  openapi-components-schemas-error:
    description: Utilizing the schema object in the centralized OpenAPI components
      library helps make schema reusable across API requests and responses.
      Having schema centralized makes it easier to define, use, but also govern
      and analyze the schema provided across APIs. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      example object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-schema.html"
      target="_blank">components examples</a> via API Evangelist guidance.
    message: Components MUST Have a Schema Property
    severity: error
    given: $.components
    then:
      field: schemas
      function: truthy
  openapi-components-schemas-info:
    description: Utilizing the schema object in the centralized OpenAPI components
      library helps make schema reusable across API requests and responses.
      Having schema centralized makes it easier to define, use, but also govern
      and analyze the schema provided across APIs. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      example object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-schema.html"
      target="_blank">components examples</a> via API Evangelist guidance.
    message: Components Have a Schema Property
    severity: info
    given: $.components
    then:
      field: schemas
      function: falsy
  openapi-components-headers-error:
    description: Utilizing the headers object in the centralized OpenAPI components
      library helps make headers reusable across API requests and responses.
      Having headers centralized makes it easier to define, use, but also govern
      and analyze the headers provided across APIs. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      example object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-headers.html"
      target="_blank">components examples</a> via API Evangelist guidance.
    message: Components MUST Have a Headers Property
    severity: error
    given: $.components
    then:
      field: headers
      function: truthy
  openapi-components-headers-info:
    description: Utilizing the headers object in the centralized OpenAPI components
      library helps make headers reusable across API requests and responses.
      Having headers centralized makes it easier to define, use, but also govern
      and analyze the headers provided across APIs. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      example object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-headers.html"
      target="_blank">components examples</a> via API Evangelist guidance.
    message: Components Have a Headers Property
    severity: info
    given: $.components
    then:
      field: headers
      function: falsy
  openapi-components-headers-rate-limit-error:
    description: Utilizing centralized headers rate limits allows you to reuse
      headers across all API requests and responses, enabling a more organized
      approach to handling the transport and rate limits applied consistently
      across all APIs You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#header-object">header
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/headers-rate-limits.html"
      target="_blank">rate limit headers</a> via API Evangelist guidance.
    message: Components MUST Have Rate Limit Headers
    severity: error
    given: $.components.headers
    then:
      field: RateLimit
      function: truthy
  openapi-components-headers-rate-limit-info:
    description: Utilizing centralized headers rate limits allows you to reuse
      headers across all API requests and responses, enabling a more organized
      approach to handling the transport and rate limits applied consistently
      across all APIs You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#header-object">header
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/headers-rate-limits.html"
      target="_blank">rate limit headers</a> via API Evangelist guidance.
    message: Components Have Rate Limit Headers
    severity: info
    given: $.components.headers
    then:
      field: RateLimit
      function: falsy
  openapi-components-headers-retry-after-error:
    description: Utilizing centralized retry after headers allows you to reuse
      headers across all API requests and responses, enabling a more organized
      approach to handling the transport and rate limiting applied consistently
      across all APIs You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#header-object">header
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/headers-retry-after.html"
      target="_blank">retry after headers</a> via API Evangelist guidance.
    message: Components MUST have a retry after headers.
    severity: error
    given: $.components.headers
    then:
      field: Retry-After
      function: truthy
  openapi-components-headers-retry-after-info:
    description: Utilizing centralized retry after headers allows you to reuse
      headers across all API requests and responses, enabling a more organized
      approach to handling the transport and rate limiting applied consistently
      across all APIs You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#header-object">header
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/headers-retry-after.html"
      target="_blank">retry after headers</a> via API Evangelist guidance.
    message: Components has a retry after header.
    severity: info
    given: $.components.headers
    then:
      field: Retry-After
      function: falsy
  openapi-components-responses-error:
    description: Utilizing the responses object in the centralized OpenAPI
      components library helps make responses reusable across API requests.
      Having responses centralized makes it easier to define, use, but also
      govern and analyze the responses provided across APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-responses.html"
      target="_blank">components responses</a> via API Evangelist guidance.
    message: Components MUST have a responses property.
    severity: error
    given: $.components
    then:
      field: responses
      function: truthy
  openapi-components-responses-info:
    description: Utilizing the responses object in the centralized OpenAPI
      components library helps make responses reusable across API requests.
      Having responses centralized makes it easier to define, use, but also
      govern and analyze the responses provided across APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-responses.html"
      target="_blank">components responses</a> via API Evangelist guidance.
    message: Components has a responses property.
    severity: info
    given: $.components
    then:
      field: responses
      function: falsy
  openapi-components-responses-bad-request-error:
    description: Having a bad request responses in the centralized OpenAPI
      components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-bad-request.html"
      target="_blank">bad request responses</a> via API Evangelist guidance.
    message: Components MUST have a bad request response.
    severity: error
    given: $.components.responses
    then:
      field: BadRequest
      function: truthy
  openapi-components-responses-bad-request-info:
    description: Having a bad request responses in the centralized OpenAPI
      components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-bad-request.html"
      target="_blank">bad request responses</a> via API Evangelist guidance.
    message: Components has a bad request response.
    severity: info
    given: $.components.responses
    then:
      field: BadRequest
      function: falsy
  openapi-components-responses-conflict-error:
    description: Having a conflict responses in the centralized OpenAPI components
      library helps make error responses reusable across API requests. Having
      error responses centralized makes it easier to define, use, but also
      govern and analyze the responses provided across APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-conflict.html"
      target="_blank">conflict responses</a> via API Evangelist guidance.
    message: Components MUST have a conflict response.
    severity: error
    given: $.components.responses
    then:
      field: Conflict
      function: truthy
  openapi-components-responses-conflict-info:
    description: Having a conflict responses in the centralized OpenAPI components
      library helps make error responses reusable across API requests. Having
      error responses centralized makes it easier to define, use, but also
      govern and analyze the responses provided across APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-conflict.html"
      target="_blank">conflict responses</a> via API Evangelist guidance.
    message: Components has a conflict response.
    severity: info
    given: $.components.responses
    then:
      field: Conflict
      function: falsy
  openapi-components-responses-forbidden-error:
    description: Having a forbidden responses in the centralized OpenAPI components
      library helps make error responses reusable across API requests. Having
      error responses centralized makes it easier to define, use, but also
      govern and analyze the responses provided across APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-forbidden.html"
      target="_blank">forbidden responses</a> via API Evangelist guidance.
    message: Components MUST have a forbidden response.
    severity: error
    given: $.components.responses
    then:
      field: Forbidden
      function: truthy
  openapi-components-responses-forbidden-info:
    description: Having a forbidden responses in the centralized OpenAPI components
      library helps make error responses reusable across API requests. Having
      error responses centralized makes it easier to define, use, but also
      govern and analyze the responses provided across APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-forbidden.html"
      target="_blank">forbidden responses</a> via API Evangelist guidance.
    message: Components has a forbidden response.
    severity: info
    given: $.components.responses
    then:
      field: Forbidden
      function: falsy
  openapi-components-responses-internal-server-error-error:
    description: Having a internal server error responses in the centralized OpenAPI
      components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-internal-server-error.html"
      target="_blank">internal server error responses</a> via API Evangelist
      guidance.
    message: Components MUST have a internal server error response.
    severity: error
    given: $.components.responses
    then:
      field: InternalServerError
      function: truthy
  openapi-components-responses-internal-server-error-info:
    description: Having a internal server error responses in the centralized OpenAPI
      components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-internal-server-error.html"
      target="_blank">internal server error responses</a> via API Evangelist
      guidance.
    message: Components has a internal server error response.
    severity: info
    given: $.components.responses
    then:
      field: InternalServerError
      function: falsy
  openapi-components-responses-not-found-error:
    description: Having a not found error responses in the centralized OpenAPI
      components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-not-found-error.html"
      target="_blank">not found error responses</a> via API Evangelist guidance.
    message: Components MUST have a not found response.
    severity: error
    given: $.components.responses
    then:
      field: NotFound
      function: truthy
  openapi-components-responses-not-found-info:
    description: Having a not found error responses in the centralized OpenAPI
      components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-not-found-error.html"
      target="_blank">not found error responses</a> via API Evangelist guidance.
    message: Components has a not found response.
    severity: info
    given: $.components.responses
    then:
      field: NotFound
      function: falsy
  openapi-components-responses-too-many-requests-error:
    description: Having a too many requests error responses in the centralized
      OpenAPI components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-too-man-requests-error.html"
      target="_blank">too many requests error responses</a> via API Evangelist
      guidance.
    message: Components MUST have a too many requests response.
    severity: error
    given: $.components.responses
    then:
      field: TooManyRequests
      function: truthy
  openapi-components-responses-too-many-requests-info:
    description: Having a too many requests error responses in the centralized
      OpenAPI components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-too-man-requests-error.html"
      target="_blank">too many requests error responses</a> via API Evangelist
      guidance.
    message: Components has a too many requests response.
    severity: info
    given: $.components.responses
    then:
      field: TooManyRequests
      function: falsy
  openapi-components-responses-unauthorized-error:
    description: Having a unauthorized error responses in the centralized OpenAPI
      components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-unauthorized-error.html"
      target="_blank">unauthorized error responses</a> via API Evangelist
      guidance.
    message: Components MUST have a unauthorized response.
    severity: error
    given: $.components.responses
    then:
      field: Unauthorized
      function: truthy
  openapi-components-responses-unauthorized-info:
    description: Having a unauthorized error responses in the centralized OpenAPI
      components library helps make error responses reusable across API
      requests. Having error responses centralized makes it easier to define,
      use, but also govern and analyze the responses provided across APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      responses object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/responses-unauthorized-error.html"
      target="_blank">unauthorized error responses</a> via API Evangelist
      guidance.
    message: Components has a unauthorized response.
    severity: info
    given: $.components.responses
    then:
      field: Unauthorized
      function: falsy
  openapi-external-docs-error:
    description: Having an external documentation link present in the OpenAPI for an
      API, makes it easy for API producers or consumers to find their way to the
      rest of the operations and resources available around an API. External
      docs link should take consumers straight to the documentation for whatever
      API is defined by the OpenAPI, which gets rendered in any services or
      tooling using the OpenAPI. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#external-documentation-object">external
      docs object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/external-docs.html"
      target="_blank">external documentation</a> via API Evangelist guidance.
    message: OpenAPI MUST Have External Documentation
    severity: error
    given: $
    then:
      field: externalDocs
      function: truthy
  openapi-external-docs-info:
    description: Having an external documentation link present in the OpenAPI for an
      API, makes it easy for API producers or consumers to find their way to the
      rest of the operations and resources available around an API. External
      docs link should take consumers straight to the documentation for whatever
      API is defined by the OpenAPI, which gets rendered in any services or
      tooling using the OpenAPI. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#external-documentation-object">external
      docs object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/external-docs.html"
      target="_blank">external documentation</a> via API Evangelist guidance.
    message: OpenAPI Has External Documentation
    severity: info
    given: $
    then:
      field: externalDocs
      function: falsy
  openapi-info-contact-email-error:
    description: Having a contact email address associated with the technical
      contract ensures that anyone who comes across the API has someone to email
      and get more information. Ideally the email is a general email, but in
      some situations an individual email is acceptable. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#contact-object">contact
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-contact.html"
      target="_blank">contact email</a> via API Evangelist guidance.
    message: Info MUST Have Contact Email
    given: $.info.contact
    severity: error
    then:
      field: email
      function: truthy
  openapi-info-contact-email-info:
    description: Having a contact email address associated with the technical
      contract ensures that anyone who comes across the API has someone to email
      and get more information. Ideally the email is a general email, but in
      some situations an individual email is acceptable. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#contact-object">contact
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-contact.html"
      target="_blank">contact email</a> via API Evangelist guidance.
    message: Info Has Contact Email
    given: $.info.contact
    severity: info
    then:
      field: email
      function: falsy
  openapi-info-contact-error:
    description: Having a contact object associated with the technical contract
      ensures that anyone who comes across the API has someone to contact and
      get more information. A contact object can nave a name, email, and URL
      that consumers of the API can use to get more information. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#contact-object">contact
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-contact.html"
      target="_blank">contact info</a> via API Evangelist guidance.
    message: Info MUST Have Contact Object
    severity: error
    given: $.info
    then:
      field: contact
      function: truthy
  openapi-info-contact-info:
    description: Having a contact object associated with the technical contract
      ensures that anyone who comes across the API has someone to contact and
      get more information. A contact object can nave a name, email, and URL
      that consumers of the API can use to get more information. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#contact-object">contact
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-contact.html"
      target="_blank">contact info</a> via API Evangelist guidance.
    message: Info Has Contact Object
    severity: info
    given: $.info
    then:
      field: contact
      function: falsy
  openapi-info-contact-name-error:
    description: Having a contact name associated with the technical contract
      ensures that anyone who comes across the API knows who to contact. Ideally
      the name is a general domain, line of business, or team name, but in some
      situations an individual name is acceptable. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#contact-object">contact
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-contact.html"
      target="_blank">contact name</a> via API Evangelist guidance.
    message: Info MUST Have Contact Name
    given: $.info.contact
    severity: error
    then:
      field: name
      function: truthy
  openapi-info-contact-name-info:
    description: Having a contact name associated with the technical contract
      ensures that anyone who comes across the API knows who to contact. Ideally
      the name is a general domain, line of business, or team name, but in some
      situations an individual name is acceptable. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#contact-object">contact
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-contact.html"
      target="_blank">contact name</a> via API Evangelist guidance.
    message: Info Has Contact Name
    given: $.info.contact
    severity: info
    then:
      field: name
      function: falsy
  openapi-info-contact-url-error:
    description: Having a contact url associated with the technical contract ensures
      that anyone who comes across the API knows where to go to contact someone.
      The URL could be to a contact form, support page, chat, forum, or other
      channel. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#contact-object">contact
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-contact.html"
      target="_blank">contact url</a> via API Evangelist guidance.
    message: Info MUST Have Contact URL
    given: $.info.contact
    severity: error
    then:
      field: url
      function: truthy
  openapi-info-contact-url-info:
    description: Having a contact url associated with the technical contract ensures
      that anyone who comes across the API knows where to go to contact someone.
      The URL could be to a contact form, support page, chat, forum, or other
      channel. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#contact-object">contact
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-contact.html"
      target="_blank">contact url</a> via API Evangelist guidance.
    message: Info Has Contact URL
    given: $.info.contact
    severity: info
    then:
      field: url
      function: falsy
  openapi-info-description-error:
    description: Having a detailed description as part of the OpenAPI info object
      helps describe what a collection of paths and operations does for
      consumers, providing a short, concise, and relevant couple of paragraphs
      about the value that is represented as the OpenAPI. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-description.html"
      target="_blank">OpenAPI info description</a> via API Evangelist guidance.
    message: Info MUST Have Description
    severity: error
    given: $.info
    then:
      field: description
      function: truthy
  openapi-info-description-info:
    description: Having a detailed description as part of the OpenAPI info object
      helps describe what a collection of paths and operations does for
      consumers, providing a short, concise, and relevant couple of paragraphs
      about the value that is represented as the OpenAPI. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-description.html"
      target="_blank">OpenAPI info description</a> via API Evangelist guidance.
    message: Info Has Description
    severity: info
    given: $.info
    then:
      field: description
      function: falsy
  openapi-info-description-length-error:
    description: Having a restriction on the length of the API description expressed
      as the OpenAPI info description helps provide constraints for consumers
      when adding a description, and keeps portals, landing pages,
      documentation, and discovery results more consistent. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-description.html"
      target="_blank">OpenAPI info description</a> via API Evangelist guidance.
    message: Info description MUST be less than 500 characters.
    severity: error
    given: $.info
    then:
      field: description
      function: length
      functionOptions:
        max: 500
  openapi-info-error:
    description: Having an info object provides much of the metadata needed for the
      collection of APIs described in an OpenAPI. Title, description, tags,
      version, and other properties are available for describing what value APIs
      provide to consumers. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info.html"
      target="_blank">info object</a> via API Evangelist guidance.
    message: Info Object MUST Exist
    severity: error
    given: $
    then:
      field: info
      function: truthy
  openapi-info-info:
    description: Having an info object provides much of the metadata needed for the
      collection of APIs described in an OpenAPI. Title, description, tags,
      version, and other properties are available for describing what value APIs
      provide to consumers. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info.html"
      target="_blank">info object</a> via API Evangelist guidance.
    message: Info Object Exists
    severity: info
    given: $
    then:
      field: info
      function: truthy
  openapi-info-license-error:
    description: Having a license associated with an OpenAPI using the info
      licensing property ensures that the legal aspects of licensing the API
      always travel with the technical contract for an API. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info MUST Have License
    severity: error
    given: $.info
    then:
      field: license
      function: truthy
  openapi-info-license-info:
    description: Having a license associated with an OpenAPI using the info
      licensing property ensures that the legal aspects of licensing the API
      always travel with the technical contract for an API. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info Has License
    severity: info
    given: $.info
    then:
      field: license
      function: falsy
  openapi-info-license-identifier-cc-by-nc-sa-error:
    description: Having a Create Commons CC BY NC SA license associated with an
      OpenAPI using the info licensing property ensures that the legal aspects
      of licensing the API always travel with the technical contract for an API.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info MUST Have CC-BY-NC-SA 4.0 License
    given: $.info.license
    severity: error
    then:
      field: identifier
      function: pattern
      functionOptions:
        match: ^\b(CC-BY-NC-SA-4.0)\b
  openapi-info-license-identifier-cc-by-nc-sa-info:
    description: Having a Create Commons CC BY NC SA license associated with an
      OpenAPI using the info licensing property ensures that the legal aspects
      of licensing the API always travel with the technical contract for an API.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info Has CC-BY-NC-SA 4.0 License
    given: $.info.license
    severity: info
    then:
      field: identifier
      function: pattern
      functionOptions:
        match: ^\b(CC-BY-NC-SA-4.0)\b
  openapi-info-license-identifier-error:
    description: Having a license identifier associated with an OpenAPI using the
      info licensing property ensures that the legal aspects of licensing the
      API always travel with the technical contract for an API. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info MUST Have License Identifier
    given: $.info.license
    severity: error
    then:
      field: identifier
      function: truthy
  openapi-info-license-identifier-info:
    description: Having a license identifier associated with an OpenAPI using the
      info licensing property ensures that the legal aspects of licensing the
      API always travel with the technical contract for an API. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info Has License Identifier
    given: $.info.license
    severity: info
    then:
      field: identifier
      function: falsy
  openapi-info-license-name-error:
    description: Having a license name associated with an OpenAPI using the info
      licensing property ensures that the legal aspects of licensing the API
      always travel with the technical contract for an API. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info MUST Have License Name
    given: $.info.license
    severity: error
    then:
      field: name
      function: truthy
  openapi-info-license-name-info:
    description: Having a license name associated with an OpenAPI using the info
      licensing property ensures that the legal aspects of licensing the API
      always travel with the technical contract for an API. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info License Name
    given: $.info.license
    severity: info
    then:
      field: name
      function: falsy
  openapi-info-license-url-error:
    description: Having a license url associated with an OpenAPI using the info
      licensing property ensures that the legal aspects of licensing the API
      always travel with the technical contract for an API. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info MUST Have License URL
    given: $.info.license
    severity: error
    then:
      field: url
      function: truthy
  openapi-info-license-url-info:
    description: Having a license url associated with an OpenAPI using the info
      licensing property ensures that the legal aspects of licensing the API
      always travel with the technical contract for an API. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#license-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-license.html"
      target="_blank">API license</a> via API Evangelist guidance.
    message: Info Has License URL
    given: $.info.license
    severity: info
    then:
      field: url
      function: falsy
  openapi-info-terms-of-service-error:
    description: Having a terms of service associated with an OpenAPI using the info
      terms of service property ensures that the legal aspects of legal side of
      the API always travel with the technical contract for an API. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-terms-of-service.html"
      target="_blank">API terms of service</a> via API Evangelist guidance.
    message: Info MUST Have Terms of Service
    severity: error
    given: $.info
    then:
      field: termsOfService
      function: truthy
  openapi-info-terms-of-service-info:
    description: Having a terms of service associated with an OpenAPI using the info
      terms of service property ensures that the legal aspects of legal side of
      the API always travel with the technical contract for an API. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">license
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-terms-of-service.html"
      target="_blank">API terms of service</a> via API Evangelist guidance.
    message: Info Has Terms of Service
    severity: info
    given: $.info
    then:
      field: termsOfService
      function: falsy
  openapi-info-title-error:
    description: Having a intuitive and helpful title for your API using the OpenAPI
      info title is the first impression you will make on the consumers of your
      API. Your title should be about what the API does and not how you built
      the API, focusing on how the consumers will see things. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-title.html"
      target="_blank">API title</a> via API Evangelist guidance.
    message: Info MUST Have Title
    severity: error
    given: $.info
    then:
      field: title
      function: truthy
  openapi-info-title-info:
    description: Having a intuitive and helpful title for your API using the OpenAPI
      info title is the first impression you will make on the consumers of your
      API. Your title should be about what the API does and not how you built
      the API, focusing on how the consumers will see things. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-title.html"
      target="_blank">API title</a> via API Evangelist guidance.
    message: Info Has Title
    severity: info
    given: $.info
    then:
      field: title
      function: falsy
  openapi-info-title-length-error:
    description: Having a limitation on the length of the title for your API helps
      provide constraints for teams naming it, but also keep consistent with
      other APIs from across teams. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-title.html"
      target="_blank">API title length</a> via API Evangelist guidance.
    message: Info Title MUST Be Less Than 50 Characters
    severity: error
    given: $.info
    then:
      field: title
      function: length
      functionOptions:
        max: 50
  openapi-info-title-upper-case-error:
    description: Having a consistent casing for the title for your API helps provide
      constraints for teams naming the API, but also keep consistent with other
      APIs from across teams. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-title.html"
      target="_blank">API title casing</a> via API Evangelist guidance.
    message: Info Title Has First Characters Capitalized
    severity: error
    given: $.info.title
    then:
      function: pattern
      functionOptions:
        match: "[A-Z]\\w*"
  openapi-info-title-upper-case-info:
    description: Having a consistent casing for the title for your API helps provide
      constraints for teams naming the API, but also keep consistent with other
      APIs from across teams. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-title.html"
      target="_blank">API title casing</a> via API Evangelist guidance.
    message: Info Title MUST Have First Characters Capitalized
    severity: info
    given: $.info.title
    then:
      function: pattern
      functionOptions:
        notMatch: "[A-Z]\\w*"
  openapi-info-version-error:
    description: Publishing a version for your OpenAPI technical contract helps you
      communicate change with consumers using Semantic or date-based versioning
      published to the info version property. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-version.html"
      target="_blank">API versioning</a> via API Evangelist guidance.
    message: Info MUST Have Version
    given: $.info
    severity: error
    then:
      field: version
      function: truthy
  openapi-info-version-info:
    description: Publishing a version for your OpenAPI technical contract helps you
      communicate change with consumers using Semantic or date-based versioning
      published to the info version property. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-version.html"
      target="_blank">API versioning</a> via API Evangelist guidance.
    message: Info Has Version
    given: $.info
    severity: info
    then:
      field: version
      function: falsy
  openapi-version-date-info:
    description: Publishing a version for your OpenAPI technical contract helps you
      communicate change with consumers using date-based versioning published to
      the info version property. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-version.html"
      target="_blank">API versioning</a> via API Evangelist guidance.
    message: Date Versioning
    severity: info
    given: $.info.version
    then:
      function: pattern
      functionOptions:
        notMatch: ^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))?$
  openapi-version-semantic-info:
    description: Publishing a version for your OpenAPI technical contract helps you
      communicate change with consumers using Semantic versioning published to
      the info version property. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#info-object">info object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/info-version.html"
      target="_blank">API versioning</a> via API Evangelist guidance.
    message: Semantic Versioning
    severity: info
    given: $.info.version
    then:
      function: pattern
      functionOptions:
        notMatch: "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(-(0|[1-9A-Za-z-\
          ][0-9A-Za-z-]*)(\\.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]\
          +)*)?$      "
  openapi-no-api-in-path-error:
    description: There are very few situations where you actually want the acronym
      API in the path of your API. An API is an API, and doesn't need to
      described as one, leaving the path segments for more meaningful nouns and
      verbs that impact how consumers will use an API. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#paths-object">paths object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/paths.html"
      target="_blank">paths</a> via API Evangelist guidance.
    message: No API in Path
    severity: error
    given: $.paths.*~
    then:
      function: pattern
      functionOptions:
        match: ^\b(API|api)\b
  openapi-no-api-in-path-info:
    description: There are very few situations where you actually want the acronym
      API in the path of your API. An API is an API, and doesn't need to
      described as one, leaving the path segments for more meaningful nouns and
      verbs that impact how consumers will use an API. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#paths-object">paths object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/paths.html"
      target="_blank">paths</a> via API Evangelist guidance.
    severity: info
    given: $.paths.*~
    then:
      function: pattern
      functionOptions:
        notMatch: \b(API|api)\b
  openapi-no-path-trailing-slash-error:
    description: It is common to be explicit and consistent about whether or not to
      have a trailing slack on each API path. This property checks whether or
      not there is a trailing slash for each of the paths expressed in the
      OpenAPI. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#paths-object">paths object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/paths.html"
      target="_blank">paths</a> via API Evangelist guidance.
    message: Path Trailing Slash
    severity: error
    given: $.paths.*~
    then:
      function: pattern
      functionOptions:
        notMatch: /$
  openapi-no-path-trailing-slash-info:
    description: It is common to be explicit and consistent about whether or not to
      have a trailing slack on each API path. This property checks whether or
      not there is a trailing slash for each of the paths expressed in the
      OpenAPI. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#paths-object">paths object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/paths.html"
      target="_blank">paths</a> via API Evangelist guidance.
    message: Path Trailing Slash
    severity: info
    given: $.paths.*~
    then:
      function: pattern
      functionOptions:
        match: /$
  openapi-version-in-path-error:
    description: The majority of public APIs available on the Web today put the
      major version of the API as part of the path for each API. Recommended
      guidance for versioning is to put in headers, but this rules checks
      whether or not you have in the path. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#paths-object">paths object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/paths.html"
      target="_blank">paths</a> via API Evangelist guidance.
    message: Version in Path
    severity: error
    given: $.paths[*]~
    then:
      function: pattern
      functionOptions:
        notMatch: /((?:/)(v|version)?[0-9]{1,3}(?:/)?)/i
  openapi-version-in-path-info:
    description: The majority of public APIs available on the Web today put the
      major version of the API as part of the path for each API. Recommended
      guidance for versioning is to put in headers, but this rules checks
      whether or not you have in the path. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#paths-object">paths object
      for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/paths.html"
      target="_blank">paths</a> via API Evangelist guidance.
    message: Version in Path
    severity: info
    given: $.paths[*]~
    then:
      function: pattern
      functionOptions:
        match: /((?:/)(v|version)?[0-9]{1,3}(?:/)?)/i
  openapi-operation-security-definitions-error:
    description: Each API operation should have a security definition referencing
      the central security scheme express for an OpenAPI. This property
      configures the gateway for any API being published. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#security-scheme-object">security
      schemes object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-security.html"
      target="_blank">operation security</a> via API Evangelist guidance.
    message: Operations MUST Have a Security Definition
    severity: error
    given: $.paths.*[get,post,patch,put,delete]
    then:
      field: security
      function: truthy
  openapi-operation-security-definitions-info:
    description: Each API operation should have a security definition referencing
      the central security scheme express for an OpenAPI. This property
      configures the gateway for any API being published. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#security-scheme-object">security
      schemes object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-security.html"
      target="_blank">operation security</a> via API Evangelist guidance.
    message: Operations MUST Have a Security Definition
    severity: info
    given: $.paths.*[get,post,patch,put,delete]
    then:
      field: security
      function: falsy
  openapi-operations-description-error:
    description: Having a paragraph or two description of each API operation helps
      API consumers understand what is possible with each API request. Keep the
      description as narrative and plain languge as possible, relying on
      examples and other operation properties to share the full story. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-description.html"
      target="_blank">operation descriptions</a> via API Evangelist guidance.
    message: Operation MUST Have Description
    severity: error
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: description
        function: truthy
  openapi-operations-description-info:
    description: Having a paragraph or two description of each API operation helps
      API consumers understand what is possible with each API request. Keep the
      description as narrative and plain languge as possible, relying on
      examples and other operation properties to share the full story. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-description.html"
      target="_blank">operation descriptions</a> via API Evangelist guidance.
    message: Operation Has Description
    severity: info
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: description
        function: falsy
  openapi-operations-description-length-error:
    description: Having a length limitation for each description of each API
      operation helps apply constraints to how you describe your APIs, while
      helping drive consistency across APIs when it comes to search,
      documentation, and other ways an API is made available. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-description.html"
      target="_blank">operation descriptions</a> via API Evangelist guidance.
    message: Operation Description MUST Be Less Than 250 Characters
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: description
        function: length
        functionOptions:
          max: 250
  openapi-operations-operation-ids-error:
    description: Operation identifiers provide a unique way to identify each
      individual API, which then used for SDK generation and other automation.
      The operation identifier for each of your APIs should be unique across
      your operations. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-identifier.html"
      target="_blank">operation identifier</a> via API Evangelist guidance.
    message: Operation MUST Have Identifier
    severity: error
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: operationId
        function: truthy
  openapi-operations-operation-ids-info:
    description: Operation identifiers provide a unique way to identify each
      individual API, which then used for SDK generation and other automation.
      The operation identifier for each of your APIs should be unique across
      your operations. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-identifier.html"
      target="_blank">operation identifier</a> via API Evangelist guidance.
    message: Operation Has Identifier
    severity: info
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: operationId
        function: falsy
  openapi-operations-operation-ids-camel-case-error:
    description: Operation identifiers provide a unique way to identify each
      individual API, and requiring them to have consistent casing reduces
      friction when generating SDKs and automating around APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-identifier.html"
      target="_blank">operation identifier</a> via API Evangelist guidance.
    message: Operation Identifier MUST Be camelCase
    severity: error
    given: $.paths.*[get,post,patch,put,delete].operationId
    then:
      - function: pattern
        functionOptions:
          notMatch: ^[a-z]+(?:[A-Z][a-z]+)*$
      - function: pattern
        functionOptions:
          match: ^[A-Z](([a-z0-9]+[A-Z]?)*)$
  openapi-operations-operation-ids-camel-case-info:
    description: Operation identifiers provide a unique way to identify each
      individual API, and requiring them to have consistent casing reduces
      friction when generating SDKs and automating around APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-identifier.html"
      target="_blank">operation identifier</a> via API Evangelist guidance.
    message: Operation Identifier Is camelCase
    severity: info
    given: $.paths.*[get,post,patch,put,delete].operationId
    then:
      - function: pattern
        functionOptions:
          notMatch: ^[a-z]+(?:[A-Z][a-z]+)*$
      - function: pattern
        functionOptions:
          match: ^[A-Z](([a-z0-9]+[A-Z]?)*)$
  openapi-operations-summary-error:
    description: Having short and intuitive summary for each API operation helps API
      consumers understand what is possible with each API request. Keep the
      summary reflecting a combination of nouns and verbs that reflect what is
      possible with each API. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-description.html"
      target="_blank">operation summaries</a> via API Evangelist guidance.
    message: Operation MUST Have a Summary
    severity: error
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: summary
        function: truthy
  openapi-operations-summary-info:
    description: Having short and intuitive summary for each API operation helps API
      consumers understand what is possible with each API request. Keep the
      summary reflecting a combination of nouns and verbs that reflect what is
      possible with each API. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-description.html"
      target="_blank">operation summaries</a> via API Evangelist guidance.
    message: Operation Has a Summary
    severity: info
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: summary
        function: falsy
  openapi-operations-summary-length-error:
    description: Apply length constraints to the operation summary helps keep them
      consistent for publishing in documentation. This is something that also
      should be reflected in the names of the paths used for each operation. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-description.html"
      target="_blank">operation summaries</a> via API Evangelist guidance.
    message: Operation Summary MUST Be Less Than 50 Characters
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: summary
        function: length
        functionOptions:
          max: 50
    type: style
  openapi-operations-summary-period-none-error:
    description: Operation summaries should not have a period, keeping the primary
      summary for each API as consistent as possible for publishing in
      documentation. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-description.html"
      target="_blank">operation summaries</a> via API Evangelist guidance.
    message: Operation MUST Not Have a Period.
    severity: error
    given: $.paths[*][*].summary
    then:
      function: pattern
      functionOptions:
        notMatch: \.$
  openapi-operations-summary-period-none-info:
    description: Operation summaries should not have a period, keeping the primary
      summary for each API as consistent as possible for publishing in
      documentation. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#operation-object">operation
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-description.html"
      target="_blank">operation summaries</a> via API Evangelist guidance.
    message: Operation Has a Period.
    severity: info
    given: $.paths[*][*].summary
    then:
      function: pattern
      functionOptions:
        match: \.$
  openapi-operations-tags-error:
    description: Having tags applied to each API operations helps organize and group
      APIs in portals, documentation, search, and other ways in which APIs are
      made available. Each API should have at least one tag available describing
      what the API does for a consumer. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-tags.html"
      target="_blank">operation tags</a> via API Evangelist guidance.
    message: Operations MUST Have Tags
    severity: error
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: tags
        function: truthy
  openapi-operations-tags-info:
    description: Having tags applied to each API operations helps organize and group
      APIs in portals, documentation, search, and other ways in which APIs are
      made available. Each API should have at least one tag available describing
      what the API does for a consumer. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-tags.html"
      target="_blank">operation tags</a> via API Evangelist guidance.
    message: Operations Has Tags
    severity: info
    given: $.paths.*[get,post,patch,put,delete]
    then:
      - field: tags
        function: falsy
  openapi-operations-tags-one-error:
    description: Having tags applied to each API operations helps organize and group
      APIs in portals, documentation, search, and other ways in which APIs are
      made available. Each API should have at least one tag available describing
      what the API does for a consumer. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-tags.html"
      target="_blank">operation tags</a> via API Evangelist guidance.
    message: MUST Be At Least One Operation Tag
    given: $.paths.*[get,post,patch,put,delete]
    severity: error
    then:
      field: tags
      function: length
      functionOptions:
        min: 1
  openapi-operations-tags-upper-case-error:
    description: Having the first letter of each word applied as a tag to API
      operations helps keep a consistent layout when published via search,
      documentation, and other ways APIs are made available. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-tags.html"
      target="_blank">operation tags</a> via API Evangelist guidance.
    message: Operation Tag Names MUST Have First Letter in Each Word Capitalized
    severity: error
    given: $.paths.*[get,post,patch,put,delete].tags.*
    then:
      function: pattern
      functionOptions:
        match: "[A-Z]\\w*"
  openapi-operations-tags-upper-case-info:
    description: Having the first letter of each word applied as a tag to API
      operations helps keep a consistent layout when published via search,
      documentation, and other ways APIs are made available. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-tags.html"
      target="_blank">operation tags</a> via API Evangelist guidance.
    message: Operation Tag Names Have First Letter in Each Word Capitalized
    severity: info
    given: $.paths.*[get,post,patch,put,delete].tags.*
    then:
      function: pattern
      functionOptions:
        notMatch: "[A-Z]\\w*"
  openapi-parameters-componentized-error:
    description: Having all parameters using the central OpenAPI components
      parameters object helps increase the reusability of parameters across API
      operations, but it also help standardize parameter across all APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-parameters.html"
      target="_blank">components parameters</a> via API Evangelist guidance.
    message: Parameters MUST use components $ref.
    severity: error
    resolved: false
    given: $.paths.*.*.parameters.*
    then:
      field: $ref
      function: truthy
  openapi-parameters-componentized-info:
    description: Having all parameters using the central OpenAPI components
      parameters object helps increase the reusability of parameters across API
      operations, but it also help standardize parameter across all APIs. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#components-object">components
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/components-parameters.html"
      target="_blank">components parameters</a> via API Evangelist guidance.
    message: Parameters use components $ref.
    severity: info
    resolved: false
    given: $.paths.*.*.parameters.*
    then:
      field: $ref
      function: falsy
  openapi-no-request-body-on-delete-error:
    description: DELETE HTTP methods should not have a request body, keeping API
      requests compliant with the HTTP standard. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      bodies object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request-bodies</a> via API Evangelist guidance.
    message: DELETE Request Body
    given: $.paths.*.delete
    severity: error
    then:
      field: requestBody
      function: falsy
  openapi-no-request-body-on-delete-info:
    description: DELETE HTTP methods should not have a request body, keeping API
      requests compliant with the HTTP standard. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      bodies object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request-bodies</a> via API Evangelist guidance.
    message: DELETE Request Body
    given: $.paths.*.delete
    severity: info
    then:
      field: requestBody
      function: truthy
  openapi-no-request-body-on-get-error:
    description: GET HTTP methods should not have a request body, keeping API
      requests compliant with the HTTP standard. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      bodies object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request-bodies</a> via API Evangelist guidance.
    message: GET Request Body
    given: $.paths.*.get
    severity: error
    then:
      field: requestBody
      function: falsy
  openapi-no-request-body-on-get-info:
    description: GET HTTP methods should not have a request body, keeping API
      requests compliant with the HTTP standard. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      bodies object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request-bodies</a> via API Evangelist guidance.
    message: GET Request Body
    given: $.paths.*.get
    severity: info
    then:
      field: requestBody
      function: truthy
  openapi-request-bodies-description-error:
    description: It is helpful to provide a description for request bodies,
      providing a simple explanation of what can be configured as part of the
      request payload.  You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Bodies MUST Have a Description
    severity: error
    given: $.paths.*.requestBody
    then:
      field: description
      function: truthy
  openapi-request-bodies-description-info:
    description: It is helpful to provide a description for request bodies,
      providing a simple explanation of what can be configured as part of the
      request payload.  You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Bodies Have a Description
    severity: info
    given: $.paths.*.requestBody
    then:
      field: description
      function: falsy
  openapi-request-bodies-required-property-error:
    description: It is important to be explicit about whether or not the request
      body for an API operation is required or not.  You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: REQUEST BODIES Required
    severity: error
    given: $.paths.*.requestBody
    then:
      field: required
      function: falsy
  openapi-request-bodies-required-property-info:
    description: It is important to be explicit about whether or not the request
      body for an API operation is required or not.  You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: REQUEST BODIES Required
    severity: info
    given: $.paths.*.requestBody
    then:
      field: required
      function: truthy
  openapi-request-body-content-on-post-error:
    description: POST requests with a request body should have content defined,
      providing more detail on what is contained within the API request body.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Body Content POST
    given: $.paths.*.post.requestBody
    severity: error
    then:
      field: content
      function: truthy
  openapi-request-body-content-on-post-info:
    description: POST requests with a request body should have content defined,
      providing more detail on what is contained within the API request body.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Body Content POST
    given: $.paths.*.post.requestBody
    severity: info
    then:
      field: content
      function: falsy
  openapi-request-body-content-on-put-error:
    description: PUT requests with a request body should have content defined,
      providing more detail on what is contained within the API request body.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Body Content PUT
    given: $.paths.*.put.requestBody
    severity: error
    then:
      field: content
      function: truthy
  openapi-request-body-content-on-put-info:
    description: PUT requests with a request body should have content defined,
      providing more detail on what is contained within the API request body.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Body Content PUT
    given: $.paths.*.put.requestBody
    severity: info
    then:
      field: content
      function: falsy
  openapi-request-body-have-application-json-info:
    description: Request bodies use the application/json media type to encode the
      request payload is a common data format. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-media-type.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Body Application JSON
    given: $.paths.*.*.requestBody.content
    severity: info
    then:
      field: application/json
      function: falsy
  openapi-request-body-have-application-x-www-form-url-encoded-info:
    description: Request bodies use the application/x-www-form-urlencoded media type
      to encode the request payload is a common data format. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-media-type.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Body Application X WWW Form URL Encoded
    given: $.paths.*.*.requestBody.content
    severity: info
    then:
      field: application/x-www-form-urlencoded
      function: falsy
  openapi-request-body-have-schema-error:
    description: POST, PUT, and PATCH request bodies should have schema defined,
      providing more detail on what the structure of the API request body should
      be. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-schema.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Body Schema
    given: $.paths.*.*.requestBody.content.*
    severity: error
    then:
      field: schema
      function: truthy
  openapi-request-body-have-schema-info:
    description: POST, PUT, and PATCH request bodies should have schema defined,
      providing more detail on what the structure of the API request body should
      be. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-schema.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Body Schema
    given: $.paths.*.*.requestBody.content.*
    severity: info
    then:
      field: schema
      function: falsy
  openapi-request-body-have-schema-ref-error:
    description: POST, PUT, and PATCH request bodies should have schema reference
      defined, providing more detail on what the structure of the API request
      body should be. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-schema.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Bodies MUST Use Schema Reference
    severity: error
    given: $.paths.*.*.requestBody.content.*.schema
    then:
      field: $ref
      function: falsy
  openapi-request-body-have-schema-ref-info:
    description: POST, PUT, and PATCH request bodies should have schema reference
      defined, providing more detail on what the structure of the API request
      body should be. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-schema.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: Request Bodies Use Schema Reference
    severity: info
    given: $.paths.*.*.requestBody.content.*.schema
    then:
      field: $ref
      function: truthy
  openapi-request-body-have-examples-error:
    description: POST, PUT, and PATCH request bodies should have examples, providing
      one or more examples of what should be submitted for different types of
      requests. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-schema.html"
      target="_blank">request bodies examples</a> via API Evangelist guidance.
    message: Request Bodies MUST Have Examples
    given: $.paths.*.*.requestBody.content.*
    severity: error
    then:
      field: examples
      function: truthy
  openapi-request-body-have-examples-info:
    description: POST, PUT, and PATCH request bodies should have examples, providing
      one or more examples of what should be submitted for different types of
      requests. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-schema.html"
      target="_blank">request bodies examples</a> via API Evangelist guidance.
    message: Request Bodies Have Examples
    given: $.paths.*.*.requestBody.content.*
    severity: info
    then:
      field: examples
      function: falsy
  openapi-request-body-have-examples-ref-error:
    description: POST, PUT, and PATCH request bodies should have examples using
      references to centralized component examples, providing one or more
      examples of what should be submitted for different types of requests. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-schema.html"
      target="_blank">request bodies examples</a> via API Evangelist guidance.
    message: Request Bodies MUST Use Examples Reference
    severity: error
    given: $.paths.*.*.requestBody.content.*.examples
    then:
      field: $ref
      function: falsy
  openapi-request-body-have-examples-ref-info:
    description: POST, PUT, and PATCH request bodies should have examples using
      references to centralized component examples, providing one or more
      examples of what should be submitted for different types of requests. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      body object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-request-bodies-schema.html"
      target="_blank">request bodies examples</a> via API Evangelist guidance.
    message: Request Bodies Use Examples Reference
    severity: info
    given: $.paths.*.*.requestBody.content.*.examples
    then:
      field: $ref
      function: truthy
  openapi-response-get-200-status-code-error:
    description: GET responses should have a 200 success HTTP status codes,
      communicating a successful response to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: GET Responses MUST Have 200 Status Codes
    severity: error
    given: $.paths.*.get.responses
    then:
      field: "200"
      function: truthy
  openapi-response-get-200-status-code-info:
    description: GET responses should have a 200 success HTTP status codes,
      communicating a successful response to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: GET Responses Has 200 Status Codes
    severity: info
    given: $.paths.*.get.responses
    then:
      field: "200"
      function: falsy
  openapi-response-get-200-description-error:
    description: GET 200 success HTTP status codes should have a description,
      describing what an API consumer can expect as a result. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: GET 200 Response MUST have description.
    severity: error
    given: $.paths.*.get.responses.200
    then:
      field: description
      function: truthy
  openapi-response-get-200-description-info:
    description: GET 200 success HTTP status codes should have a description,
      describing what an API consumer can expect as a result. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: GET 200 Response has description.
    severity: info
    given: $.paths.*.get.responses.200
    then:
      field: description
      function: falsy
  openapi-response-get-200-content-error:
    description: GET 200 success HTTP status codes should have content property that
      provides the ability to describe the response content. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: GET 200 Response MUST Have Content.
    severity: error
    given: $.paths.*.get.responses.200
    then:
      field: content
      function: truthy
  openapi-response-get-200-content-info:
    description: GET 200 success HTTP status codes should have content property that
      provides the ability to describe the response content. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: GET 200 Response Has Content.
    severity: info
    given: $.paths.*.get.responses.200
    then:
      field: content
      function: falsy
  openapi-response-get-200-media-type-error:
    description: GET 200 success HTTP status codes have a application/json media
      type, standardizing the response payload returned for a successful
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-media-types.html"
      target="_blank">operation 2xx media types</a> via API Evangelist guidance.
    message: GET 200 Response MUST Have Media Type.
    severity: error
    given: $.paths.*.get.responses.200.content
    then:
      field: application/json
      function: truthy
  openapi-response-get-200-media-type-info:
    description: GET 200 success HTTP status codes have a application/json media
      type, standardizing the response payload returned for a successful
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-media-types.html"
      target="_blank">operation 2xx media types</a> via API Evangelist guidance.
    message: GET 200 Response Has Media Type.
    severity: info
    given: $.paths.*.get.responses.200.content
    then:
      field: application/json
      function: falsy
  openapi-response-get-200-media-type-schema-error:
    description: GET 200 success HTTP status codes have a schema to standardize the
      response payload returned for a successful response. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-schema.html"
      target="_blank">operation 2xx schema</a> via API Evangelist guidance.
    message: GET 200 Response MUST Have Schema
    severity: error
    given: $.paths.*.get.responses.200.content['application/json']
    then:
      field: schema
      function: truthy
  openapi-response-get-200-media-type-schema-info:
    description: GET 200 success HTTP status codes have a schema to standardize the
      response payload returned for a successful response. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-schema.html"
      target="_blank">operation 2xx schema</a> via API Evangelist guidance.
    message: GET 200 Response Has Schema
    severity: info
    given: $.paths.*.get.responses.200.content['application/json']
    then:
      field: schema
      function: falsy
  openapi-response-get-200-media-type-schema-ref-error:
    description: GET 200 success HTTP status codes have a schema references to
      standardize the response payload returned for a successful response. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-schema.html"
      target="_blank">operation 2xx schema</a> via API Evangelist guidance.
    message: GET 200 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.get.responses.200.content['application/json'].schema
    then:
      field: $ref
      function: falsy
  openapi-response-get-200-media-type-schema-ref-info:
    description: GET 200 success HTTP status codes have a schema references to
      standardize the response payload returned for a successful response. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-schema.html"
      target="_blank">operation 2xx schema</a> via API Evangelist guidance.
    message: GET 200 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.get.responses.200.content['application/json'].schema
    then:
      field: $ref
      function: truthy
  openapi-response-get-200-media-type-examples-error:
    description: GET 200 success HTTP status codes have examples to show one or many
      examples of responses for different types of API requests. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-examples.html"
      target="_blank">operation 2xx examples</a> via API Evangelist guidance.
    message: GET 200 Response MUST Have Examples
    severity: error
    given: $.paths.*.get.responses.200.content['application/json']
    then:
      field: examples
      function: truthy
  openapi-response-get-200-media-type-examples-info:
    description: GET 200 success HTTP status codes have examples to show one or many
      examples of responses for different types of API requests. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-examples.html"
      target="_blank">operation 2xx examples</a> via API Evangelist guidance.
    message: GET 200 ResponseHas Examples
    severity: info
    given: $.paths.*.get.responses.200.content['application/json']
    then:
      field: examples
      function: falsy
  openapi-response-get-200-media-type-examples-ref-error:
    description: GET 200 success HTTP status codes have example references to show
      one or many examples of responses for different types of API requests. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-examples.html"
      target="_blank">operation 2xx examples</a> via API Evangelist guidance.
    message: GET 200 Responses MUST Use Examples Reference
    severity: error
    given: $.paths.*.get.responses.200.content['application/json'].examples.*
    then:
      field: $ref
      function: falsy
  openapi-response-get-200-media-type-examples-ref-info:
    description: GET 200 success HTTP status codes have example references to show
      one or many examples of responses for different types of API requests. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-examples.html"
      target="_blank">operation 2xx examples</a> via API Evangelist guidance.
    message: GET 200 Responses Uses Examples Reference
    severity: info
    given: $.paths.*.get.responses.200.content['application/json'].examples.*
    then:
      field: $ref
      function: truthy
  openapi-response-get-400-status-code-error:
    description: GET responses should have a 400 not found HTTP status code,
      communicating nothing was found to consumers. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses MUST Have 400 Status Codes
    severity: error
    given: $.paths.*.get.responses
    then:
      field: "400"
      function: truthy
  openapi-response-get-400-status-code-info:
    description: GET responses should have a 400 not found HTTP status code,
      communicating nothing was found to consumers. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses Has 400 Status Codes
    severity: info
    given: $.paths.*.get.responses
    then:
      field: "400"
      function: falsy
  openapi-response-get-400-schema-ref-error:
    description: GET 400 bad request HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 400 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.get.responses.400
    then:
      field: $ref
      function: falsy
  openapi-response-get-400-schema-ref-info:
    description: GET 400 bad request HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 400 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.get.responses.400
    then:
      field: $ref
      function: truthy
  openapi-response-get-401-status-code-info:
    description: GET responses should have a 401 unauthorized HTTP status code,
      communicating that consumers do not have access. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses MUST Have 401 Status Code
    severity: info
    given: $.paths.*.get.responses
    then:
      field: "401"
      function: falsy
  openapi-response-get-401-status-code-error:
    description: GET responses should have a 401 unauthorized HTTP status code,
      communicating that consumers do not have access. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses Has 401 Status Code
    severity: error
    given: $.paths.*.get.responses
    then:
      field: "401"
      function: truthy
  openapi-response-get-401-schema-ref-error:
    description: GET 401 unauthorized HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 401 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.get.responses.401
    then:
      field: $ref
      function: falsy
  openapi-response-get-401-schema-ref-info:
    description: GET 401 unauthorized HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 401 Responses Has Schema Reference
    severity: info
    given: $.paths.*.get.responses.401
    then:
      field: $ref
      function: truthy
  openapi-response-get-403-status-code-info:
    description: GET responses should have a 403 forbidden HTTP status code,
      communicating that consumers are not allowed to access. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses MUST Have 403 Status Code
    severity: info
    given: $.paths.*.get.responses
    then:
      field: "403"
      function: falsy
  openapi-response-get-403-status-code-error:
    description: GET responses should have a 403 forbidden HTTP status code,
      communicating that consumers are not allowed to access. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses Has 403 Status Code
    severity: error
    given: $.paths.*.get.responses
    then:
      field: "403"
      function: truthy
  openapi-response-get-403-schema-ref-error:
    description: GET 403 forbidden HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 403 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.get.responses.403
    then:
      field: $ref
      function: falsy
  openapi-response-get-403-schema-ref-info:
    description: GET 403 forbidden HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 403 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.get.responses.403
    then:
      field: $ref
      function: truthy
  openapi-response-get-404-status-code-error:
    description: GET responses should have a 404 not found HTTP status code,
      communicating that nothing was found to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses MUST Have 404 Status Code
    severity: error
    given: $.paths.*.get[?(@.properties)]
    then:
      field: "404"
      function: truthy
  openapi-response-get-404-status-code-info:
    description: GET responses should have a 404 not found HTTP status code,
      communicating that nothing was found to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses Has 404 Status Code
    severity: info
    given: $.paths.*.get[?(@.properties)]
    then:
      field: "404"
      function: falsy
  openapi-response-get-404-schema-ref-error:
    description: GET 404 not found HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 404 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.get.responses.404
    then:
      field: $ref
      function: falsy
  openapi-response-get-404-schema-ref-info:
    description: GET 404 not found HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 404 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.get.responses.404
    then:
      field: $ref
      function: truthy
  openapi-response-get-429-status-code-info:
    description: GET responses should have a 429 too many requests HTTP status code,
      communicating a consumer has made too may requests. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses MUST Have 429 Status Code
    severity: info
    given: $.paths.*.get.responses
    then:
      field: "429"
      function: falsy
  openapi-response-get-429-status-code-error:
    description: GET responses should have a 429 too many requests HTTP status code,
      communicating a consumer has made too may requests. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses Has 429 Status Code
    severity: error
    given: $.paths.*.get.responses
    then:
      field: "429"
      function: truthy
  openapi-response-get-429-schema-ref-error:
    description: GET 429 too many requests HTTP status codes have a schema
      references to standardize the response payload returned for the error
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 429 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.get.responses.429
    then:
      field: $ref
      function: falsy
  openapi-response-get-429-schema-ref-info:
    description: GET 429 too many requests HTTP status codes have a schema
      references to standardize the response payload returned for the error
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: GET 429 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.get.responses.429
    then:
      field: $ref
      function: truthy
  openapi-response-get-500-status-code-error:
    description: GET responses should have a 500 internal server erorr HTTP status
      code, communicating the API had a problem to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses MUST Have 500 Status Code
    severity: error
    given: $.paths.*.get.responses
    then:
      field: "500"
      function: truthy
  openapi-response-get-500-status-code-info:
    description: GET responses should have a 500 internal server erorr HTTP status
      code, communicating the API had a problem to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: GET Responses Has 500 Status Code
    severity: info
    given: $.paths.*.get.responses
    then:
      field: "500"
      function: falsy
  openapi-response-get-500-schema-ref-error:
    description: GET 500 internal server error requests HTTP status codes have a
      schema references to standardize the response payload returned for the
      error response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-5xx-schema.html"
      target="_blank">operation 5xx schema</a> via API Evangelist guidance.
    message: GET 500 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.get.responses.500
    then:
      field: $ref
      function: falsy
  openapi-response-get-500-schema-ref-info:
    description: GET 500 internal server error requests HTTP status codes have a
      schema references to standardize the response payload returned for the
      error response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-5xx-schema.html"
      target="_blank">operation 5xx schema</a> via API Evangelist guidance.
    message: GET 500 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.get.responses.500
    then:
      field: $ref
      function: truthy
  openapi-request-body-on-post-error:
    description: POST HTTP methods can have a request body, providing a structured
      payload for configuring each API request. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      bodies object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: POST Requests MUST Have a Body
    given: $.paths.*.post
    severity: error
    then:
      field: requestBody
      function: truthy
  openapi-request-body-on-post-info:
    description: POST HTTP methods can have a request body, providing a structured
      payload for configuring each API request. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      bodies object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: POST Requests Has a Body
    given: $.paths.*.post
    severity: info
    then:
      field: requestBody
      function: falsy
  openapi-response-post-201-status-code-error:
    description: POST responses should have a 201 success HTTP status codes,
      communicating a success created response to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: POST Responses MUST Have 201 Status Codes
    severity: error
    given: $.paths[*].post.responses
    then:
      field: "201"
      function: truthy
  openapi-response-post-201-status-code-info:
    description: POST responses should have a 201 success HTTP status codes,
      communicating a success created response to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: POST Responses Has 201 Status Codes
    severity: info
    given: $.paths[*].post.responses
    then:
      field: "201"
      function: falsy
  openapi-response-post-201-description-error:
    description: POST 201 success HTTP status codes should have a description,
      describing what an API consumer can expect as a result. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: POST 201 Responses MUST Have Description
    severity: error
    given: $.paths.*.post.responses.201
    then:
      field: description
      function: truthy
  openapi-response-post-201-description-info:
    description: POST 201 success HTTP status codes should have a description,
      describing what an API consumer can expect as a result. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: POST 201 Responses Has Description
    severity: info
    given: $.paths.*.post.responses.201
    then:
      field: description
      function: falsy
  openapi-response-post-201-content-error:
    description: POST 201 success HTTP status codes should have content property
      that provides the ability to describe the response content. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: POST 201 Responses MUST Have Content
    severity: error
    given: $.paths.*.post.responses.201
    then:
      field: content
      function: truthy
  openapi-response-post-201-content-info:
    description: POST 201 success HTTP status codes should have content property
      that provides the ability to describe the response content. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: POST 201 Responses Has Content
    severity: info
    given: $.paths.*.post.responses.201
    then:
      field: content
      function: falsy
  openapi-response-post-201-media-type-error:
    description: POST 201 success HTTP status codes have a application/json media
      type, standardizing the response payload returned for a successful
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-media-types.html"
      target="_blank">operation 2xx media types</a> via API Evangelist guidance.
    message: POST 201 Responses MUST Have Media Type
    severity: error
    given: $.paths.*.post.responses.201.content
    then:
      field: application/json
      function: truthy
  openapi-response-post-201-media-type-info:
    description: POST 201 success HTTP status codes have a application/json media
      type, standardizing the response payload returned for a successful
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-media-types.html"
      target="_blank">operation 2xx media types</a> via API Evangelist guidance.
    message: POST 201 Responses Has Media Type
    severity: info
    given: $.paths.*.post.responses.201.content
    then:
      field: application/json
      function: falsy
  openapi-response-post-201-media-type-schema-error:
    description: POST 201 success HTTP status codes have a schema to standardize the
      response payload returned for a successful response. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-schema.html"
      target="_blank">operation 2xx schema</a> via API Evangelist guidance.
    message: POST 201 Responses MUST Have Schema
    severity: error
    given: $.paths.*.post.responses.201.content.application/json
    then:
      field: schema
      function: truthy
  openapi-response-post-201-media-type-schema-info:
    description: POST 201 success HTTP status codes have a schema to standardize the
      response payload returned for a successful response. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-schema.html"
      target="_blank">operation 2xx schema</a> via API Evangelist guidance.
    message: POST 201 Responses Has Schema
    severity: info
    given: $.paths.*.post.responses.201.content.application/json
    then:
      field: schema
      function: falsy
  openapi-response-post-201-schema-ref-error:
    description: POST 201 success HTTP status codes have a schema references to
      standardize the response payload returned for a successful response. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-schema.html"
      target="_blank">operation 2xx schema</a> via API Evangelist guidance.
    message: POST 201 Responses MUST Use Schema Reference
    given: $.paths.*.post.responses.201.content.*.schema
    severity: error
    then:
      field: $ref
      function: falsy
  openapi-response-post-201-schema-ref-info:
    description: POST 201 success HTTP status codes have a schema references to
      standardize the response payload returned for a successful response. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-schema.html"
      target="_blank">operation 2xx schema</a> via API Evangelist guidance.
    message: POST 201 Responses Has Schema Reference
    given: $.paths.*.post.responses.201.content.*.schema
    severity: info
    then:
      field: $ref
      function: truthy
  openapi-response-post-201-media-type-examples-error:
    description: POST 201 success HTTP status codes have examples to show one or
      many examples of responses for different types of API requests. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-examples.html"
      target="_blank">operation 2xx examples</a> via API Evangelist guidance.
    message: POST 201 Responses MUST Have Examples
    severity: error
    given: $.paths.*.post.responses.201.content.application/json
    then:
      field: examples
      function: truthy
  openapi-response-post-201-media-type-examples-info:
    description: POST 201 success HTTP status codes have examples to show one or
      many examples of responses for different types of API requests. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-examples.html"
      target="_blank">operation 2xx examples</a> via API Evangelist guidance.
    message: POST 201 Responses Has Examples
    severity: info
    given: $.paths.*.post.responses.201.content.application/json
    then:
      field: examples
      function: falsy
  openapi-response-post-201-examples-ref-error:
    description: POST 201 success HTTP status codes have example references to show
      one or many examples of responses for different types of API requests. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-examples.html"
      target="_blank">operation 2xx examples</a> via API Evangelist guidance.
    message: POST 201 Responses MUST Use Examples Reference
    given: $.paths.*.post.responses.201.content.*.examples
    severity: error
    then:
      field: $ref
      function: falsy
  openapi-response-post-201-examples-ref-info:
    description: POST 201 success HTTP status codes have example references to show
      one or many examples of responses for different types of API requests. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx-examples.html"
      target="_blank">operation 2xx examples</a> via API Evangelist guidance.
    message: POST 201 Responses Has Examples Reference
    given: $.paths.*.post.responses.201.content.*.examples
    severity: info
    then:
      field: $ref
      function: truthy
  openapi-response-post-400-status-code-info:
    description: POST responses should have a 400 not found HTTP status code,
      communicating nothing was found to consumers. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses MUST Have 400 Status Codes
    severity: info
    given: $.paths.*.post.responses
    then:
      field: "400"
      function: falsy
  openapi-response-post-400-status-code-error:
    description: POST responses should have a 400 not found HTTP status code,
      communicating nothing was found to consumers. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses Has 400 Status Codes
    severity: error
    given: $.paths.*.post.responses
    then:
      field: "400"
      function: truthy
  openapi-response-post-400-schema-ref-error:
    description: POST 400 bad request HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 400 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.post.responses.400
    then:
      field: $ref
      function: falsy
  openapi-response-post-400-schema-ref-info:
    description: POST 400 bad request HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 400 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.post.responses.400
    then:
      field: $ref
      function: truthy
  openapi-response-post-401-status-code-info:
    description: POST responses should have a 401 unauthorized HTTP status code,
      communicating that consumers do not have access. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses MUST Have 401 Status Codes
    severity: info
    given: $.paths.*.post.responses
    then:
      field: "401"
      function: falsy
  openapi-response-post-401-status-code-error:
    description: POST responses should have a 401 unauthorized HTTP status code,
      communicating that consumers do not have access. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses Has 401 Status Codes
    severity: error
    given: $.paths.*.post.responses
    then:
      field: "401"
      function: truthy
  openapi-response-post-401-schema-ref-error:
    description: POST 401 unauthorized HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 401 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.post.responses.401
    then:
      field: $ref
      function: falsy
  openapi-response-post-401-schema-ref-info:
    description: POST 401 unauthorized HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 401 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.post.responses.401
    then:
      field: $ref
      function: truthy
  openapi-response-post-403-status-code-info:
    description: POST responses should have a 403 forbidden HTTP status code,
      communicating that consumers are not allowed to access. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses MUST Have 403 Status Codes
    severity: info
    given: $.paths.*.post.responses
    then:
      field: "403"
      function: falsy
  openapi-response-post-403-status-code-error:
    description: POST responses should have a 403 forbidden HTTP status code,
      communicating that consumers are not allowed to access. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses Has 403 Status Codes
    severity: error
    given: $.paths.*.post.responses
    then:
      field: "403"
      function: truthy
  openapi-response-post-403-schema-ref-error:
    description: POST 403 forbidden HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 403 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.post.responses.403
    then:
      field: $ref
      function: falsy
  openapi-response-post-403-schema-ref-info:
    description: POST 403 forbidden HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 403 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.post.responses.403
    then:
      field: $ref
      function: truthy
  openapi-response-post-404-status-code-info:
    description: POST responses should have a 404 not found HTTP status code,
      communicating that nothing was found to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses MUST Have 404 Status Codes
    severity: info
    given: $.paths.*.post.responses
    then:
      field: "404"
      function: falsy
  openapi-response-post-404-status-code-error:
    description: POST responses should have a 404 not found HTTP status code,
      communicating that nothing was found to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses Has 404 Status Codes
    severity: error
    given: $.paths.*.post.responses
    then:
      field: "404"
      function: truthy
  openapi-response-post-404-schema-ref-error:
    description: POST 404 not found HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 404 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.post.responses.404
    then:
      field: $ref
      function: falsy
  openapi-response-post-404-schema-ref-info:
    description: POST 404 not found HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 404 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.post.responses.404
    then:
      field: $ref
      function: truthy
  openapi-response-post-429-status-code-error:
    description: POST responses should have a 429 too many requests HTTP status
      code, communicating a consumer has made too may requests. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses MUST Have 429 Status Codes
    severity: error
    given: $.paths.*.post.responses
    then:
      field: "429"
      function: truthy
  openapi-response-post-429-status-code-info:
    description: POST responses should have a 429 too many requests HTTP status
      code, communicating a consumer has made too may requests. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses Has 429 Status Codes
    severity: info
    given: $.paths.*.post.responses
    then:
      field: "429"
      function: falsy
  openapi-response-post-429-schema-ref-error:
    description: POST 429 too many requests HTTP status codes have a schema
      references to standardize the response payload returned for the error
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 429 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.post.responses.429
    then:
      field: $ref
      function: falsy
  openapi-response-post-429-schema-ref-info:
    description: POST 429 too many requests HTTP status codes have a schema
      references to standardize the response payload returned for the error
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: POST 429 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.post.responses.429
    then:
      field: $ref
      function: truthy
  openapi-response-post-500-status-code-error:
    description: POST responses should have a 500 internal server erorr HTTP status
      code, communicating the API had a problem to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses MUST Have 500 Status Codes
    severity: error
    given: $.paths.*.post.responses
    then:
      field: "500"
      function: truthy
  openapi-response-post-500-status-code-info:
    description: POST responses should have a 500 internal server erorr HTTP status
      code, communicating the API had a problem to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: POST Responses Has 500 Status Codes
    severity: info
    given: $.paths.*.post.responses
    then:
      field: "500"
      function: falsy
  openapi-response-post-500-schema-ref-error:
    description: POST 500 internal server error requests HTTP status codes have a
      schema references to standardize the response payload returned for the
      error response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-5xx-schema.html"
      target="_blank">operation 5xx schema</a> via API Evangelist guidance.
    message: POST 500 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.post.responses.500
    then:
      field: $ref
      function: falsy
  openapi-response-post-500-schema-ref-info:
    description: POST 500 internal server error requests HTTP status codes have a
      schema references to standardize the response payload returned for the
      error response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-5xx-schema.html"
      target="_blank">operation 5xx schema</a> via API Evangelist guidance.
    message: POST 500 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.post.responses.500
    then:
      field: $ref
      function: truthy
  openapi-request-body-on-put-error-info:
    description: PUT HTTP methods can have a request body, providing a structured
      payload for configuring each API request. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      bodies object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: PUT Requests MUST Have a Body
    given: $.paths.*.put
    severity: error
    then:
      field: requestBody
      function: truthy
  openapi-request-body-on-put-info:
    description: PUT HTTP methods can have a request body, providing a structured
      payload for configuring each API request. You can find details about the
      <a
      href="https://spec.openapis.org/oas/latest.html#request-body-object">request
      bodies object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/request-bodies.html"
      target="_blank">request bodies</a> via API Evangelist guidance.
    message: PUT Requests Has a Body
    given: $.paths.*.put
    severity: error
    then:
      field: requestBody
      function: falsy
  openapi-response-put-204-status-code-error:
    description: PUT responses should have a 204 success HTTP status codes,
      communicating a success created response to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: PUT 204 Status Code
    severity: error
    given: $.paths.*.put.responses
    then:
      field: "204"
      function: truthy
  openapi-response-put-204-status-code-info:
    description: PUT responses should have a 204 success HTTP status codes,
      communicating a success created response to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: PUT 204 Status Code
    severity: info
    given: $.paths.*.put.responses
    then:
      field: "204"
      function: falsy
  openapi-response-put-400-status-code-error:
    description: PUT responses should have a 400 not found HTTP status code,
      communicating nothing was found to consumers. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses MUST Have 400 Status Codes
    severity: error
    given: $.paths.*.put.responses
    then:
      field: "400"
      function: truthy
  openapi-response-put-400-status-code-info:
    description: PUT responses should have a 400 not found HTTP status code,
      communicating nothing was found to consumers. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses Has 400 Status Codes
    severity: info
    given: $.paths.*.put.responses
    then:
      field: "400"
      function: falsy
  openapi-response-put-400-schema-ref-error:
    description: PUT 400 bad request HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 400 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.put.responses.400
    then:
      field: $ref
      function: falsy
  openapi-response-put-400-schema-ref-info:
    description: PUT 400 bad request HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 400 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.put.responses.400
    then:
      field: $ref
      function: truthy
  openapi-response-put-401-status-code-error:
    description: PUT responses should have a 401 unauthorized HTTP status code,
      communicating that consumers do not have access. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses MUST 401 Status Codes
    severity: error
    given: $.paths.*.put.responses
    then:
      field: "401"
      function: truthy
  openapi-response-put-401-status-code-info:
    description: PUT responses should have a 401 unauthorized HTTP status code,
      communicating that consumers do not have access. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses Has 401 Status Codes
    severity: info
    given: $.paths.*.put.responses
    then:
      field: "401"
      function: falsy
  openapi-response-put-401-schema-ref-error:
    description: PUT 401 unauthorized HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 401 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.put.responses.401
    then:
      field: $ref
      function: falsy
  openapi-response-put-401-schema-ref-info:
    description: PUT 401 unauthorized HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 401 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.put.responses.401
    then:
      field: $ref
      function: truthy
  openapi-response-put-403-status-code-error:
    description: PUT responses should have a 403 forbidden HTTP status code,
      communicating that consumers are not allowed to access. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses MUST Have 403 Status Codes
    severity: error
    given: $.paths.*.put.responses
    then:
      field: "403"
      function: truthy
  openapi-response-put-403-status-code-info:
    description: PUT responses should have a 403 forbidden HTTP status code,
      communicating that consumers are not allowed to access. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses Has 403 Status Codes
    severity: info
    given: $.paths.*.put.responses
    then:
      field: "403"
      function: falsy
  openapi-response-put-403-schema-ref-error:
    description: PUT 403 forbidden HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 403 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.put.responses.403
    then:
      field: $ref
      function: falsy
  openapi-response-put-403-schema-ref-info:
    description: PUT 403 forbidden HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 403 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.put.responses.403
    then:
      field: $ref
      function: truthy
  openapi-response-put-404-status-code-error:
    description: PUT responses should have a 404 not found HTTP status code,
      communicating that nothing was found to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses MUST Have 404 Status Codes
    severity: error
    given: $.paths.*.put.responses
    then:
      field: "404"
      function: truthy
  openapi-response-put-404-status-code-info:
    description: PUT responses should have a 404 not found HTTP status code,
      communicating that nothing was found to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses Has 404 Status Codes
    severity: info
    given: $.paths.*.put.responses
    then:
      field: "404"
      function: falsy
  openapi-response-put-404-schema-ref-error:
    description: PUT 404 not found HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 404 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.put.responses.404
    then:
      field: $ref
      function: falsy
  openapi-response-put-404-schema-ref-info:
    description: PUT 404 not found HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 404 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.put.responses.404
    then:
      field: $ref
      function: truthy
  openapi-response-put-429-status-code-error:
    description: PUT responses should have a 429 too many requests HTTP status code,
      communicating a consumer has made too may requests. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses MUST Have 429 Status Codes
    severity: error
    given: $.paths.*.put.responses
    then:
      field: "429"
      function: truthy
  openapi-response-put-429-status-code-info:
    description: PUT responses should have a 429 too many requests HTTP status code,
      communicating a consumer has made too may requests. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses Has 429 Status Codes
    severity: info
    given: $.paths.*.put.responses
    then:
      field: "429"
      function: falsy
  openapi-response-put-429-schema-ref-error:
    description: PUT 429 too many requests HTTP status codes have a schema
      references to standardize the response payload returned for the error
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 429 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.put.responses.429
    then:
      field: $ref
      function: falsy
  openapi-response-put-429-schema-ref-info:
    description: PUT 429 too many requests HTTP status codes have a schema
      references to standardize the response payload returned for the error
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: PUT 429 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.put.responses.429
    then:
      field: $ref
      function: truthy
  openapi-response-put-500-status-code-error:
    description: PUT responses should have a 500 internal server erorr HTTP status
      code, communicating the API had a problem to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses MUST Have 500 Status Codes
    severity: error
    given: $.paths.*.put.responses
    then:
      field: "500"
      function: truthy
  openapi-response-put-500-status-code-info:
    description: PUT responses should have a 500 internal server erorr HTTP status
      code, communicating the API had a problem to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: PUT Responses Has 500 Status Codes
    severity: info
    given: $.paths.*.put.responses
    then:
      field: "500"
      function: falsy
  openapi-response-put-500-schema-ref-error:
    description: PUT 500 internal server error requests HTTP status codes have a
      schema references to standardize the response payload returned for the
      error response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-5xx-schema.html"
      target="_blank">operation 5xx schema</a> via API Evangelist guidance.
    message: PUT 500 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.put.responses.500
    then:
      field: $ref
      function: falsy
  openapi-response-put-500-schema-ref-info:
    description: PUT 500 internal server error requests HTTP status codes have a
      schema references to standardize the response payload returned for the
      error response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-5xx-schema.html"
      target="_blank">operation 5xx schema</a> via API Evangelist guidance.
    message: PUT 500 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.put.responses.500
    then:
      field: $ref
      function: truthy
  openapi-response-delete-204-status-code-error:
    description: DELETE responses should have a 204 success HTTP status codes,
      communicating a success created response to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: DELETE 204 Status Code
    severity: info
    given: $.paths.*.delete.responses
    then:
      field: "204"
      function: truthy
  openapi-response-delete-204-status-code-info:
    description: DELETE responses should have a 204 success HTTP status codes,
      communicating a success created response to consumers. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-2xx.html"
      target="_blank">operation 2xx responses</a> via API Evangelist guidance.
    message: DELETE 204 Status Code
    severity: info
    given: $.paths.*.delete.responses
    then:
      field: "204"
      function: falsy
  openapi-response-delete-400-status-code-error:
    description: DELETE responses should have a 400 not found HTTP status code,
      communicating nothing was found to consumers. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses MUST Have 400 Status Codes
    severity: error
    given: $.paths.*.delete.responses
    then:
      field: "400"
      function: truthy
  openapi-response-delete-400-status-code-info:
    description: DELETE responses should have a 400 not found HTTP status code,
      communicating nothing was found to consumers. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses Has 400 Status Codes
    severity: info
    given: $.paths.*.delete.responses
    then:
      field: "400"
      function: falsy
  openapi-response-delete-400-schema-ref-error:
    description: DELETE 400 bad request HTTP status codes have a schema references
      to standardize the response payload returned for the error response. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 400 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.delete.responses.400
    then:
      field: $ref
      function: falsy
  openapi-response-delete-400-schema-ref-info:
    description: DELETE 400 bad request HTTP status codes have a schema references
      to standardize the response payload returned for the error response. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 400 Responses Use Schema Reference
    severity: info
    given: $.paths.*.delete.responses.400
    then:
      field: $ref
      function: truthy
  openapi-response-delete-401-status-code-error:
    description: DELETE responses should have a 401 unauthorized HTTP status code,
      communicating that consumers do not have access. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses MUST Have 401 Status Codes
    severity: error
    given: $.paths.*.delete.responses
    then:
      field: "401"
      function: truthy
  openapi-response-delete-401-status-code-info:
    description: DELETE responses should have a 401 unauthorized HTTP status code,
      communicating that consumers do not have access. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses Has 401 Status Codes
    severity: info
    given: $.paths.*.delete.responses
    then:
      field: "401"
      function: falsy
  openapi-response-delete-401-schema-ref-error:
    description: DELETE 401 unauthorized HTTP status codes have a schema references
      to standardize the response payload returned for the error response. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 401 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.delete.responses.401
    then:
      field: $ref
      function: falsy
  openapi-response-delete-401-schema-ref-info:
    description: DELETE 401 unauthorized HTTP status codes have a schema references
      to standardize the response payload returned for the error response. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 401 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.delete.responses.401
    then:
      field: $ref
      function: truthy
  openapi-response-delete-403-status-code-error:
    description: DELETE responses should have a 403 forbidden HTTP status code,
      communicating that consumers are not allowed to access. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses MUST Have 403 Status Codes
    severity: error
    given: $.paths.*.delete.responses
    then:
      field: "403"
      function: truthy
  openapi-response-delete-403-status-code-info:
    description: DELETE responses should have a 403 forbidden HTTP status code,
      communicating that consumers are not allowed to access. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses Has 403 Status Codes
    severity: info
    given: $.paths.*.delete.responses
    then:
      field: "403"
      function: falsy
  openapi-response-delete-403-schema-ref-error:
    description: DELETE 403 forbidden HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 403 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.delete.responses.403
    then:
      field: $ref
      function: falsy
  openapi-response-delete-403-schema-ref-info:
    description: DELETE 403 forbidden HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 403 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.delete.responses.403
    then:
      field: $ref
      function: truthy
  openapi-response-delete-404-status-code-error:
    description: DELETE responses should have a 404 not found HTTP status code,
      communicating that nothing was found to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses MUST Have 404 Status Codes
    severity: error
    given: $.paths.*.delete.responses
    then:
      field: "404"
      function: truthy
  openapi-response-delete-404-status-code-info:
    description: DELETE responses should have a 404 not found HTTP status code,
      communicating that nothing was found to consumers. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses Has 404 Status Codes
    severity: info
    given: $.paths.*.delete.responses
    then:
      field: "404"
      function: falsy
  openapi-response-delete-404-schema-ref-error:
    description: DELETE 404 not found HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 404 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.delete.responses.404
    then:
      field: $ref
      function: falsy
  openapi-response-delete-404-schema-ref-info:
    description: DELETE 404 not found HTTP status codes have a schema references to
      standardize the response payload returned for the error response. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 404 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.delete.responses.404
    then:
      field: $ref
      function: truthy
  openapi-response-delete-429-status-code-error:
    description: DELETE responses should have a 429 too many requests HTTP status
      code, communicating a consumer has made too may requests. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses MUST Have 429 Status Codes
    severity: error
    given: $.paths.*.delete.responses
    then:
      field: "429"
      function: truthy
  openapi-response-delete-429-status-code-info:
    description: DELETE responses should have a 429 too many requests HTTP status
      code, communicating a consumer has made too may requests. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses Has 429 Status Codes
    severity: info
    given: $.paths.*.delete.responses
    then:
      field: "429"
      function: falsy
  openapi-response-delete-429-schema-ref-error:
    description: DELETE 429 too many requests HTTP status codes have a schema
      references to standardize the response payload returned for the error
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 429 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.delete.responses.429
    then:
      field: $ref
      function: falsy
  openapi-response-delete-429-schema-ref-info:
    description: DELETE 429 too many requests HTTP status codes have a schema
      references to standardize the response payload returned for the error
      response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx-schema.html"
      target="_blank">operation 4xx schema</a> via API Evangelist guidance.
    message: DELETE 429 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.delete.responses.429
    then:
      field: $ref
      function: truthy
  openapi-response-delete-500-status-code-error:
    description: DELETE responses should have a 500 internal server erorr HTTP
      status code, communicating the API had a problem to consumers. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses MUST Have 500 Status Codes
    severity: error
    given: $.paths.*.delete.responses
    then:
      field: "500"
      function: truthy
  openapi-response-delete-500-status-code-info:
    description: DELETE responses should have a 500 internal server erorr HTTP
      status code, communicating the API had a problem to consumers. You can
      find details about the <a
      href="https://spec.openapis.org/oas/latest.html#responses-object">responses
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-4xx.html"
      target="_blank">operation 4xx responses</a> via API Evangelist guidance.
    message: DELETE Responses MUST Have 500 Status Codes
    severity: info
    given: $.paths.*.delete.responses
    then:
      field: "500"
      function: falsy
  openapi-response-delete-500-schema-ref-error:
    description: DELETE 500 internal server error requests HTTP status codes have a
      schema references to standardize the response payload returned for the
      error response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-5xx-schema.html"
      target="_blank">operation 5xx schema</a> via API Evangelist guidance.
    message: DELETE 500 Responses MUST Use Schema Reference
    severity: error
    given: $.paths.*.delete.responses.500
    then:
      field: $ref
      function: falsy
  openapi-response-delete-500-schema-ref-info:
    description: DELETE 500 internal server error requests HTTP status codes have a
      schema references to standardize the response payload returned for the
      error response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/operation-response-5xx-schema.html"
      target="_blank">operation 5xx schema</a> via API Evangelist guidance.
    message: DELETE 500 Responses Uses Schema Reference
    severity: info
    given: $.paths.*.delete.responses.500
    then:
      field: $ref
      function: truthy
  openapi-schema-description-error:
    description: Schema should have descriptions that provide a narrative of what a
      schema object is for, and how it can be used, leaving examples to
      demonstrate what can actually be expected.  You can find details about the
      <a href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-descriptions.html"
      target="_blank">schema descriptions</a> via API Evangelist guidance.
    message: Schema MUST Have a Description.
    severity: error
    given: $.components.schemas.*
    then:
      field: description
      function: truthy
  openapi-schema-description-info:
    description: Schema should have descriptions that provide a narrative of what a
      schema object is for, and how it can be used, leaving examples to
      demonstrate what can actually be expected.  You can find details about the
      <a href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-descriptions.html"
      target="_blank">schema descriptions</a> via API Evangelist guidance.
    message: Schemas Has a Description.
    severity: info
    given: $.components.schemas.*
    then:
      field: description
      function: falsy
  openapi-schema-description-length-error:
    description: Schema should have a length limit applied, restricting how long
      schema descriptions can be, helping keep them concise and consistent. You
      can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-descriptions.html"
      target="_blank">schema descriptions</a> via API Evangelist guidance.
    message: Schema Description MUST be Less Than 250 Characters
    severity: error
    given: $.components.schemas.*
    then:
      field: description
      function: length
      functionOptions:
        max: 250
  openapi-schema-names-pascal-case-error:
    description: Schema names are pascal case, keeping the naming of them consistent
      across APIs, standardizing how consumers can use in their applications.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-names.html"
      target="_blank">schema names</a> via API Evangelist guidance.
    message: Schema Names MUST Be PascalCase.
    severity: error
    given: $.components.schemas
    then:
      - field: "@key"
        function: pattern
        functionOptions:
          match: ^[A-Z](([a-z]+[A-Z]?)*)$
      - field: "@key"
        function: pattern
        functionOptions:
          match: ^[A-Z](([a-z0-9]+[A-Z]?)*)$
  openapi-schema-names-pascal-case-info:
    description: Schema names are pascal case, keeping the naming of them consistent
      across APIs, standardizing how consumers can use in their applications.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-names.html"
      target="_blank">schema names</a> via API Evangelist guidance.
    message: Schema Names Are PascalCase.
    severity: info
    given: $.components.schemas
    then:
      - field: "@key"
        function: pattern
        functionOptions:
          notMatch: ^[A-Z](([a-z]+[A-Z]?)*)$
      - field: "@key"
        function: pattern
        functionOptions:
          notMatch: ^[A-Z](([a-z0-9]+[A-Z]?)*)$
  openapi-schema-names-length-error:
    description: Schema should have a length limit applied keeping the names of
      schema consistent across APIs. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-names.html"
      target="_blank">schema names</a> via API Evangelist guidance.
    message: Schema Names MUST Be Less Than 25 Characters
    severity: error
    given: $.components.schemas
    then:
      field: "@key"
      function: length
      functionOptions:
        max: 25
  openapi-schema-properties-allowed-integer-format-error:
    description: Schema integer properties should have a format property with int32
      or int64 applied. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Type Format MUST Be int32 or int64.
    severity: hint
    given: $.components.schemas.*.properties[?(@.type=="integer")]
    then:
      field: format
      function: enumeration
      functionOptions:
        values:
          - int32
          - int64
  openapi-schema-properties-allowed-number-format-error:
    description: Schema integer properties should have a format property with int32
      or int64 applied. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema Properties MUST Have Format
    severity: hint
    given: $.components.schemas.*.properties[?(@.type=="number")]
    then:
      field: format
      function: enumeration
      functionOptions:
        values:
          - decimal32
          - decimal64
          - float
          - double
          - decimal128
  openapi-schema-properties-array-items-error:
    description: Schema properties that are of the type array must have an items
      property defined. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema Array Properties MUST Have Items
    severity: error
    given: $.components.schemas.*.properties[?(@.type=="array")]
    then:
      field: items
      function: truthy
  openapi-schema-properties-array-items-info:
    description: Schema properties that are of the type array must have an items
      property defined. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema Array Properties Has Items
    severity: info
    given: $.components.schemas.*.properties[?(@.type=="array")]
    then:
      field: items
      function: falsy
  openapi-schema-properties-array-maxitems-error:
    description: Schema properties that are of the type array should have a max
      items property defined. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema Array Properties MUST Have Max Items
    severity: error
    given: $.components.schemas.*.properties[?(@.type=="array")]
    then:
      - field: maxItems
        function: truthy
  openapi-schema-properties-array-maxitems-info:
    description: Schema properties that are of the type array should have a max
      items property defined. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema Array Properties Have Max Items
    severity: info
    given: $.components.schemas.*.properties[?(@.type=="array")]
    then:
      - field: maxItems
        function: truthy
  openapi-schema-properties-array-minitems-error:
    description: Schema properties that are of the type array should have a min
      items property defined. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema Array Properties MUST Have Min Items
    severity: error
    given: $.components.schemas.*.properties[?(@.type=="array")]
    then:
      - field: minItems
        function: truthy
  openapi-schema-properties-array-minitems-info:
    description: Schema properties that are of the type array should have a min
      items property defined. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema Array Properties Have Min Items
    severity: info
    given: $.components.schemas.*.properties[?(@.type=="array")]
    then:
      - field: minItems
        function: falsy
  openapi-schema-properties-define-number-maximum-error:
    description: Schema properties that are of the type number should have a maximum
      property defined. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema Number Properties MUST Have Maximum
    severity: error
    given: $.components.schemas.*.properties[?(@.type=="number")]
    then:
      - field: maximum
        function: defined
  openapi-schema-properties-define-number-minimum-error:
    description: Schema properties that are of the type number should have a minimum
      property defined. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema Number Properties MUST Have Minimum
    severity: error
    given: $.components.schemas.*.properties[?(@.type=="number")]
    then:
      - field: minimum
        function: defined
  openapi-schema-properties-descriptions-error:
    description: Schema properties should have descriptions that provide a narrative
      of the property contains, and how it can be used. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-descriptions.html"
      target="_blank">schema property descriptions</a> via API Evangelist
      guidance.
    message: Schema Properties MUST Have Description
    severity: error
    given: $.components.schemas.*.properties[?(@.type == 'string')]
    then:
      field: description
      function: truthy
  openapi-schema-properties-descriptions-info:
    description: Schema properties should have descriptions that provide a narrative
      of the property contains, and how it can be used. You can find details
      about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-descriptions.html"
      target="_blank">schema property descriptions</a> via API Evangelist
      guidance.
    message: Schema Properties Have Description
    severity: info
    given: $.components.schemas.*.properties[?(@.type == 'string')]
    then:
      field: description
      function: falsy
  openapi-schema-properties-descriptions-length-error:
    description: Schema property descriptions should have a length limit applied,
      applying constraints to writing descriptions, and keeping consistent
      across APIs. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-descriptions.html"
      target="_blank">schema property descriptions</a> via API Evangelist
      guidance.
    message: Schema Properties Description MUST Have 250 Characters
    severity: error
    given: $.components.schemas.*.properties[?(@.type == 'string')]
    then:
      field: description
      function: length
      functionOptions:
        max: 250
  openapi-schema-properties-enum-casing-error:
    description: Schema property enumerators are consistent casing, keeping all
      entries upper snake case, and consistent across all APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-enums.html"
      target="_blank">schema property enum</a> via API Evangelist guidance.
    message: Schema Property Enum MUST Be Upper Snake Case
    severity: error
    given: $.components.schemas.*.properties.*.enum.*
    then:
      function: pattern
      functionOptions:
        match: ^[A-Z]+(?:_[A-Z]+)*$
  openapi-schema-properties-enum-casing-info:
    description: Schema property enumerators are consistent casing, keeping all
      entries upper snake case, and consistent across all APIs. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-enums.html"
      target="_blank">schema property enum</a> via API Evangelist guidance.
    message: Schema Property Enum Are Upper Snake Case
    severity: error
    given: $.components.schemas.*.properties.*.enum.*
    then:
      function: pattern
      functionOptions:
        notMatch: ^[A-Z]+(?:_[A-Z]+)*$
  openapi-schema-properties-enum-info:
    description: Schema property has enumerators, providing consistent values chosen
      by consumers when making requests. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-enums.html"
      target="_blank">schema property enum</a> via API Evangelist guidance.
    message: Schema Property Have Enum
    severity: info
    given: $.components.schemas.*.properties.*
    then:
      - field: enum
        function: falsy
  openapi-schema-properties-error:
    description: Schema has properties, providing more detail regarding the
      structure of each schema being applied as part of a request or a response.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-properties.html"
      target="_blank">schema properties</a> via API Evangelist guidance.
    message: Schema MUST Have Properties
    severity: error
    given: $.components.schemas[?(@.type=="object")]
    then:
      field: properties
      function: truthy
  openapi-schema-properties-info:
    description: Schema has properties, providing more detail regarding the
      structure of each schema being applied as part of a request or a response.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-properties.html"
      target="_blank">schema properties</a> via API Evangelist guidance.
    message: Schema Have Properties
    severity: info
    given: $.components.schemas[?(@.type=="object")]
    then:
      field: properties
      function: falsy
  openapi-schema-properties-names-camel-case-error:
    description: Schema property names are camel case, providing consistent casing
      across all the schema properties used by APIs. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-names.html"
      target="_blank">schema property names</a> via API Evangelist guidance.
    message: Schema Property Names MUST Be camelCase.
    severity: error
    given: $.components.schemas.*.properties
    then:
      - field: "@key"
        function: pattern
        functionOptions:
          notMatch: ^[A-Z][a-z0-9]*[A-Z0-9][a-z0-9]+[A-Za-z0-9]*$
  openapi-schema-properties-names-camel-case-info:
    description: Schema property names are camel case, providing consistent casing
      across all the schema properties used by APIs. You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-names.html"
      target="_blank">schema property names</a> via API Evangelist guidance.
    message: Schema Property Names Are camelCase.
    severity: info
    given: $.components.schemas.*.properties
    then:
      - field: "@key"
        function: pattern
        functionOptions:
          match: ^[A-Z][a-z0-9]*[A-Z0-9][a-z0-9]+[A-Za-z0-9]*$
  openapi-schema-properties-names-length-error:
    description: Schema property names have a length restriction applied, keeping
      names consistent, and avoiding being too long.  You can find details about
      the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-names.html"
      target="_blank">schema property names</a> via API Evangelist guidance.
    message: Schema Properties Name Length
    severity: error
    given: $.components.schemas.*.properties
    then:
      field: "@key"
      function: length
      functionOptions:
        max: 25
  openapi-schema-properties-string-maxlength-error:
    description: Schema properties that are of the string type have the max length
      applied defining the shape of the property. You can find details about the
      <a href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema String Properties MUST Have Maximum Length
    severity: error
    given: $.components.schemas.*.properties[?(@.type == 'string')]
    then:
      field: maxLength
      function: truthy
  openapi-schema-properties-string-maxlength-info:
    description: Schema properties that are of the string type have the max length
      applied defining the shape of the property. You can find details about the
      <a href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema String Properties Has Maximum Length
    severity: info
    given: $.components.schemas.*.properties[?(@.type == 'string')]
    then:
      field: maxLength
      function: falsy
  openapi-schema-properties-string-minlength-error:
    description: Schema properties that are of the string type have the min length
      applied defining the shape of the property. You can find details about the
      <a href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema String Properties MUST Have Minimum Length
    severity: error
    given: $.components.schemas.*.properties[?(@.type == 'string')]
    then:
      field: minLength
      function: truthy
  openapi-schema-properties-string-minlength-info:
    description: Schema properties that are of the string type have the min length
      applied defining the shape of the property. You can find details about the
      <a href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-property-shapes.html"
      target="_blank">schema property shapes</a> via API Evangelist guidance.
    message: Schema String Properties Has Minimum Length
    severity: info
    given: $.components.schemas.*.properties[?(@.type == 'string')]
    then:
      field: minLength
      function: falsy
  openapi-schema-required-error:
    description: Schema should have a required property defined, being explicit
      about which properties have to be included with the schema when it is used
      as part of a request or response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-required.html"
      target="_blank">schema required</a> via API Evangelist guidance.
    message: Schema MUST Have Required Property
    severity: error
    given: $.components.schemas[?(@.type=="object")]
    then:
      field: required
      function: truthy
  openapi-schema-required-info:
    description: Schema should have a required property defined, being explicit
      about which properties have to be included with the schema when it is used
      as part of a request or response. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-required.html"
      target="_blank">schema required</a> via API Evangelist guidance.
    message: Schema Has Required Property
    severity: info
    given: $.components.schemas[?(@.type=="object")]
    then:
      field: required
      function: falsy
  openapi-schema-type-error:
    description: Schema should have a type defined, being explicit about type of
      data a schema describes and can be used to validate, helping standardize
      the type of data being made available. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-types.html"
      target="_blank">schema types</a> via API Evangelist guidance.
    message: Schema MUST Have Type Property
    severity: error
    given: $.components.schemas.*
    then:
      field: type
      function: truthy
  openapi-schema-type-info:
    description: Schema should have a type defined, being explicit about type of
      data a schema describes and can be used to validate, helping standardize
      the type of data being made available. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#schema-object">schema
      object for OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/schema-types.html"
      target="_blank">schema types</a> via API Evangelist guidance.
    message: Schema Has Type Property
    severity: info
    given: $.components.schemas.*
    then:
      field: type
      function: falsy
  openapi-tags-description-error:
    description: Tags used as part of an OpenAPI should have descriptions, providing
      more of a narrative behind what a tag means when it is applied to an API.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/tags.html"
      target="_blank">tags</a> via API Evangelist guidance.
    message: Tags MUST Have a Description
    given: $.tags[*]
    severity: error
    then:
      field: description
      function: truthy
  openapi-tags-description-info:
    description: Tags used as part of an OpenAPI should have descriptions, providing
      more of a narrative behind what a tag means when it is applied to an API.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/tags.html"
      target="_blank">tags</a> via API Evangelist guidance.
    message: Tags Have a Description
    given: $.tags[*]
    severity: info
    then:
      field: description
      function: falsy
  openapi-tags-name-error:
    description: Tags used as part of an OpenAPI should have names, providing a
      simple key word or phrase that represents the tag being applied to APIs.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/tags.html"
      target="_blank">tags</a> via API Evangelist guidance.
    message: Tags MUST Have a Name
    given: $.tags[*]
    severity: error
    then:
      field: name
      function: truthy
  openapi-tags-name-info:
    description: Tags used as part of an OpenAPI should have names, providing a
      simple key word or phrase that represents the tag being applied to APIs.
      You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/tags.html"
      target="_blank">tags</a> via API Evangelist guidance.
    message: Tags Have a Name
    given: $.tags[*]
    severity: info
    then:
      field: name
      function: falsy
  openapi-tags-object-error:
    description: There needs to be a central tags object applied to the OpenAPI,
      providing central tags that can be applied across all operations within an
      OpenAPI. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/tags.html"
      target="_blank">tags</a> via API Evangelist guidance.
    message: OpenAPIs MUST Have a Tag Object
    given: $
    severity: error
    then:
      field: tags
      function: truthy
  openapi-tags-object-info:
    description: There needs to be a central tags object applied to the OpenAPI,
      providing central tags that can be applied across all operations within an
      OpenAPI. You can find details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/tags.html"
      target="_blank">tags</a> via API Evangelist guidance.
    message: OpenAPIs Have a Tag Object
    given: $
    severity: info
    then:
      field: tags
      function: falsy
  openapi-tags-one-error:
    description: There needs to be at least one tag applied to an OpenAPI, providing
      a key word or phrase that can be applied to API operations. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/tags.html"
      target="_blank">tags</a> via API Evangelist guidance.
    message: MUST Be At Least One Tag
    given: $
    severity: error
    then:
      field: tags
      function: length
      functionOptions:
        min: 1
  openapi-tags-upper-case-error:
    description: The first letter of each word in a tag being applied to APIs needs
      to be capitalized, keeping the tags being applied across APIs the same
      look and feel for organizing and publishing to documentation. You can find
      details about the <a
      href="https://spec.openapis.org/oas/latest.html#tag-object">tag object for
      OpenAPI</a>, and explore <a
      href="https://guidance.apievangelist.com/guidance/openapi/tags.html"
      target="_blank">tags</a> via API Evangelist guidance.
    message: Tag Names MUST Have First Letter in Each Word Capitalized
    severity: error
    given: $.tags.*.name
    then:
      function: pattern
      functionOptions:
        match: "[A-Z]\\w*"
