{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/dbt-bouncer/latest.json",
  "title": "DbtBouncerConf",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/godatadriven/dbt-bouncer/main/schema.json",
    "sourceSha256": "e5f1a2cd1af10749e27d963448836dea86bb75aaf8194f094997ccdb61375afa",
    "fileMatch": [
      "dbt-bouncer.yml",
      "dbt-bouncer.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "custom_checks_dir": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Path to a directory containing custom checks.",
      "title": "Custom Checks Dir"
    },
    "dbt_artifacts_dir": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Dbt Artifacts Dir"
    },
    "exclude": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Regexp to match which paths to exclude.",
      "title": "Exclude"
    },
    "include": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Regexp to match which paths to include.",
      "title": "Include"
    },
    "package_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "If you want to run `dbt-bouncer` against a package.",
      "title": "Package Name"
    },
    "severity": {
      "anyOf": [
        {
          "enum": [
            "error",
            "warn"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Severity of the check, one of 'error' or 'warn'.",
      "title": "Severity"
    },
    "catalog_checks": {
      "default": [],
      "items": {
        "discriminator": {
          "mapping": {
            "check_column_description_populated": "#/$defs/CheckColumnDescriptionPopulated",
            "check_column_has_specified_test": "#/$defs/CheckColumnHasSpecifiedTest",
            "check_column_name_complies_to_column_type": "#/$defs/CheckColumnNameCompliesToColumnType",
            "check_column_names": "#/$defs/CheckColumnNames",
            "check_columns_are_all_documented": "#/$defs/CheckColumnsAreAllDocumented",
            "check_columns_are_documented_in_public_models": "#/$defs/CheckColumnsAreDocumentedInPublicModels",
            "check_seed_columns_are_all_documented": "#/$defs/CheckSeedColumnsAreAllDocumented",
            "check_source_columns_are_all_documented": "#/$defs/CheckSourceColumnsAreAllDocumented"
          },
          "propertyName": "name"
        },
        "oneOf": [
          {
            "$ref": "#/$defs/CheckColumnDescriptionPopulated"
          },
          {
            "$ref": "#/$defs/CheckColumnHasSpecifiedTest"
          },
          {
            "$ref": "#/$defs/CheckColumnNameCompliesToColumnType"
          },
          {
            "$ref": "#/$defs/CheckColumnNames"
          },
          {
            "$ref": "#/$defs/CheckColumnsAreAllDocumented"
          },
          {
            "$ref": "#/$defs/CheckColumnsAreDocumentedInPublicModels"
          },
          {
            "$ref": "#/$defs/CheckSeedColumnsAreAllDocumented"
          },
          {
            "$ref": "#/$defs/CheckSourceColumnsAreAllDocumented"
          }
        ]
      },
      "title": "Catalog Checks",
      "type": "array"
    },
    "manifest_checks": {
      "default": [],
      "items": {
        "discriminator": {
          "mapping": {
            "check_exposure_based_on_model": "#/$defs/CheckExposureBasedOnModel",
            "check_exposure_based_on_non_public_models": "#/$defs/CheckExposureBasedOnNonPublicModels",
            "check_exposure_based_on_view": "#/$defs/CheckExposureBasedOnView",
            "check_lineage_permitted_upstream_models": "#/$defs/CheckLineagePermittedUpstreamModels",
            "check_lineage_seed_cannot_be_used": "#/$defs/CheckLineageSeedCannotBeUsed",
            "check_lineage_source_cannot_be_used": "#/$defs/CheckLineageSourceCannotBeUsed",
            "check_macro_arguments_description_populated": "#/$defs/CheckMacroArgumentsDescriptionPopulated",
            "check_macro_code_does_not_contain_regexp_pattern": "#/$defs/CheckMacroCodeDoesNotContainRegexpPattern",
            "check_macro_description_populated": "#/$defs/CheckMacroDescriptionPopulated",
            "check_macro_max_number_of_lines": "#/$defs/CheckMacroMaxNumberOfLines",
            "check_macro_name_matches_file_name": "#/$defs/CheckMacroNameMatchesFileName",
            "check_macro_property_file_location": "#/$defs/CheckMacroPropertyFileLocation",
            "check_model_access": "#/$defs/CheckModelAccess",
            "check_model_code_does_not_contain_regexp_pattern": "#/$defs/CheckModelCodeDoesNotContainRegexpPattern",
            "check_model_columns_have_meta_keys": "#/$defs/CheckModelColumnsHaveMetaKeys",
            "check_model_columns_have_relationship_tests": "#/$defs/CheckModelColumnsHaveRelationshipTests",
            "check_model_columns_have_types": "#/$defs/CheckModelColumnsHaveTypes",
            "check_model_contract_enforced_for_public_model": "#/$defs/CheckModelContractEnforcedForPublicModel",
            "check_model_depends_on_macros": "#/$defs/CheckModelDependsOnMacros",
            "check_model_depends_on_multiple_sources": "#/$defs/CheckModelDependsOnMultipleSources",
            "check_model_description_contains_regex_pattern": "#/$defs/CheckModelDescriptionContainsRegexPattern",
            "check_model_description_populated": "#/$defs/CheckModelDescriptionPopulated",
            "check_model_directories": "#/$defs/CheckModelDirectories",
            "check_model_documentation_coverage": "#/$defs/CheckModelDocumentationCoverage",
            "check_model_documented_in_same_directory": "#/$defs/CheckModelDocumentedInSameDirectory",
            "check_model_file_name": "#/$defs/CheckModelFileName",
            "check_model_grant_privilege": "#/$defs/CheckModelGrantPrivilege",
            "check_model_grant_privilege_required": "#/$defs/CheckModelGrantPrivilegeRequired",
            "check_model_hard_coded_references": "#/$defs/CheckModelHardCodedReferences",
            "check_model_has_constraints": "#/$defs/CheckModelHasConstraints",
            "check_model_has_contracts_enforced": "#/$defs/CheckModelHasContractsEnforced",
            "check_model_has_exposure": "#/$defs/CheckModelHasExposure",
            "check_model_has_meta_keys": "#/$defs/CheckModelHasMetaKeys",
            "check_model_has_no_upstream_dependencies": "#/$defs/CheckModelHasNoUpstreamDependencies",
            "check_model_has_semi_colon": "#/$defs/CheckModelHasSemiColon",
            "check_model_has_tags": "#/$defs/CheckModelHasTags",
            "check_model_has_unique_test": "#/$defs/CheckModelHasUniqueTest",
            "check_model_has_unit_tests": "#/$defs/CheckModelHasUnitTests",
            "check_model_latest_version_specified": "#/$defs/CheckModelLatestVersionSpecified",
            "check_model_max_chained_views": "#/$defs/CheckModelMaxChainedViews",
            "check_model_max_fanout": "#/$defs/CheckModelMaxFanout",
            "check_model_max_number_of_lines": "#/$defs/CheckModelMaxNumberOfLines",
            "check_model_max_upstream_dependencies": "#/$defs/CheckModelMaxUpstreamDependencies",
            "check_model_names": "#/$defs/CheckModelNames",
            "check_model_number_of_grants": "#/$defs/CheckModelNumberOfGrants",
            "check_model_property_file_location": "#/$defs/CheckModelPropertyFileLocation",
            "check_model_schema_name": "#/$defs/CheckModelSchemaName",
            "check_model_test_coverage": "#/$defs/CheckModelTestCoverage",
            "check_model_version_allowed": "#/$defs/CheckModelVersionAllowed",
            "check_model_version_pinned_in_ref": "#/$defs/CheckModelVersionPinnedInRef",
            "check_project_name": "#/$defs/CheckProjectName",
            "check_seed_column_names": "#/$defs/CheckSeedColumnNames",
            "check_seed_columns_have_types": "#/$defs/CheckSeedColumnsHaveTypes",
            "check_seed_description_populated": "#/$defs/CheckSeedDescriptionPopulated",
            "check_seed_has_unit_tests": "#/$defs/CheckSeedHasUnitTests",
            "check_seed_names": "#/$defs/CheckSeedNames",
            "check_semantic_model_based_on_non_public_models": "#/$defs/CheckSemanticModelBasedOnNonPublicModels",
            "check_snapshot_description_populated": "#/$defs/CheckSnapshotDescriptionPopulated",
            "check_snapshot_has_tags": "#/$defs/CheckSnapshotHasTags",
            "check_snapshot_names": "#/$defs/CheckSnapshotNames",
            "check_source_description_populated": "#/$defs/CheckSourceDescriptionPopulated",
            "check_source_freshness_populated": "#/$defs/CheckSourceFreshnessPopulated",
            "check_source_has_meta_keys": "#/$defs/CheckSourceHasMetaKeys",
            "check_source_has_tags": "#/$defs/CheckSourceHasTags",
            "check_source_loader_populated": "#/$defs/CheckSourceLoaderPopulated",
            "check_source_names": "#/$defs/CheckSourceNames",
            "check_source_not_orphaned": "#/$defs/CheckSourceNotOrphaned",
            "check_source_property_file_location": "#/$defs/CheckSourcePropertyFileLocation",
            "check_source_used_by_models_in_same_directory": "#/$defs/CheckSourceUsedByModelsInSameDirectory",
            "check_source_used_by_only_one_model": "#/$defs/CheckSourceUsedByOnlyOneModel",
            "check_test_has_meta_keys": "#/$defs/CheckTestHasMetaKeys",
            "check_test_has_tags": "#/$defs/CheckTestHasTags",
            "check_unit_test_coverage": "#/$defs/CheckUnitTestCoverage",
            "check_unit_test_expect_format": "#/$defs/CheckUnitTestExpectFormat",
            "check_unit_test_given_formats": "#/$defs/CheckUnitTestGivenFormats"
          },
          "propertyName": "name"
        },
        "oneOf": [
          {
            "$ref": "#/$defs/CheckExposureBasedOnModel"
          },
          {
            "$ref": "#/$defs/CheckExposureBasedOnNonPublicModels"
          },
          {
            "$ref": "#/$defs/CheckExposureBasedOnView"
          },
          {
            "$ref": "#/$defs/CheckLineagePermittedUpstreamModels"
          },
          {
            "$ref": "#/$defs/CheckLineageSeedCannotBeUsed"
          },
          {
            "$ref": "#/$defs/CheckLineageSourceCannotBeUsed"
          },
          {
            "$ref": "#/$defs/CheckMacroArgumentsDescriptionPopulated"
          },
          {
            "$ref": "#/$defs/CheckMacroCodeDoesNotContainRegexpPattern"
          },
          {
            "$ref": "#/$defs/CheckMacroDescriptionPopulated"
          },
          {
            "$ref": "#/$defs/CheckMacroMaxNumberOfLines"
          },
          {
            "$ref": "#/$defs/CheckMacroNameMatchesFileName"
          },
          {
            "$ref": "#/$defs/CheckMacroPropertyFileLocation"
          },
          {
            "$ref": "#/$defs/CheckModelAccess"
          },
          {
            "$ref": "#/$defs/CheckModelCodeDoesNotContainRegexpPattern"
          },
          {
            "$ref": "#/$defs/CheckModelColumnsHaveMetaKeys"
          },
          {
            "$ref": "#/$defs/CheckModelColumnsHaveRelationshipTests"
          },
          {
            "$ref": "#/$defs/CheckModelColumnsHaveTypes"
          },
          {
            "$ref": "#/$defs/CheckModelContractEnforcedForPublicModel"
          },
          {
            "$ref": "#/$defs/CheckModelDependsOnMacros"
          },
          {
            "$ref": "#/$defs/CheckModelDependsOnMultipleSources"
          },
          {
            "$ref": "#/$defs/CheckModelDescriptionContainsRegexPattern"
          },
          {
            "$ref": "#/$defs/CheckModelDescriptionPopulated"
          },
          {
            "$ref": "#/$defs/CheckModelDirectories"
          },
          {
            "$ref": "#/$defs/CheckModelDocumentationCoverage"
          },
          {
            "$ref": "#/$defs/CheckModelDocumentedInSameDirectory"
          },
          {
            "$ref": "#/$defs/CheckModelFileName"
          },
          {
            "$ref": "#/$defs/CheckModelGrantPrivilege"
          },
          {
            "$ref": "#/$defs/CheckModelGrantPrivilegeRequired"
          },
          {
            "$ref": "#/$defs/CheckModelHardCodedReferences"
          },
          {
            "$ref": "#/$defs/CheckModelHasConstraints"
          },
          {
            "$ref": "#/$defs/CheckModelHasContractsEnforced"
          },
          {
            "$ref": "#/$defs/CheckModelHasExposure"
          },
          {
            "$ref": "#/$defs/CheckModelHasMetaKeys"
          },
          {
            "$ref": "#/$defs/CheckModelHasNoUpstreamDependencies"
          },
          {
            "$ref": "#/$defs/CheckModelHasSemiColon"
          },
          {
            "$ref": "#/$defs/CheckModelHasTags"
          },
          {
            "$ref": "#/$defs/CheckModelHasUniqueTest"
          },
          {
            "$ref": "#/$defs/CheckModelHasUnitTests"
          },
          {
            "$ref": "#/$defs/CheckModelLatestVersionSpecified"
          },
          {
            "$ref": "#/$defs/CheckModelMaxChainedViews"
          },
          {
            "$ref": "#/$defs/CheckModelMaxFanout"
          },
          {
            "$ref": "#/$defs/CheckModelMaxNumberOfLines"
          },
          {
            "$ref": "#/$defs/CheckModelMaxUpstreamDependencies"
          },
          {
            "$ref": "#/$defs/CheckModelNames"
          },
          {
            "$ref": "#/$defs/CheckModelNumberOfGrants"
          },
          {
            "$ref": "#/$defs/CheckModelPropertyFileLocation"
          },
          {
            "$ref": "#/$defs/CheckModelSchemaName"
          },
          {
            "$ref": "#/$defs/CheckModelTestCoverage"
          },
          {
            "$ref": "#/$defs/CheckModelVersionAllowed"
          },
          {
            "$ref": "#/$defs/CheckModelVersionPinnedInRef"
          },
          {
            "$ref": "#/$defs/CheckProjectName"
          },
          {
            "$ref": "#/$defs/CheckSeedColumnNames"
          },
          {
            "$ref": "#/$defs/CheckSeedColumnsHaveTypes"
          },
          {
            "$ref": "#/$defs/CheckSeedDescriptionPopulated"
          },
          {
            "$ref": "#/$defs/CheckSeedHasUnitTests"
          },
          {
            "$ref": "#/$defs/CheckSeedNames"
          },
          {
            "$ref": "#/$defs/CheckSemanticModelBasedOnNonPublicModels"
          },
          {
            "$ref": "#/$defs/CheckSnapshotDescriptionPopulated"
          },
          {
            "$ref": "#/$defs/CheckSnapshotHasTags"
          },
          {
            "$ref": "#/$defs/CheckSnapshotNames"
          },
          {
            "$ref": "#/$defs/CheckSourceDescriptionPopulated"
          },
          {
            "$ref": "#/$defs/CheckSourceFreshnessPopulated"
          },
          {
            "$ref": "#/$defs/CheckSourceHasMetaKeys"
          },
          {
            "$ref": "#/$defs/CheckSourceHasTags"
          },
          {
            "$ref": "#/$defs/CheckSourceLoaderPopulated"
          },
          {
            "$ref": "#/$defs/CheckSourceNames"
          },
          {
            "$ref": "#/$defs/CheckSourceNotOrphaned"
          },
          {
            "$ref": "#/$defs/CheckSourcePropertyFileLocation"
          },
          {
            "$ref": "#/$defs/CheckSourceUsedByModelsInSameDirectory"
          },
          {
            "$ref": "#/$defs/CheckSourceUsedByOnlyOneModel"
          },
          {
            "$ref": "#/$defs/CheckTestHasMetaKeys"
          },
          {
            "$ref": "#/$defs/CheckTestHasTags"
          },
          {
            "$ref": "#/$defs/CheckUnitTestCoverage"
          },
          {
            "$ref": "#/$defs/CheckUnitTestExpectFormat"
          },
          {
            "$ref": "#/$defs/CheckUnitTestGivenFormats"
          }
        ]
      },
      "title": "Manifest Checks",
      "type": "array"
    },
    "run_results_checks": {
      "default": [],
      "items": {
        "discriminator": {
          "mapping": {
            "check_run_results_max_execution_time": "#/$defs/CheckRunResultsMaxExecutionTime",
            "check_run_results_max_gigabytes_billed": "#/$defs/CheckRunResultsMaxGigabytesBilled"
          },
          "propertyName": "name"
        },
        "oneOf": [
          {
            "$ref": "#/$defs/CheckRunResultsMaxExecutionTime"
          },
          {
            "$ref": "#/$defs/CheckRunResultsMaxGigabytesBilled"
          }
        ]
      },
      "title": "Run Results Checks",
      "type": "array"
    }
  },
  "$defs": {
    "CheckColumnDescriptionPopulated": {
      "type": "object",
      "description": "Columns must have a populated description.\n\nParameters:\n    min_description_length (int | None): Minimum length required for the description to be considered populated.\n\nReceives:\n    catalog_node (CatalogNodeEntry): The CatalogNodeEntry object to check.\n    manifest_obj (ManifestObject): The ManifestObject object parsed from `manifest.json`.\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    catalog_checks:\n        - name: check_column_description_populated\n          include: ^models/marts\n    ```\n    ```yaml\n    catalog_checks:\n        - name: check_column_description_populated\n          min_description_length: 25 # Setting a stricter requirement for description length\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_column_description_populated",
          "default": "check_column_description_populated",
          "title": "Name",
          "type": "string"
        },
        "min_description_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Min Description Length"
        }
      },
      "title": "CheckColumnDescriptionPopulated",
      "additionalProperties": false
    },
    "CheckColumnHasSpecifiedTest": {
      "type": "object",
      "description": "Columns that match the specified regexp pattern must have a specified test.\n\nParameters:\n    column_name_pattern (str): Regex pattern to match the column name.\n    test_name (str): Name of the test to check for.\n\nReceives:\n    catalog_node (CatalogNodeEntry): The CatalogNodeEntry object to check.\n    tests (list[TestNode]): List of TestNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    catalog_checks:\n        - name: check_column_has_specified_test\n          column_name_pattern: ^is_.*\n          test_name: not_null\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_column_has_specified_test",
          "default": "check_column_has_specified_test",
          "title": "Name",
          "type": "string"
        },
        "column_name_pattern": {
          "title": "Column Name Pattern",
          "type": "string"
        },
        "test_name": {
          "title": "Test Name",
          "type": "string"
        }
      },
      "required": [
        "column_name_pattern",
        "test_name"
      ],
      "title": "CheckColumnHasSpecifiedTest",
      "additionalProperties": false
    },
    "CheckColumnNameCompliesToColumnType": {
      "type": "object",
      "description": "Columns with the specified regexp naming pattern must have data types that comply to the specified regexp pattern or list of data types.\n\nNote: One of `type_pattern` or `types` must be specified.\n\nRaises:\n    ValueError: If neither or both of type_pattern/types are supplied.\n\nParameters:\n    column_name_pattern (str): Regex pattern to match the model name.\n    type_pattern (str | None): Regex pattern to match the data types.\n    types (list[str] | None): List of data types to check.\n\nReceives:\n    catalog_node (CatalogNodeEntry): The CatalogNodeEntry object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    catalog_checks:\n        # DATE columns must end with \"_date\"\n        - name: check_column_name_complies_to_column_type\n          column_name_pattern: .*_date$\n          types:\n            - DATE\n    ```\n    ```yaml\n    catalog_checks:\n        # BOOLEAN columns must start with \"is_\"\n        - name: check_column_name_complies_to_column_type\n          column_name_pattern: ^is_.*\n          types:\n            - BOOLEAN\n    ```\n    ```yaml\n    catalog_checks:\n        # Columns of all types must consist of lowercase letters and underscores. Note that the specified types depend on the underlying database.\n        - name: check_column_name_complies_to_column_type\n          column_name_pattern: ^[a-z_]*$\n          types:\n            - BIGINT\n            - BOOLEAN\n            - DATE\n            - DOUBLE\n            - INTEGER\n            - VARCHAR\n    ```\n    ```yaml\n    catalog_checks:\n        # No STRUCT data types permitted.\n        - name: check_column_name_complies_to_column_type\n          column_name_pattern: ^[a-z_]*$\n          type_pattern: ^(?!STRUCT)\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_column_name_complies_to_column_type",
          "default": "check_column_name_complies_to_column_type",
          "title": "Name",
          "type": "string"
        },
        "column_name_pattern": {
          "title": "Column Name Pattern",
          "type": "string"
        },
        "type_pattern": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Type Pattern"
        },
        "types": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Types"
        }
      },
      "required": [
        "column_name_pattern"
      ],
      "title": "CheckColumnNameCompliesToColumnType",
      "additionalProperties": false
    },
    "CheckColumnNames": {
      "type": "object",
      "description": "Columns must have a name that matches the supplied regex.\n\nParameters:\n    column_name_pattern (str): Regexp the column name must match.\n\nReceives:\n    catalog_node (CatalogNodeEntry): The CatalogNodeEntry object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    catalog_checks:\n        - name: check_column_names\n          column_name_pattern: [a-z_] # Lowercase only, underscores allowed\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_column_names",
          "default": "check_column_names",
          "title": "Name",
          "type": "string"
        },
        "column_name_pattern": {
          "title": "Column Name Pattern",
          "type": "string"
        }
      },
      "required": [
        "column_name_pattern"
      ],
      "title": "CheckColumnNames",
      "additionalProperties": false
    },
    "CheckColumnsAreAllDocumented": {
      "type": "object",
      "description": "All columns in a model should be included in the model's properties file, i.e. `.yml` file.\n\nReceives:\n    case_sensitive (bool | None): Whether the column names are case sensitive or not. Necessary for adapters like `dbt-snowflake` where the column in `catalog.json` is uppercase but the column in `manifest.json` can be lowercase. Defaults to `false` for `dbt-snowflake`, otherwise `true`.\n    catalog_node (CatalogNodeEntry): The CatalogNodeEntry object to check.\n    manifest_obj (ManifestObject): The ManifestObject object parsed from `manifest.json`.\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    catalog_checks:\n        - name: check_columns_are_all_documented\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_columns_are_all_documented",
          "default": "check_columns_are_all_documented",
          "title": "Name",
          "type": "string"
        },
        "case_sensitive": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "title": "Case Sensitive"
        }
      },
      "title": "CheckColumnsAreAllDocumented",
      "additionalProperties": false
    },
    "CheckColumnsAreDocumentedInPublicModels": {
      "type": "object",
      "description": "Columns should have a populated description in public models.\n\nReceives:\n    catalog_node (CatalogNodeEntry): The CatalogNodeEntry object to check.\n    min_description_length (int | None): Minimum length required for the description to be considered populated.\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    catalog_checks:\n        - name: check_columns_are_documented_in_public_models\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_columns_are_documented_in_public_models",
          "default": "check_columns_are_documented_in_public_models",
          "title": "Name",
          "type": "string"
        },
        "min_description_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Min Description Length"
        }
      },
      "title": "CheckColumnsAreDocumentedInPublicModels",
      "additionalProperties": false
    },
    "CheckExposureBasedOnModel": {
      "type": "object",
      "description": "Exposures should depend on a model.\n\nParameters:\n    maximum_number_of_models (int | None): The maximum number of models an exposure can depend on, defaults to 100.\n    minimum_number_of_models (int | None): The minimum number of models an exposure can depend on, defaults to 1.\n\nReceives:\n    exposure (ExposureNode): The ExposureNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the exposure path (i.e the .yml file where the exposure is configured). Exposure paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the exposure path (i.e the .yml file where the exposure is configured). Only exposure paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_exposure_based_on_model\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_exposure_based_on_model\n          maximum_number_of_models: 3\n          minimum_number_of_models: 1\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_exposure_based_on_model",
          "default": "check_exposure_based_on_model",
          "title": "Name",
          "type": "string"
        },
        "maximum_number_of_models": {
          "default": 100,
          "title": "Maximum Number Of Models",
          "type": "integer"
        },
        "minimum_number_of_models": {
          "default": 1,
          "title": "Minimum Number Of Models",
          "type": "integer"
        }
      },
      "title": "CheckExposureBasedOnModel",
      "additionalProperties": false
    },
    "CheckExposureBasedOnNonPublicModels": {
      "type": "object",
      "description": "Exposures should be based on public models only.\n\nReceives:\n    exposure (ExposureNode): The ExposureNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the exposure path (i.e the .yml file where the exposure is configured). Exposure paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the exposure path (i.e the .yml file where the exposure is configured). Only exposure paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_exposure_based_on_non_public_models\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_exposure_based_on_non_public_models",
          "default": "check_exposure_based_on_non_public_models",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckExposureBasedOnNonPublicModels",
      "additionalProperties": false
    },
    "CheckExposureBasedOnView": {
      "type": "object",
      "description": "Exposures should not be based on views.\n\nParameters:\n    materializations_to_include (list[str] | None): List of materializations to include in the check.\n\nReceives:\n    exposure (ExposureNode): The ExposureNode object to check.\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the exposure path (i.e the .yml file where the exposure is configured). Exposure paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the exposure path (i.e the .yml file where the exposure is configured). Only exposure paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_exposure_based_on_view\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_exposure_based_on_view\n          materializations_to_include:\n            - ephemeral\n            - my_custom_materialization\n            - view\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_exposure_based_on_view",
          "default": "check_exposure_based_on_view",
          "title": "Name",
          "type": "string"
        },
        "materializations_to_include": {
          "default": [
            "ephemeral",
            "view"
          ],
          "items": {
            "type": "string"
          },
          "title": "Materializations To Include",
          "type": "array"
        }
      },
      "title": "CheckExposureBasedOnView",
      "additionalProperties": false
    },
    "CheckLineagePermittedUpstreamModels": {
      "type": "object",
      "description": "Upstream models must have a path that matches the provided `upstream_path_pattern`.\n\nParameters:\n    upstream_path_pattern (str): Regexp pattern to match the upstream model(s) path.\n\nReceives:\n    manifest_obj (ManifestObject): The manifest object.\n    model (ModelNode): The ModelNode object to check.\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_lineage_permitted_upstream_models\n          include: ^models/staging\n          upstream_path_pattern: $^\n        - name: check_lineage_permitted_upstream_models\n          include: ^models/intermediate\n          upstream_path_pattern: ^models/staging|^models/intermediate\n        - name: check_lineage_permitted_upstream_models\n          include: ^models/marts\n          upstream_path_pattern: ^models/staging|^models/intermediate\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_lineage_permitted_upstream_models",
          "default": "check_lineage_permitted_upstream_models",
          "title": "Name",
          "type": "string"
        },
        "package_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Package Name"
        },
        "upstream_path_pattern": {
          "title": "Upstream Path Pattern",
          "type": "string"
        }
      },
      "required": [
        "upstream_path_pattern"
      ],
      "title": "CheckLineagePermittedUpstreamModels",
      "additionalProperties": false
    },
    "CheckLineageSeedCannotBeUsed": {
      "type": "object",
      "description": "Seed cannot be referenced in models with a path that matches the specified `include` config.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_lineage_seed_cannot_be_used\n          include: ^models/intermediate|^models/marts\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_lineage_seed_cannot_be_used",
          "default": "check_lineage_seed_cannot_be_used",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckLineageSeedCannotBeUsed",
      "additionalProperties": false
    },
    "CheckLineageSourceCannotBeUsed": {
      "type": "object",
      "description": "Sources cannot be referenced in models with a path that matches the specified `include` config.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_lineage_source_cannot_be_used\n          include: ^models/intermediate|^models/marts\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_lineage_source_cannot_be_used",
          "default": "check_lineage_source_cannot_be_used",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckLineageSourceCannotBeUsed",
      "additionalProperties": false
    },
    "CheckMacroArgumentsDescriptionPopulated": {
      "type": "object",
      "description": "Macro arguments must have a populated description.\n\nParameters:\n    min_description_length (int | None): Minimum length required for the description to be considered populated.\n\nReceives:\n    macro (Macros): The Macros object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the macro path. Macro paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the macro path. Only macro paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_macro_arguments_description_populated\n    ```\n    ```yaml\n    # Only \"common\" macros need to have their arguments populated\n    manifest_checks:\n        - name: check_macro_arguments_description_populated\n          include: ^macros/common\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_macro_arguments_description_populated\n          min_description_length: 25 # Setting a stricter requirement for description length\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_macro_arguments_description_populated",
          "default": "check_macro_arguments_description_populated",
          "title": "Name",
          "type": "string"
        },
        "min_description_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Min Description Length"
        }
      },
      "title": "CheckMacroArgumentsDescriptionPopulated",
      "additionalProperties": false
    },
    "CheckMacroCodeDoesNotContainRegexpPattern": {
      "type": "object",
      "description": "The raw code for a macro must not match the specified regexp pattern.\n\nParameters:\n    regexp_pattern (str): The regexp pattern that should not be matched by the macro code.\n\nReceives:\n    macro (Macros): The Macros object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the macro path. Macro paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the macro path. Only macro paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        # Prefer `coalesce` over `ifnull`: [<https://docs.sqlfluff.com/en/stable/rules.html#sqlfluff.rules.sphinx.Rule_CV02](https://docs.sqlfluff.com/en/stable/rules.html#sqlfluff.rules.sphinx.Rule_CV02)>\n        - name: check_macro_code_does_not_contain_regexp_pattern\n          regexp_pattern: .*[i][f][n][u][l][l].*\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_macro_code_does_not_contain_regexp_pattern",
          "default": "check_macro_code_does_not_contain_regexp_pattern",
          "title": "Name",
          "type": "string"
        },
        "regexp_pattern": {
          "title": "Regexp Pattern",
          "type": "string"
        }
      },
      "required": [
        "regexp_pattern"
      ],
      "title": "CheckMacroCodeDoesNotContainRegexpPattern",
      "additionalProperties": false
    },
    "CheckMacroDescriptionPopulated": {
      "type": "object",
      "description": "Macros must have a populated description.\n\nParameters:\n    min_description_length (int | None): Minimum length required for the description to be considered populated.\n\nReceives:\n    macro (Macros): The Macros object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the macro path. Macro paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the macro path. Only macro paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_macro_description_populated\n    ```\n    ```yaml\n    # Only \"common\" macros need to have a populated description\n    manifest_checks:\n        - name: check_macro_description_populated\n          include: ^macros/common\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_macro_description_populated",
          "default": "check_macro_description_populated",
          "title": "Name",
          "type": "string"
        },
        "min_description_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Min Description Length"
        }
      },
      "title": "CheckMacroDescriptionPopulated",
      "additionalProperties": false
    },
    "CheckMacroMaxNumberOfLines": {
      "type": "object",
      "description": "Macros may not have more than the specified number of lines.\n\nParameters:\n    max_number_of_lines (int): The maximum number of permitted lines.\n\nReceives:\n    macro (Macros): The Macros object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the macro path. Macro paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the macro path. Only macro paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_macro_max_number_of_lines\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_macro_max_number_of_lines\n          max_number_of_lines: 100\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_macro_max_number_of_lines",
          "default": "check_macro_max_number_of_lines",
          "title": "Name",
          "type": "string"
        },
        "max_number_of_lines": {
          "default": 100,
          "title": "Max Number Of Lines",
          "type": "integer"
        }
      },
      "title": "CheckMacroMaxNumberOfLines",
      "additionalProperties": false
    },
    "CheckMacroNameMatchesFileName": {
      "type": "object",
      "description": "Macros names must be the same as the file they are contained in.\n\nGeneric tests are also macros, however to document these tests the \"name\" value must be preceded with \"test_\".\n\nReceives:\n    macro (Macros): The Macros object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the macro path. Macro paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the macro path. Only macro paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_macro_name_matches_file_name\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_macro_name_matches_file_name",
          "default": "check_macro_name_matches_file_name",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckMacroNameMatchesFileName",
      "additionalProperties": false
    },
    "CheckMacroPropertyFileLocation": {
      "type": "object",
      "description": "Macro properties files must follow the guidance provided by dbt [here](https://docs.getdbt.com/best-practices/how-we-structure/5-the-rest-of-the-project#how-we-use-the-other-folders).\n\nReceives:\n    macro (Macros): The Macros object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the macro path. Macro paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the macro path. Only macro paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_macro_property_file_location\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_macro_property_file_location",
          "default": "check_macro_property_file_location",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckMacroPropertyFileLocation",
      "additionalProperties": false
    },
    "CheckModelAccess": {
      "type": "object",
      "description": "Models must have the specified access attribute. Requires dbt 1.7+.\n\nParameters:\n    access (Literal[\"private\", \"protected\", \"public\"]): The access level to check for.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        # Align with dbt best practices that marts should be `public`, everything else should be `protected`\n        - name: check_model_access\n          access: protected\n          include: ^models/intermediate\n        - name: check_model_access\n          access: public\n          include: ^models/marts\n        - name: check_model_access\n          access: protected\n          include: ^models/staging\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_access",
          "default": "check_model_access",
          "title": "Name",
          "type": "string"
        },
        "access": {
          "title": "Access",
          "type": "string"
        }
      },
      "required": [
        "access"
      ],
      "title": "CheckModelAccess",
      "additionalProperties": false
    },
    "CheckModelCodeDoesNotContainRegexpPattern": {
      "type": "object",
      "description": "The raw code for a model must not match the specified regexp pattern.\n\nParameters:\n    regexp_pattern (str): The regexp pattern that should not be matched by the model code.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        # Prefer `coalesce` over `ifnull`: <https://docs.sqlfluff.com/en/stable/rules.html#sqlfluff.rules.sphinx.Rule_CV02>\n        - name: check_model_code_does_not_contain_regexp_pattern\n          regexp_pattern: .*[i][f][n][u][l][l].*\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_code_does_not_contain_regexp_pattern",
          "default": "check_model_code_does_not_contain_regexp_pattern",
          "title": "Name",
          "type": "string"
        },
        "regexp_pattern": {
          "title": "Regexp Pattern",
          "type": "string"
        }
      },
      "required": [
        "regexp_pattern"
      ],
      "title": "CheckModelCodeDoesNotContainRegexpPattern",
      "additionalProperties": false
    },
    "CheckModelColumnsHaveMetaKeys": {
      "type": "object",
      "description": "Columns defined for models must have the specified keys in the `meta` config.\n\nParameters:\n    keys (NestedDict): A list (that may contain sub-lists) of required keys.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_columns_have_meta_keys\n          keys:\n            - owner\n            - pii\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_columns_have_meta_keys",
          "default": "check_model_columns_have_meta_keys",
          "title": "Name",
          "type": "string"
        },
        "keys": {
          "$ref": "#/$defs/NestedDict"
        }
      },
      "required": [
        "keys"
      ],
      "title": "CheckModelColumnsHaveMetaKeys",
      "additionalProperties": false
    },
    "CheckModelColumnsHaveRelationshipTests": {
      "type": "object",
      "description": "Columns matching a regex pattern must have a `relationships` test, optionally validating the target column and model.\n\nParameters:\n    column_name_pattern (str): Regex pattern to match column names that require a relationships test.\n    target_column_pattern (str | None): Regex pattern the target column (`field`) of the relationships test must match. If not provided, any target column is accepted.\n    target_model_pattern (str | None): Regex pattern the target model of the relationships test must match. If not provided, any target model is accepted.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_columns_have_relationship_tests\n          column_name_pattern: \"_fk$\"\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_model_columns_have_relationship_tests\n          column_name_pattern: \"_fk$\"\n          target_column_pattern: \"_pk$\"\n          target_model_pattern: \"^dim_|^fact_\"\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_columns_have_relationship_tests",
          "default": "check_model_columns_have_relationship_tests",
          "title": "Name",
          "type": "string"
        },
        "column_name_pattern": {
          "title": "Column Name Pattern",
          "type": "string"
        },
        "target_column_pattern": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Target Column Pattern"
        },
        "target_model_pattern": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Target Model Pattern"
        }
      },
      "required": [
        "column_name_pattern"
      ],
      "title": "CheckModelColumnsHaveRelationshipTests",
      "additionalProperties": false
    },
    "CheckModelColumnsHaveTypes": {
      "type": "object",
      "description": "Columns defined for models must have a `data_type` declared.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_columns_have_types\n          include: ^models/marts\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_columns_have_types",
          "default": "check_model_columns_have_types",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelColumnsHaveTypes",
      "additionalProperties": false
    },
    "CheckModelContractEnforcedForPublicModel": {
      "type": "object",
      "description": "Public models must have contracts enforced.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_contract_enforced_for_public_model\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_contract_enforced_for_public_model",
          "default": "check_model_contract_enforced_for_public_model",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelContractEnforcedForPublicModel",
      "additionalProperties": false
    },
    "CheckModelDependsOnMacros": {
      "type": "object",
      "description": "Models must depend on the specified macros.\n\nParameters:\n    criteria: (Literal[\"any\", \"all\", \"one\"] | None): Whether the model must depend on any, all, or exactly one of the specified macros. Default: `any`.\n    required_macros: (list[str]): List of macros the model must depend on. All macros must specify a namespace, e.g. `dbt.is_incremental`.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_depends_on_macros\n          required_macros:\n            - dbt.is_incremental\n        - name: check_model_depends_on_macros\n          criteria: one\n          required_macros:\n            - my_package.sampler\n            - my_package.sampling\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_depends_on_macros",
          "default": "check_model_depends_on_macros",
          "title": "Name",
          "type": "string"
        },
        "criteria": {
          "default": "all",
          "title": "Criteria",
          "type": "string"
        },
        "required_macros": {
          "items": {
            "type": "string"
          },
          "title": "Required Macros",
          "type": "array"
        }
      },
      "required": [
        "required_macros"
      ],
      "title": "CheckModelDependsOnMacros",
      "additionalProperties": false
    },
    "CheckModelDependsOnMultipleSources": {
      "type": "object",
      "description": "Models cannot reference more than one source.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_depends_on_multiple_sources\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_depends_on_multiple_sources",
          "default": "check_model_depends_on_multiple_sources",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelDependsOnMultipleSources",
      "additionalProperties": false
    },
    "CheckModelDescriptionContainsRegexPattern": {
      "type": "object",
      "description": "Models must have a description that matches the provided pattern.\n\nParameters:\n    regexp_pattern (str): The regexp pattern that should match the model description.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_description_contains_regex_pattern\n          regexp_pattern: .*pattern_to_match.*\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_description_contains_regex_pattern",
          "default": "check_model_description_contains_regex_pattern",
          "title": "Name",
          "type": "string"
        },
        "regexp_pattern": {
          "title": "Regexp Pattern",
          "type": "string"
        }
      },
      "required": [
        "regexp_pattern"
      ],
      "title": "CheckModelDescriptionContainsRegexPattern",
      "additionalProperties": false
    },
    "CheckModelDescriptionPopulated": {
      "type": "object",
      "description": "Models must have a populated description.\n\nParameters:\n    min_description_length (int | None): Minimum length required for the description to be considered populated.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_description_populated\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_model_description_populated\n          min_description_length: 25 # Setting a stricter requirement for description length\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_description_populated",
          "default": "check_model_description_populated",
          "title": "Name",
          "type": "string"
        },
        "min_description_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Min Description Length"
        }
      },
      "title": "CheckModelDescriptionPopulated",
      "additionalProperties": false
    },
    "CheckModelDirectories": {
      "type": "object",
      "description": "Only specified sub-directories are permitted.\n\nParameters:\n    include (str): Regex pattern to the directory to check.\n    permitted_sub_directories (list[str]): List of permitted sub-directories.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n    - name: check_model_directories\n      include: models\n      permitted_sub_directories:\n        - intermediate\n        - marts\n        - staging\n    ```\n    ```yaml\n    # Restrict sub-directories within `./models/staging`\n    - name: check_model_directories\n      include: ^models/staging\n      permitted_sub_directories:\n        - crm\n        - payments\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "title": "Include",
          "type": "string"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_directories",
          "default": "check_model_directories",
          "title": "Name",
          "type": "string"
        },
        "permitted_sub_directories": {
          "items": {
            "type": "string"
          },
          "title": "Permitted Sub Directories",
          "type": "array"
        }
      },
      "required": [
        "include",
        "permitted_sub_directories"
      ],
      "title": "CheckModelDirectories",
      "additionalProperties": false
    },
    "CheckModelDocumentationCoverage": {
      "type": "object",
      "description": "Set the minimum percentage of models that have a populated description.\n\nParameters:\n    min_model_documentation_coverage_pct (float): The minimum percentage of models that must have a populated description.\n\nReceives:\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_documentation_coverage\n          min_model_documentation_coverage_pct: 90\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_model_documentation_coverage\n          min_description_length: 25 # Setting a stricter requirement for description length\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_documentation_coverage",
          "default": "check_model_documentation_coverage",
          "title": "Name",
          "type": "string"
        },
        "min_model_documentation_coverage_pct": {
          "default": 100,
          "title": "Min Model Documentation Coverage Pct",
          "type": "integer"
        }
      },
      "title": "CheckModelDocumentationCoverage",
      "additionalProperties": false
    },
    "CheckModelDocumentedInSameDirectory": {
      "type": "object",
      "description": "Models must be documented in the same directory where they are defined (i.e. `.yml` and `.sql` files are in the same directory).\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_documented_in_same_directory\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_documented_in_same_directory",
          "default": "check_model_documented_in_same_directory",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelDocumentedInSameDirectory",
      "additionalProperties": false
    },
    "CheckModelFileName": {
      "type": "object",
      "description": "Models must have a file name that matches the supplied regex.\n\nParameters:\n    file_name_pattern (str): Regexp the file name must match. Please account for the `.sql` extension.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_file_name\n          description: Marts must include the model version in their file name.\n          include: ^models/marts\n          file_name_pattern: .*(v[0-9])\\.sql$\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_file_name",
          "default": "check_model_file_name",
          "title": "Name",
          "type": "string"
        },
        "file_name_pattern": {
          "title": "File Name Pattern",
          "type": "string"
        }
      },
      "required": [
        "file_name_pattern"
      ],
      "title": "CheckModelFileName",
      "additionalProperties": false
    },
    "CheckModelGrantPrivilege": {
      "type": "object",
      "description": "Model can have grant privileges that match the specified pattern.\n\nParameters:\n    privilege_pattern (str): Regex pattern to match the privilege.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_grant_privilege\n          include: ^models/marts\n          privilege_pattern: ^select\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_grant_privilege",
          "default": "check_model_grant_privilege",
          "title": "Name",
          "type": "string"
        },
        "privilege_pattern": {
          "title": "Privilege Pattern",
          "type": "string"
        }
      },
      "required": [
        "privilege_pattern"
      ],
      "title": "CheckModelGrantPrivilege",
      "additionalProperties": false
    },
    "CheckModelGrantPrivilegeRequired": {
      "type": "object",
      "description": "Model must have the specified grant privilege.\n\nParameters:\n    privilege (str): The privilege that is required.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_grant_privilege_required\n          include: ^models/marts\n          privilege: select\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_grant_privilege_required",
          "default": "check_model_grant_privilege_required",
          "title": "Name",
          "type": "string"
        },
        "privilege": {
          "title": "Privilege",
          "type": "string"
        }
      },
      "required": [
        "privilege"
      ],
      "title": "CheckModelGrantPrivilegeRequired",
      "additionalProperties": false
    },
    "CheckModelHardCodedReferences": {
      "type": "object",
      "description": "A model must not contain hard-coded table references; use ref() or source() instead.\n\nScans ``raw_code`` for patterns like ``FROM schema.table`` or\n``JOIN catalog.schema.table`` that are not wrapped in Jinja expressions.\nHard-coded references bypass the dbt DAG, break lineage, and are\nenvironment-specific.\n\n!!! warning\n\n    This check is not foolproof and will not catch all hard-coded table\n    references (e.g. references inside complex Jinja logic or comments).\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_hard_coded_references\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_hard_coded_references",
          "default": "check_model_hard_coded_references",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelHardCodedReferences",
      "additionalProperties": false
    },
    "CheckModelHasConstraints": {
      "type": "object",
      "description": "Table and incremental models must have the specified constraint types defined.\n\nParameters:\n    required_constraint_types (list[Literal[\"check\", \"custom\", \"foreign_key\", \"not_null\", \"primary_key\", \"unique\"]]): List of constraint types that must be present on the model.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_constraints\n          required_constraint_types:\n            - primary_key\n          include: ^models/marts\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_has_constraints",
          "default": "check_model_has_constraints",
          "title": "Name",
          "type": "string"
        },
        "required_constraint_types": {
          "items": {
            "type": "string"
          },
          "title": "Required Constraint Types",
          "type": "array"
        }
      },
      "required": [
        "required_constraint_types"
      ],
      "title": "CheckModelHasConstraints",
      "additionalProperties": false
    },
    "CheckModelHasContractsEnforced": {
      "type": "object",
      "description": "Model must have contracts enforced.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_contracts_enforced\n          include: ^models/marts\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_has_contracts_enforced",
          "default": "check_model_has_contracts_enforced",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelHasContractsEnforced",
      "additionalProperties": false
    },
    "CheckModelHasExposure": {
      "type": "object",
      "description": "Models must have an exposure.\n\nReceives:\n    exposures (list[ExposureNode]):  List of ExposureNode objects parsed from `manifest.json`.\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_exposure\n          description: Ensure all marts are part of an exposure.\n          include: ^models/marts\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_has_exposure",
          "default": "check_model_has_exposure",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelHasExposure",
      "additionalProperties": false
    },
    "CheckModelHasMetaKeys": {
      "type": "object",
      "description": "The `meta` config for models must have the specified keys.\n\nParameters:\n    keys (NestedDict): A list (that may contain sub-lists) of required keys.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_meta_keys\n          keys:\n            - maturity\n            - owner\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_has_meta_keys",
          "default": "check_model_has_meta_keys",
          "title": "Name",
          "type": "string"
        },
        "keys": {
          "$ref": "#/$defs/NestedDict"
        }
      },
      "required": [
        "keys"
      ],
      "title": "CheckModelHasMetaKeys",
      "additionalProperties": false
    },
    "CheckModelHasNoUpstreamDependencies": {
      "type": "object",
      "description": "Identify if models have no upstream dependencies as this likely indicates hard-coded tables references.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_no_upstream_dependencies\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_has_no_upstream_dependencies",
          "default": "check_model_has_no_upstream_dependencies",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelHasNoUpstreamDependencies",
      "additionalProperties": false
    },
    "CheckModelHasSemiColon": {
      "type": "object",
      "description": "Model may not end with a semi-colon (`;`).\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_semi_colon\n          include: ^models/marts\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_has_semi_colon",
          "default": "check_model_has_semi_colon",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelHasSemiColon",
      "additionalProperties": false
    },
    "CheckModelHasTags": {
      "type": "object",
      "description": "Models must have the specified tags.\n\nParameters:\n    criteria: (Literal[\"any\", \"all\", \"one\"] | None): Whether the model must have any, all, or exactly one of the specified tags. Default: `any`.\n    tags (list[str]): List of tags to check for.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_tags\n          tags:\n            - tag_1\n            - tag_2\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_has_tags",
          "default": "check_model_has_tags",
          "title": "Name",
          "type": "string"
        },
        "criteria": {
          "default": "all",
          "title": "Criteria",
          "type": "string"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "title": "Tags",
          "type": "array"
        }
      },
      "required": [
        "tags"
      ],
      "title": "CheckModelHasTags",
      "additionalProperties": false
    },
    "CheckModelHasUniqueTest": {
      "type": "object",
      "description": "Models must have a test for uniqueness of a column.\n\nParameters:\n    accepted_uniqueness_tests (list[str] | None): List of tests that are accepted as uniqueness tests.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_unique_test\n          include: ^models/marts\n    ```\n    ```yaml\n    manifest_checks:\n    # Example of allowing a custom uniqueness test\n        - name: check_model_has_unique_test\n          accepted_uniqueness_tests:\n            - dbt_expectations.expect_compound_columns_to_be_unique # i.e. tests from packages must include package name\n            - my_custom_uniqueness_test\n            - unique\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_has_unique_test",
          "default": "check_model_has_unique_test",
          "title": "Name",
          "type": "string"
        },
        "accepted_uniqueness_tests": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": [
            "dbt_expectations.expect_compound_columns_to_be_unique",
            "dbt_utils.unique_combination_of_columns",
            "unique"
          ],
          "title": "Accepted Uniqueness Tests"
        }
      },
      "title": "CheckModelHasUniqueTest",
      "additionalProperties": false
    },
    "CheckModelHasUnitTests": {
      "type": "object",
      "description": "Models must have more than the specified number of unit tests.\n\nParameters:\n    min_number_of_unit_tests (int | None): The minimum number of unit tests that a model must have.\n\nReceives:\n    manifest_obj (ManifestObject): The ManifestObject object parsed from `manifest.json`.\n    model (ModelNode): The ModelNode object to check.\n    unit_tests (list[UnitTests]): List of UnitTests objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\n!!! warning\n\n    This check is only supported for dbt 1.8.0 and above.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_unit_tests\n          include: ^models/marts\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_model_has_unit_tests\n          min_number_of_unit_tests: 2\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_has_unit_tests",
          "default": "check_model_has_unit_tests",
          "title": "Name",
          "type": "string"
        },
        "min_number_of_unit_tests": {
          "default": 1,
          "title": "Min Number Of Unit Tests",
          "type": "integer"
        }
      },
      "title": "CheckModelHasUnitTests",
      "additionalProperties": false
    },
    "CheckModelLatestVersionSpecified": {
      "type": "object",
      "description": "Check that the `latest_version` attribute of the model is set.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_latest_version_specified\n          include: ^models/marts\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_latest_version_specified",
          "default": "check_model_latest_version_specified",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelLatestVersionSpecified",
      "additionalProperties": false
    },
    "CheckModelMaxChainedViews": {
      "type": "object",
      "description": "Models cannot have more than the specified number of upstream dependents that are not tables.\n\nParameters:\n    materializations_to_include (list[str] | None): List of materializations to include in the check.\n    max_chained_views (int | None): The maximum number of upstream dependents that are not tables.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_max_chained_views\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_model_max_chained_views\n          materializations_to_include:\n            - ephemeral\n            - my_custom_materialization\n            - view\n          max_chained_views: 5\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_max_chained_views",
          "default": "check_model_max_chained_views",
          "title": "Name",
          "type": "string"
        },
        "materializations_to_include": {
          "default": [
            "ephemeral",
            "view"
          ],
          "items": {
            "type": "string"
          },
          "title": "Materializations To Include",
          "type": "array"
        },
        "max_chained_views": {
          "default": 3,
          "title": "Max Chained Views",
          "type": "integer"
        },
        "package_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Package Name"
        }
      },
      "title": "CheckModelMaxChainedViews",
      "additionalProperties": false
    },
    "CheckModelMaxFanout": {
      "type": "object",
      "description": "Models cannot have more than the specified number of downstream models.\n\nParameters:\n    max_downstream_models (int | None): The maximum number of permitted downstream models.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_max_fanout\n          max_downstream_models: 2\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_max_fanout",
          "default": "check_model_max_fanout",
          "title": "Name",
          "type": "string"
        },
        "max_downstream_models": {
          "default": 3,
          "title": "Max Downstream Models",
          "type": "integer"
        }
      },
      "title": "CheckModelMaxFanout",
      "additionalProperties": false
    },
    "CheckModelMaxNumberOfLines": {
      "type": "object",
      "description": "Models may not have more than the specified number of lines.\n\nParameters:\n    max_number_of_lines (int): The maximum number of permitted lines.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_max_number_of_lines\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_model_max_number_of_lines\n          max_number_of_lines: 150\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_max_number_of_lines",
          "default": "check_model_max_number_of_lines",
          "title": "Name",
          "type": "string"
        },
        "max_number_of_lines": {
          "default": 100,
          "title": "Max Number Of Lines",
          "type": "integer"
        }
      },
      "title": "CheckModelMaxNumberOfLines",
      "additionalProperties": false
    },
    "CheckModelMaxUpstreamDependencies": {
      "type": "object",
      "description": "Limit the number of upstream dependencies a model has.\n\nParameters:\n    max_upstream_macros (int | None): The maximum number of permitted upstream macros.\n    max_upstream_models (int | None): The maximum number of permitted upstream models.\n    max_upstream_sources (int | None): The maximum number of permitted upstream sources.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_max_upstream_dependencies\n          max_upstream_models: 3\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_max_upstream_dependencies",
          "default": "check_model_max_upstream_dependencies",
          "title": "Name",
          "type": "string"
        },
        "max_upstream_macros": {
          "default": 5,
          "title": "Max Upstream Macros",
          "type": "integer"
        },
        "max_upstream_models": {
          "default": 5,
          "title": "Max Upstream Models",
          "type": "integer"
        },
        "max_upstream_sources": {
          "default": 1,
          "title": "Max Upstream Sources",
          "type": "integer"
        }
      },
      "title": "CheckModelMaxUpstreamDependencies",
      "additionalProperties": false
    },
    "CheckModelNames": {
      "type": "object",
      "description": "Models must have a name that matches the supplied regex.\n\nParameters:\n    model_name_pattern (str): Regexp the model name must match.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_names\n          include: ^models/intermediate\n          model_name_pattern: ^int_\n        - name: check_model_names\n          include: ^models/staging\n          model_name_pattern: ^stg_\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_names",
          "default": "check_model_names",
          "title": "Name",
          "type": "string"
        },
        "model_name_pattern": {
          "title": "Model Name Pattern",
          "type": "string"
        }
      },
      "required": [
        "model_name_pattern"
      ],
      "title": "CheckModelNames",
      "additionalProperties": false
    },
    "CheckModelNumberOfGrants": {
      "type": "object",
      "description": "Model can have the specified number of privileges.\n\nParameters:\n    max_number_of_privileges (int | None): Maximum number of privileges, inclusive.\n    min_number_of_privileges (int | None): Minimum number of privileges, inclusive.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_number_of_grants\n          include: ^models/marts\n          max_number_of_privileges: 1 # Optional\n          min_number_of_privileges: 0 # Optional\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_number_of_grants",
          "default": "check_model_number_of_grants",
          "title": "Name",
          "type": "string"
        },
        "max_number_of_privileges": {
          "default": 100,
          "title": "Max Number Of Privileges",
          "type": "integer"
        },
        "min_number_of_privileges": {
          "default": 0,
          "title": "Min Number Of Privileges",
          "type": "integer"
        }
      },
      "title": "CheckModelNumberOfGrants",
      "additionalProperties": false
    },
    "CheckModelPropertyFileLocation": {
      "type": "object",
      "description": "Model properties files must follow the guidance provided by dbt [here](https://docs.getdbt.com/best-practices/how-we-structure/1-guide-overview).\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_property_file_location\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_property_file_location",
          "default": "check_model_property_file_location",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelPropertyFileLocation",
      "additionalProperties": false
    },
    "CheckModelSchemaName": {
      "type": "object",
      "description": "Models must have a schema name that matches the supplied regex.\n\nNote that most setups will use schema names in development that are prefixed, for example:\n    * dbt_jdoe_stg_payments\n    * mary_stg_payments\n\nPlease account for this if you wish to run `dbt-bouncer` against locally generated manifests.\n\nParameters:\n    schema_name_pattern (str): Regexp the schema name must match.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_schema_name\n          include: ^models/intermediate\n          schema_name_pattern: .*intermediate # Accounting for schemas like `dbt_jdoe_intermediate`.\n        - name: check_model_schema_name\n          include: ^models/staging\n          schema_name_pattern: .*stg_.*\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_schema_name",
          "default": "check_model_schema_name",
          "title": "Name",
          "type": "string"
        },
        "schema_name_pattern": {
          "title": "Schema Name Pattern",
          "type": "string"
        }
      },
      "required": [
        "schema_name_pattern"
      ],
      "title": "CheckModelSchemaName",
      "additionalProperties": false
    },
    "CheckModelTestCoverage": {
      "type": "object",
      "description": "Set the minimum percentage of models that have at least one test.\n\nParameters:\n    min_model_test_coverage_pct (float): The minimum percentage of models that must have at least one test.\n\nReceives:\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n    tests (list[TestNode]): List of TestNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_test_coverage\n          min_model_test_coverage_pct: 90\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_test_coverage",
          "default": "check_model_test_coverage",
          "title": "Name",
          "type": "string"
        },
        "min_model_test_coverage_pct": {
          "default": 100,
          "title": "Min Model Test Coverage Pct",
          "type": "number"
        }
      },
      "title": "CheckModelTestCoverage",
      "additionalProperties": false
    },
    "CheckModelVersionAllowed": {
      "type": "object",
      "description": "Check that the version of the model matches the supplied regex pattern.\n\nParameters:\n    version_pattern (str): Regexp the version must match.\n\nReceives:\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_version_allowed\n          include: ^models/marts\n          version_pattern: >- # Versions must be numeric\n            [0-9]\\d*\n        - name: check_model_version_allowed\n          include: ^models/marts\n          version_pattern: ^(stable|latest)$ # Version can be \"stable\" or \"latest\", nothing else is permitted\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_version_allowed",
          "default": "check_model_version_allowed",
          "title": "Name",
          "type": "string"
        },
        "version_pattern": {
          "title": "Version Pattern",
          "type": "string"
        }
      },
      "required": [
        "version_pattern"
      ],
      "title": "CheckModelVersionAllowed",
      "additionalProperties": false
    },
    "CheckModelVersionPinnedInRef": {
      "type": "object",
      "description": "Check that the version of the model is always specified in downstream nodes.\n\nReceives:\n    manifest_obj (ManifestObject): The ManifestObject object parsed from `manifest.json`.\n    model (ModelNode): The ModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the model path. Model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    materialization (Literal[\"ephemeral\", \"incremental\", \"table\", \"view\"] | None): Limit check to models with the specified materialization.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_model_version_pinned_in_ref\n          include: ^models/marts\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_model_version_pinned_in_ref",
          "default": "check_model_version_pinned_in_ref",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckModelVersionPinnedInRef",
      "additionalProperties": false
    },
    "CheckProjectName": {
      "type": "object",
      "description": "Enforce that the name of the dbt project matches a supplied regex. Generally used to enforce that project names conform to something like  `company_<DOMAIN>`.\n\nParameters:\n    project_name_pattern (str): Regex pattern to match the project name.\n\nReceives:\n    manifest_obj (ManifestObject): The manifest object.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_project_name\n          project_name_pattern: ^awesome_company_\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_project_name",
          "default": "check_project_name",
          "title": "Name",
          "type": "string"
        },
        "package_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Package Name"
        },
        "project_name_pattern": {
          "title": "Project Name Pattern",
          "type": "string"
        }
      },
      "required": [
        "project_name_pattern"
      ],
      "title": "CheckProjectName",
      "additionalProperties": false
    },
    "CheckRunResultsMaxExecutionTime": {
      "type": "object",
      "description": "Each result can take a maximum duration (seconds).\n\nParameters:\n    max_execution_time_seconds (float): The maximum execution time (seconds) allowed for a node.\n\nReceives:\n    run_result (RunResultEntry): The RunResultEntry object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the resource path. Resource paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the resource path. Only resource paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    run_results_checks:\n        - name: check_run_results_max_execution_time\n          max_execution_time_seconds: 60\n    ```\n    ```yaml\n    run_results_checks:\n        - name: check_run_results_max_execution_time\n          include: ^models/staging # Not a good idea, here for demonstration purposes only\n          max_execution_time_seconds: 10\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_run_results_max_execution_time",
          "default": "check_run_results_max_execution_time",
          "title": "Name",
          "type": "string"
        },
        "max_execution_time_seconds": {
          "title": "Max Execution Time Seconds",
          "type": "number"
        }
      },
      "required": [
        "max_execution_time_seconds"
      ],
      "title": "CheckRunResultsMaxExecutionTime",
      "additionalProperties": false
    },
    "CheckRunResultsMaxGigabytesBilled": {
      "type": "object",
      "description": "Each result can have a maximum number of gigabytes billed.\n\n!!! note\n\n    Note that this check only works for the `dbt-bigquery` adapter.\n\nParameters:\n    max_gigabytes_billed (float): The maximum number of gigabytes billed.\n\nReceives:\n    run_result (RunResultEntry): The RunResultEntry object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the resource path. Resource paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the resource path. Only resource paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nRaises:\n    RuntimeError: If the `dbt-bigquery` adapter is not used.\n\nExample(s):\n    ```yaml\n    run_results_checks:\n        - name: check_run_results_max_gigabytes_billed\n          max_gigabytes_billed: 100\n          exclude: ^seeds\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_run_results_max_gigabytes_billed",
          "default": "check_run_results_max_gigabytes_billed",
          "title": "Name",
          "type": "string"
        },
        "max_gigabytes_billed": {
          "title": "Max Gigabytes Billed",
          "type": "number"
        }
      },
      "required": [
        "max_gigabytes_billed"
      ],
      "title": "CheckRunResultsMaxGigabytesBilled",
      "additionalProperties": false
    },
    "CheckSeedColumnNames": {
      "type": "object",
      "description": "Seed columns must have names that match the supplied regex.\n\nParameters:\n    seed_column_name_pattern (str): Regexp the column name must match.\n\nReceives:\n    seed (SeedNode): The SeedNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the seed path. Seed paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the seed path. Only seed paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_seed_column_names\n          seed_column_name_pattern: ^[a-z_]+$  # Lowercase with underscores only\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_seed_column_names",
          "default": "check_seed_column_names",
          "title": "Name",
          "type": "string"
        },
        "seed_column_name_pattern": {
          "title": "Seed Column Name Pattern",
          "type": "string"
        }
      },
      "required": [
        "seed_column_name_pattern"
      ],
      "title": "CheckSeedColumnNames",
      "additionalProperties": false
    },
    "CheckSeedColumnsAreAllDocumented": {
      "type": "object",
      "description": "All columns in a seed CSV file should be included in the seed's properties file, i.e. `.yml` file.\n\n!!! warning\n\n    This check is only supported for dbt 1.9.0 and above.\n\nReceives:\n    catalog_node (CatalogNodeEntry): The CatalogNodeEntry object to check.\n    manifest_obj (ManifestObject): The ManifestObject object parsed from `manifest.json`.\n    seeds (list[SeedNode]): List of SeedNode objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the seed path. Seed paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the seed path. Only seed paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    catalog_checks:\n        - name: check_seed_columns_are_all_documented\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_seed_columns_are_all_documented",
          "default": "check_seed_columns_are_all_documented",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSeedColumnsAreAllDocumented",
      "additionalProperties": false
    },
    "CheckSeedColumnsHaveTypes": {
      "type": "object",
      "description": "Columns defined for seeds must have a `data_type` declared.\n\nReceives:\n    seed (SeedNode): The SeedNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the seed path. Seed paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the seed path. Only seed paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_seed_columns_have_types\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_seed_columns_have_types",
          "default": "check_seed_columns_have_types",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSeedColumnsHaveTypes",
      "additionalProperties": false
    },
    "CheckSeedDescriptionPopulated": {
      "type": "object",
      "description": "Seeds must have a populated description.\n\nParameters:\n    min_description_length (int | None): Minimum length required for the description to be considered populated.\n\nReceives:\n    seed (SeedNode): The SeedNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the seed path. Seed paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the seed path. Only seed paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_seed_description_populated\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_seed_description_populated\n          min_description_length: 25 # Setting a stricter requirement for description length\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_seed_description_populated",
          "default": "check_seed_description_populated",
          "title": "Name",
          "type": "string"
        },
        "min_description_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Min Description Length"
        }
      },
      "title": "CheckSeedDescriptionPopulated",
      "additionalProperties": false
    },
    "CheckSeedHasUnitTests": {
      "type": "object",
      "description": "Seeds must have more than the specified number of unit tests.\n\nParameters:\n    min_number_of_unit_tests (int | None): The minimum number of unit tests that a seed must have.\n\nReceives:\n    manifest_obj (ManifestObject): The ManifestObject object parsed from `manifest.json`.\n    seed (SeedNode): The SeedNode object to check.\n    unit_tests (list[UnitTests]): List of UnitTests objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the seed path. Seed paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the seed path. Only seed paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\n!!! warning\n\n    This check is only supported for dbt 1.8.0 and above.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_seed_has_unit_tests\n          include: ^seeds/core\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_seed_has_unit_tests\n          min_number_of_unit_tests: 2\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_seed_has_unit_tests",
          "default": "check_seed_has_unit_tests",
          "title": "Name",
          "type": "string"
        },
        "min_number_of_unit_tests": {
          "default": 1,
          "title": "Min Number Of Unit Tests",
          "type": "integer"
        }
      },
      "title": "CheckSeedHasUnitTests",
      "additionalProperties": false
    },
    "CheckSeedNames": {
      "type": "object",
      "description": "Seed must have a name that matches the supplied regex.\n\nParameters:\n    seed_name_pattern (str): Regexp the seed name must match.\n\nReceives:\n    seed (SeedNode): The SeedNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the seed path. Seed paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the seed path. Only seed paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_seed_names\n          include: ^seeds\n          seed_name_pattern: ^raw_\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_seed_names",
          "default": "check_seed_names",
          "title": "Name",
          "type": "string"
        },
        "seed_name_pattern": {
          "title": "Seed Name Pattern",
          "type": "string"
        }
      },
      "required": [
        "seed_name_pattern"
      ],
      "title": "CheckSeedNames",
      "additionalProperties": false
    },
    "CheckSemanticModelBasedOnNonPublicModels": {
      "type": "object",
      "description": "Semantic models should be based on public models only.\n\nReceives:\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n    semantic_model (SemanticModelNode): The SemanticModelNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the semantic model path (i.e the .yml file where the semantic model is configured). Semantic model paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the semantic model path (i.e the .yml file where the semantic model is configured). Only semantic model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_semantic_model_based_on_non_public_models\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_semantic_model_based_on_non_public_models",
          "default": "check_semantic_model_based_on_non_public_models",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSemanticModelBasedOnNonPublicModels",
      "additionalProperties": false
    },
    "CheckSeverity": {
      "description": "Severity levels for dbt-bouncer check results.",
      "enum": [
        "error",
        "warn"
      ],
      "title": "CheckSeverity",
      "type": "string"
    },
    "CheckSnapshotDescriptionPopulated": {
      "type": "object",
      "description": "Snapshots must have a populated description.\n\nParameters:\n    min_description_length (int | None): Minimum length required for the description to be considered populated.\n\nReceives:\n    snapshot (SnapshotNode): The SnapshotNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the snapshot path. Snapshot paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the snapshot path. Only snapshot paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_snapshot_description_populated\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_snapshot_description_populated\n          min_description_length: 25 # Setting a stricter requirement for description length\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_snapshot_description_populated",
          "default": "check_snapshot_description_populated",
          "title": "Name",
          "type": "string"
        },
        "min_description_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Min Description Length"
        }
      },
      "title": "CheckSnapshotDescriptionPopulated",
      "additionalProperties": false
    },
    "CheckSnapshotHasTags": {
      "type": "object",
      "description": "Snapshots must have the specified tags.\n\nParameters:\n    criteria: (Literal[\"any\", \"all\", \"one\"] | None): Whether the snapshot must have any, all, or exactly one of the specified tags. Default: `all`.\n    tags (list[str]): List of tags to check for.\n\nReceives:\n    snapshot (SnapshotNode): The SnapshotNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the snapshot path. Snapshot paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the snapshot path. Only snapshot paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_snapshot_has_tags\n          tags:\n            - tag_1\n            - tag_2\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_snapshot_has_tags",
          "default": "check_snapshot_has_tags",
          "title": "Name",
          "type": "string"
        },
        "criteria": {
          "default": "all",
          "title": "Criteria",
          "type": "string"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "title": "Tags",
          "type": "array"
        }
      },
      "required": [
        "tags"
      ],
      "title": "CheckSnapshotHasTags",
      "additionalProperties": false
    },
    "CheckSnapshotNames": {
      "type": "object",
      "description": "Snapshots must have a name that matches the supplied regex.\n\nParameters:\n    snapshot_name_pattern (str): Regexp the snapshot name must match.\n\nReceives:\n    snapshot (SnapshotNode): The SnapshotNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the snapshot path. Snapshot paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the snapshot path. Only snapshot paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_snapshot_names\n          include: ^snapshots/erp\n          snapshot_name_pattern: ^erp\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_snapshot_names",
          "default": "check_snapshot_names",
          "title": "Name",
          "type": "string"
        },
        "snapshot_name_pattern": {
          "title": "Snapshot Name Pattern",
          "type": "string"
        }
      },
      "required": [
        "snapshot_name_pattern"
      ],
      "title": "CheckSnapshotNames",
      "additionalProperties": false
    },
    "CheckSourceColumnsAreAllDocumented": {
      "type": "object",
      "description": "All columns in a source should be included in the source's properties file, i.e. `.yml` file.\n\nReceives:\n    catalog_source (CatalogNodeEntry): The CatalogNodeEntry object to check.\n    sources (list[SourceNode]): List of SourceNode objects parsed from `catalog.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    catalog_checks:\n        - name: check_source_columns_are_all_documented\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_columns_are_all_documented",
          "default": "check_source_columns_are_all_documented",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSourceColumnsAreAllDocumented",
      "additionalProperties": false
    },
    "CheckSourceDescriptionPopulated": {
      "type": "object",
      "description": "Sources must have a populated description.\n\nParameters:\n    min_description_length (int | None): Minimum length required for the description to be considered populated.\n\nReceives:\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_description_populated\n    ```\n    ```yaml\n    manifest_checks:\n        - name: check_source_description_populated\n          min_description_length: 25 # Setting a stricter requirement for description length\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_description_populated",
          "default": "check_source_description_populated",
          "title": "Name",
          "type": "string"
        },
        "min_description_length": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Min Description Length"
        }
      },
      "title": "CheckSourceDescriptionPopulated",
      "additionalProperties": false
    },
    "CheckSourceFreshnessPopulated": {
      "type": "object",
      "description": "Sources must have a populated freshness.\n\nReceives:\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_freshness_populated\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_freshness_populated",
          "default": "check_source_freshness_populated",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSourceFreshnessPopulated",
      "additionalProperties": false
    },
    "CheckSourceHasMetaKeys": {
      "type": "object",
      "description": "The `meta` config for sources must have the specified keys.\n\nParameters:\n    keys (NestedDict): A list (that may contain sub-lists) of required keys.\n\nReceives:\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_has_meta_keys\n          keys:\n            - contact:\n                - email\n                - slack\n            - owner\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_has_meta_keys",
          "default": "check_source_has_meta_keys",
          "title": "Name",
          "type": "string"
        },
        "keys": {
          "$ref": "#/$defs/NestedDict"
        }
      },
      "required": [
        "keys"
      ],
      "title": "CheckSourceHasMetaKeys",
      "additionalProperties": false
    },
    "CheckSourceHasTags": {
      "type": "object",
      "description": "Sources must have the specified tags.\n\nParameters:\n    criteria: (Literal[\"any\", \"all\", \"one\"] | None): Whether the source must have any, all, or exactly one of the specified tags. Default: `all`.\n    tags (list[str]): List of tags to check for.\n\nReceives:\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_has_tags\n          tags:\n            - tag_1\n            - tag_2\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_has_tags",
          "default": "check_source_has_tags",
          "title": "Name",
          "type": "string"
        },
        "criteria": {
          "default": "all",
          "enum": [
            "any",
            "all",
            "one"
          ],
          "title": "Criteria",
          "type": "string"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "title": "Tags",
          "type": "array"
        }
      },
      "required": [
        "tags"
      ],
      "title": "CheckSourceHasTags",
      "additionalProperties": false
    },
    "CheckSourceLoaderPopulated": {
      "type": "object",
      "description": "Sources must have a populated loader.\n\nReceives:\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_loader_populated\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_loader_populated",
          "default": "check_source_loader_populated",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSourceLoaderPopulated",
      "additionalProperties": false
    },
    "CheckSourceNames": {
      "type": "object",
      "description": "Sources must have a name that matches the supplied regex.\n\nParameters:\n    source_name_pattern (str): Regexp the source name must match.\n\nReceives:\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_names\n          source_name_pattern: >\n            ^[a-z0-9_]*$\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_names",
          "default": "check_source_names",
          "title": "Name",
          "type": "string"
        },
        "source_name_pattern": {
          "title": "Source Name Pattern",
          "type": "string"
        }
      },
      "required": [
        "source_name_pattern"
      ],
      "title": "CheckSourceNames",
      "additionalProperties": false
    },
    "CheckSourceNotOrphaned": {
      "type": "object",
      "description": "Sources must be referenced in at least one model.\n\nReceives:\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_not_orphaned\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_not_orphaned",
          "default": "check_source_not_orphaned",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSourceNotOrphaned",
      "additionalProperties": false
    },
    "CheckSourcePropertyFileLocation": {
      "type": "object",
      "description": "Source properties files must follow the guidance provided by dbt [here](https://docs.getdbt.com/best-practices/how-we-structure/1-guide-overview).\n\nReceives:\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_property_file_location\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_property_file_location",
          "default": "check_source_property_file_location",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSourcePropertyFileLocation",
      "additionalProperties": false
    },
    "CheckSourceUsedByModelsInSameDirectory": {
      "type": "object",
      "description": "Sources can only be referenced by models that are located in the same directory where the source is defined.\n\nReceives:\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_used_by_models_in_same_directory\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_used_by_models_in_same_directory",
          "default": "check_source_used_by_models_in_same_directory",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSourceUsedByModelsInSameDirectory",
      "additionalProperties": false
    },
    "CheckSourceUsedByOnlyOneModel": {
      "type": "object",
      "description": "Each source can be referenced by a maximum of one model.\n\nReceives:\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n    source (SourceNode): The SourceNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Source paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the source path (i.e the .yml file where the source is configured). Only source paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_source_used_by_only_one_model\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_source_used_by_only_one_model",
          "default": "check_source_used_by_only_one_model",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "CheckSourceUsedByOnlyOneModel",
      "additionalProperties": false
    },
    "CheckTestHasMetaKeys": {
      "type": "object",
      "description": "The `meta` config for data tests must have the specified keys.\n\nParameters:\n    keys (NestedDict): A list (that may contain sub-lists) of required keys.\n\nReceives:\n    test (TestNode): The TestNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the test path. Test paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the test path. Only test paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_test_has_meta_keys\n          keys:\n            - owner\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_test_has_meta_keys",
          "default": "check_test_has_meta_keys",
          "title": "Name",
          "type": "string"
        },
        "keys": {
          "$ref": "#/$defs/NestedDict"
        }
      },
      "required": [
        "keys"
      ],
      "title": "CheckTestHasMetaKeys",
      "additionalProperties": false
    },
    "CheckTestHasTags": {
      "type": "object",
      "description": "Data tests must have the specified tags.\n\nParameters:\n    criteria (Literal[\"any\", \"all\", \"one\"] | None): Whether the test must have any, all, or exactly one of the specified tags. Default: `all`.\n    tags (list[str]): List of tags to check for.\n\nReceives:\n    test (TestNode): The TestNode object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the test path. Test paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the test path. Only test paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_test_has_tags\n          tags:\n            - critical\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_test_has_tags",
          "default": "check_test_has_tags",
          "title": "Name",
          "type": "string"
        },
        "criteria": {
          "default": "all",
          "title": "Criteria",
          "type": "string"
        },
        "tags": {
          "items": {
            "type": "string"
          },
          "title": "Tags",
          "type": "array"
        }
      },
      "required": [
        "tags"
      ],
      "title": "CheckTestHasTags",
      "additionalProperties": false
    },
    "CheckUnitTestCoverage": {
      "type": "object",
      "description": "Set the minimum percentage of models that have a unit test.\n\n!!! warning\n\n    This check is only supported for dbt 1.8.0 and above.\n\nParameters:\n    min_unit_test_coverage_pct (float): The minimum percentage of models that must have a unit test.\n\nReceives:\n    models (list[ModelNode]): List of ModelNode objects parsed from `manifest.json`.\n    unit_tests (list[UnitTests]): List of UnitTests objects parsed from `manifest.json`.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    include (str | None): Regex pattern to match the model path. Only model paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_unit_test_coverage\n          min_unit_test_coverage_pct: 90\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_unit_test_coverage",
          "default": "check_unit_test_coverage",
          "title": "Name",
          "type": "string"
        },
        "min_unit_test_coverage_pct": {
          "default": 100,
          "title": "Min Unit Test Coverage Pct",
          "type": "integer"
        }
      },
      "title": "CheckUnitTestCoverage",
      "additionalProperties": false
    },
    "CheckUnitTestExpectFormat": {
      "type": "object",
      "description": "Unit tests can only use the specified formats.\n\n!!! warning\n\n    This check is only supported for dbt 1.8.0 and above.\n\nParameters:\n    permitted_formats (list[Literal[\"csv\", \"dict\", \"sql\"]] | None): A list of formats that are allowed to be used for `expect` input in a unit test.\n\nReceives:\n    manifest_obj (ManifestObject): The ManifestObject object parsed from `manifest.json`.\n    unit_test (UnitTests): The UnitTests object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the unit test path (i.e the .yml file where the unit test is configured). Unit test paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the unit test path (i.e the .yml file where the unit test is configured). Only unit test paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_unit_test_expect_format\n          permitted_formats:\n            - csv\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_unit_test_expect_format",
          "default": "check_unit_test_expect_format",
          "title": "Name",
          "type": "string"
        },
        "permitted_formats": {
          "default": [
            "csv",
            "dict",
            "sql"
          ],
          "items": {
            "type": "string"
          },
          "title": "Permitted Formats",
          "type": "array"
        }
      },
      "title": "CheckUnitTestExpectFormat",
      "additionalProperties": false
    },
    "CheckUnitTestGivenFormats": {
      "type": "object",
      "description": "Unit tests can only use the specified formats.\n\n!!! warning\n\n    This check is only supported for dbt 1.8.0 and above.\n\nParameters:\n    permitted_formats (list[Literal[\"csv\", \"dict\", \"sql\"]] | None): A list of formats that are allowed to be used for `expect` input in a unit test.\n\nReceives:\n    manifest_obj (ManifestObject): The ManifestObject object parsed from `manifest.json`.\n    unit_test (UnitTests): The UnitTests object to check.\n\nOther Parameters:\n    description (str | None): Description of what the check does and why it is implemented.\n    exclude (str | None): Regex pattern to match the unit test path (i.e the .yml file where the unit test is configured). Unit test paths that match the pattern will not be checked.\n    include (str | None): Regex pattern to match the unit test path (i.e the .yml file where the unit test is configured). Only unit test paths that match the pattern will be checked.\n    severity (Literal[\"error\", \"warn\"] | None): Severity level of the check. Default: `error`.\n\nExample(s):\n    ```yaml\n    manifest_checks:\n        - name: check_unit_test_given_formats\n          permitted_formats:\n            - csv\n    ```",
      "properties": {
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of what the check does and why it is implemented.",
          "title": "Description"
        },
        "exclude": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to exclude.",
          "title": "Exclude"
        },
        "include": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Regexp to match which paths to include.",
          "title": "Include"
        },
        "materialization": {
          "anyOf": [
            {
              "$ref": "#/$defs/Materialization"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Limit check to models with the specified materialization."
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/$defs/CheckSeverity"
            },
            {
              "type": "null"
            }
          ],
          "default": "error",
          "description": "Severity of the check, one of 'error' or 'warn'."
        },
        "name": {
          "const": "check_unit_test_given_formats",
          "default": "check_unit_test_given_formats",
          "title": "Name",
          "type": "string"
        },
        "permitted_formats": {
          "default": [
            "csv",
            "dict",
            "sql"
          ],
          "items": {
            "type": "string"
          },
          "title": "Permitted Formats",
          "type": "array"
        }
      },
      "title": "CheckUnitTestGivenFormats",
      "additionalProperties": false
    },
    "Materialization": {
      "description": "dbt materialization strategies.",
      "enum": [
        "ephemeral",
        "incremental",
        "table",
        "view"
      ],
      "title": "Materialization",
      "type": "string"
    },
    "NestedDict": {
      "anyOf": [
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/NestedDict"
          }
        },
        {
          "items": {
            "$ref": "#/$defs/NestedDict"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ],
      "title": "NestedDict"
    }
  },
  "additionalProperties": false
}
