Class RuleConfiguration


  • public class RuleConfiguration
    extends Object
    Allows for configuration of validation rules which will be applied to a specification.
    • Constructor Detail

      • RuleConfiguration

        public RuleConfiguration()
    • Method Detail

      • isEnableApacheNginxUnderscoreRecommendation

        public boolean isEnableApacheNginxUnderscoreRecommendation()
        Gets whether we will raise awareness that header parameters with underscore may be ignored in Apache or Nginx by default. For more details, see https://stackoverflow.com/a/22856867/151445.
        Returns:
        true if enabled, false if disabled
      • setEnableApacheNginxUnderscoreRecommendation

        public void setEnableApacheNginxUnderscoreRecommendation​(boolean enableApacheNginxUnderscoreRecommendation)
        Enable or Disable the recommendation check for Apache/Nginx potentially ignoring header with underscore by default.

        For more details, see isEnableApacheNginxUnderscoreRecommendation()

        Parameters:
        enableApacheNginxUnderscoreRecommendation - true to enable, false to disable
      • isEnableApiRequestUriWithBodyRecommendation

        public boolean isEnableApiRequestUriWithBodyRecommendation()
        Gets whether we will raise awareness a GET or HEAD operation is defined with body.
        Returns:
        true if enabled, false if disabled
      • setEnableApiRequestUriWithBodyRecommendation

        public void setEnableApiRequestUriWithBodyRecommendation​(boolean enableApiRequestUriWithBodyRecommendation)
        Enable or Disable the recommendation check for GET or HEAD operations with bodies.

        For more details, see isEnableApiRequestUriWithBodyRecommendation()

        Parameters:
        enableApiRequestUriWithBodyRecommendation - true to enable, false to disable
      • isEnableOneOfWithPropertiesRecommendation

        public boolean isEnableOneOfWithPropertiesRecommendation()
        Gets whether the recommendation check for oneOf with sibling properties exists.

        JSON Schema defines oneOf as a validation property which can be applied to any schema.

        OpenAPI Specification is a variant of JSON Schema for which oneOf is defined as: "Inline or referenced schema MUST be of a Schema Object and not a standard JSON Schema."

        Where the only examples of oneOf in OpenAPI Specification are used to define either/or type structures rather than validations. Because of this ambiguity in the spec about what is non-standard about oneOf support, we'll warn as a recommendation that properties on the schema defining oneOf relationships may not be intentional in the OpenAPI Specification.

        Returns:
        true if enabled, false if disabled
      • setEnableOneOfWithPropertiesRecommendation

        public void setEnableOneOfWithPropertiesRecommendation​(boolean enableOneOfWithPropertiesRecommendation)
        Enable or Disable the recommendation check for schemas containing properties and oneOf definitions.

        For more details, see isEnableOneOfWithPropertiesRecommendation()

        Parameters:
        enableOneOfWithPropertiesRecommendation - true to enable, false to disable
      • setEnableSchemaTypeRecommendation

        public void setEnableSchemaTypeRecommendation​(boolean enableSchemaTypeRecommendation)
        Enable or Disable the recommendation check for schemas containing type definitions, specifically for changes between OpenAPI 3.0.x and 3.1.

        For more details, see isEnableSchemaTypeRecommendation()

        Parameters:
        enableSchemaTypeRecommendation - true to enable, false to disable
      • isEnableSchemaTypeRecommendation

        public boolean isEnableSchemaTypeRecommendation()
        Gets whether the recommendation check for schemas containing type definitions.

        In OpenAPI 3.0.x, the "type" attribute must be a string value. In OpenAPI 3.1, the type attribute may be: A string value The 'null' value An array containing primitive types and the 'null' value.

        Returns:
        true if enabled, false if disabled
      • setEnableNullableAttributeRecommendation

        public void setEnableNullableAttributeRecommendation​(boolean enableNullableAttributeRecommendation)
        Enable or Disable the recommendation check for the 'nullable' attribute.

        For more details, see isEnableNullableAttributeRecommendation()

        Parameters:
        enableNullableAttributeRecommendation - true to enable, false to disable
      • isEnableNullableAttributeRecommendation

        public boolean isEnableNullableAttributeRecommendation()
        Gets whether the recommendation check for schemas containing the 'nullable' attribute.

        In OpenAPI 3.0.x, the "nullable" attribute is supported. However, because it is deprecated in 3.1 and above, a warning is logged to prepare for OpenAPI 3.1 recommendations. In OpenAPI 3.1, the 'nullable' attribute is deprecated. Instead the OpenAPI specification should use the 'null' type.

        Returns:
        true if enabled, false if disabled
      • setEnableInvalidTypeRecommendation

        public void setEnableInvalidTypeRecommendation​(boolean enableInvalidTypeRecommendation)
        Enable or Disable the recommendation check for the 'type' attribute.

        For more details, see isEnableInvalidTypeRecommendation()

        Parameters:
        enableInvalidTypeRecommendation - true to enable, false to disable
      • isEnableInvalidTypeRecommendation

        public boolean isEnableInvalidTypeRecommendation()
        Gets whether the recommendation check for schemas containing invalid values for the 'type' attribute.

        Returns:
        true if enabled, false if disabled
      • isEnableRecommendations

        public boolean isEnableRecommendations()
        Get whether recommendations are enabled.

        The 'type' attribute must be one of 'null', 'boolean', 'object', 'array', 'number', 'string', or 'integer'

        Returns:
        true if enabled, false if disabled
      • setEnableRecommendations

        public void setEnableRecommendations​(boolean enableRecommendations)
        Enable or Disable recommendations. Recommendations are either informational or warning level type validations which are raised to communicate issues to the user which they may not be aware of, or for which support in the tooling/spec may not be clearly defined.
        Parameters:
        enableRecommendations - true to enable, false to disable
      • isEnableUnusedSchemasRecommendation

        public boolean isEnableUnusedSchemasRecommendation()
        Gets whether the recommendation to check for unused schemas is enabled.

        While the tooling may or may not support generation of models representing unused schemas, we take the stance that a schema which is defined but not referenced in an operation or by some schema bound to an operation may be a good indicator of a programming error. We surface this information to the user in case the orphaned schema(s) are not intentional.

        Returns:
        true if enabled, false if disabled
      • setEnableUnusedSchemasRecommendation

        public void setEnableUnusedSchemasRecommendation​(boolean enableUnusedSchemasRecommendation)
        Enable or Disable the recommendation check for unused schemas.

        For more details, see isEnableUnusedSchemasRecommendation()

        Parameters:
        enableUnusedSchemasRecommendation - true to enable, false to disable