{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/code-climate/latest.json",
  "title": "Code Climate Configuration",
  "description": "Configuration file as an alternative for configuring your repository in the settings page.",
  "x-lintel": {
    "source": "https://www.schemastore.org/codeclimate.json",
    "sourceSha256": "a98efd179107a33207914eb8c421a436e73966069a371cc306effe5ca47f08b1",
    "fileMatch": [
      ".codeclimate.yml",
      ".codeclimate.json"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "version": {
      "title": "Version",
      "description": "Required to adjust maintainability checks.",
      "type": "string",
      "default": "2"
    },
    "prepare": {
      "title": "Prepare",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "title": "URL",
            "type": "string",
            "format": "uri"
          },
          "path": {
            "title": "Path",
            "type": "string"
          }
        }
      }
    },
    "checks": {
      "title": "Checks",
      "type": "object",
      "properties": {
        "argument-count": {
          "$ref": "#/$defs/enabled",
          "title": "Argument Count",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold",
                  "default": 4
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "complex-logic": {
          "$ref": "#/$defs/enabled",
          "title": "Complex Logic",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold",
                  "default": 4
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "file-lines": {
          "$ref": "#/$defs/enabled",
          "title": "File Lines",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold",
                  "default": 250
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "method-complexity": {
          "$ref": "#/$defs/enabled",
          "title": "Method Complexity",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold",
                  "default": 5
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "method-count": {
          "$ref": "#/$defs/enabled",
          "title": "Method Count",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold",
                  "default": 20
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "method-lines": {
          "$ref": "#/$defs/enabled",
          "title": "Method Lines",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold",
                  "default": 25
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "nested-control-flow": {
          "$ref": "#/$defs/enabled",
          "title": "Nested Control Flow",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold",
                  "default": 4
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "return-statements": {
          "$ref": "#/$defs/enabled",
          "title": "Return Statements",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold",
                  "default": 4
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "similar-code": {
          "$ref": "#/$defs/enabled",
          "title": "Similar Code",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        },
        "identical-code": {
          "$ref": "#/$defs/enabled",
          "title": "Identical Code",
          "properties": {
            "config": {
              "$ref": "#/$defs/config",
              "properties": {
                "threshold": {
                  "$ref": "#/$defs/threshold"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      }
    },
    "plugins": {
      "title": "Plugins",
      "description": "To add a plugin to your analysis. You can find the complete list of available plugins here: <https://docs.codeclimate.com/docs/list-of-engines>",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/enabled"
      }
    },
    "exclude_patterns": {
      "title": "Exclude Patterns",
      "type": "array",
      "items": {
        "title": "Exclude Pattern",
        "type": "string"
      }
    }
  },
  "id": "https://json.schemastore.org/codeclimate.json",
  "$comment": "https://docs.codeclimate.com/docs/advanced-configuration",
  "$defs": {
    "enabled": {
      "type": "object",
      "properties": {
        "enabled": {
          "title": "Enabled",
          "type": "boolean",
          "default": true
        }
      }
    },
    "config": {
      "title": "Config",
      "type": "object"
    },
    "threshold": {
      "title": "Threshold",
      "type": [
        "integer",
        "null"
      ]
    }
  }
}
