{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "DbtProject",
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "analysis-paths": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "asset-paths": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "clean-targets": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "config-version": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int32"
    },
    "data_tests": {
      "anyOf": [
        {
          "$ref": "#/definitions/DataTestConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "dbt-cloud": true,
    "dispatch": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Dispatch"
      }
    },
    "docs-paths": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "flags": true,
    "log-path": {
      "type": [
        "string",
        "null"
      ]
    },
    "macro-paths": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "metrics": {
      "anyOf": [
        {
          "$ref": "#/definitions/MetricConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "model-paths": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "models": {
      "anyOf": [
        {
          "$ref": "#/definitions/ModelConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "name": {
      "type": "string"
    },
    "on-run-end": {
      "anyOf": [
        {
          "$ref": "#/definitions/StringOrVecString"
        },
        {
          "type": "null"
        }
      ]
    },
    "on-run-start": {
      "anyOf": [
        {
          "$ref": "#/definitions/StringOrVecString"
        },
        {
          "type": "null"
        }
      ]
    },
    "packages-install-path": {
      "type": [
        "string",
        "null"
      ]
    },
    "profile": {
      "type": [
        "string",
        "null"
      ]
    },
    "query-comment": {
      "anyOf": [
        {
          "$ref": "#/definitions/QueryComment"
        },
        {
          "type": "null"
        }
      ]
    },
    "quoting": true,
    "require-dbt-version": {
      "anyOf": [
        {
          "$ref": "#/definitions/StringOrArrayOfStrings"
        },
        {
          "type": "null"
        }
      ]
    },
    "restrict-access": {
      "type": [
        "boolean",
        "null"
      ]
    },
    "saved-queries": {
      "anyOf": [
        {
          "$ref": "#/definitions/SavedQueriesConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "seed-paths": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "seeds": {
      "anyOf": [
        {
          "$ref": "#/definitions/SeedConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "semantic-models": {
      "anyOf": [
        {
          "$ref": "#/definitions/ModelConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "snapshot-paths": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "snapshots": {
      "anyOf": [
        {
          "$ref": "#/definitions/SnapshotConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "sources": {
      "anyOf": [
        {
          "$ref": "#/definitions/SourceConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "target-path": {
      "type": [
        "string",
        "null"
      ]
    },
    "test-paths": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      }
    },
    "tests": {
      "anyOf": [
        {
          "$ref": "#/definitions/DataTestConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "unit_tests": {
      "anyOf": [
        {
          "$ref": "#/definitions/UnitTestConfigs"
        },
        {
          "type": "null"
        }
      ]
    },
    "vars": {
      "anyOf": [
        {
          "$ref": "#/definitions/AnyValue"
        },
        {
          "type": "null"
        }
      ]
    },
    "version": {
      "anyOf": [
        {
          "$ref": "#/definitions/FloatOrString"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "definitions": {
    "Access": {
      "type": "string",
      "enum": [
        "private",
        "protected",
        "public"
      ]
    },
    "AnyValue": true,
    "BooleanOrJinjaString": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "boolean"
        }
      ]
    },
    "Contract": {
      "type": "object",
      "required": [
        "enforced"
      ],
      "properties": {
        "alias_types": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "enforced": {
          "$ref": "#/definitions/BooleanOrJinjaString"
        }
      }
    },
    "DataTestConfigs": {
      "type": "object",
      "properties": {
        "+alias": {
          "type": [
            "string",
            "null"
          ]
        },
        "+database": {
          "type": [
            "string",
            "null"
          ]
        },
        "+enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+error_if": {
          "type": [
            "string",
            "null"
          ]
        },
        "+fail_calc": {
          "type": [
            "string",
            "null"
          ]
        },
        "+group": {
          "type": [
            "string",
            "null"
          ]
        },
        "+limit": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "+meta": true,
        "+schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "+severity": {
          "anyOf": [
            {
              "$ref": "#/definitions/Severity"
            },
            {
              "type": "null"
            }
          ]
        },
        "+store_failures": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "+warn_if": {
          "type": [
            "string",
            "null"
          ]
        },
        "__additional_properties__": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/AnyValue"
          }
        },
        "alias": {
          "type": [
            "string",
            "null"
          ]
        },
        "database": {
          "type": [
            "string",
            "null"
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "error_if": {
          "type": [
            "string",
            "null"
          ]
        },
        "fail_calc": {
          "type": [
            "string",
            "null"
          ]
        },
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "limit": {
          "type": [
            "integer",
            "null"
          ],
          "format": "int32"
        },
        "meta": true,
        "schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "severity": {
          "anyOf": [
            {
              "$ref": "#/definitions/Severity"
            },
            {
              "type": "null"
            }
          ]
        },
        "store_failures": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "warn_if": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "DocsConfig": {
      "type": "object",
      "properties": {
        "node_color": {
          "type": [
            "string",
            "null"
          ]
        },
        "show": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    },
    "FloatOrString": {
      "anyOf": [
        {
          "type": "number",
          "format": "float"
        },
        {
          "type": "string"
        }
      ]
    },
    "HookConfig": {
      "type": "object",
      "properties": {
        "sql": {
          "type": [
            "string",
            "null"
          ]
        },
        "transaction": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    },
    "Hooks": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "$ref": "#/definitions/HookConfig"
        },
        {
          "type": "array",
          "items": true
        }
      ]
    },
    "MetricConfigs": {
      "type": "object",
      "properties": {
        "+meta": true,
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": true
    },
    "ModelConfigs": {
      "type": "object",
      "properties": {
        "+access": {
          "anyOf": [
            {
              "$ref": "#/definitions/Access"
            },
            {
              "type": "null"
            }
          ]
        },
        "+alias": {
          "type": [
            "string",
            "null"
          ]
        },
        "+auto_refresh": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+backup": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+bind": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+contract": {
          "anyOf": [
            {
              "$ref": "#/definitions/Contract"
            },
            {
              "type": "null"
            }
          ]
        },
        "+copy_grants": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+database": {
          "type": [
            "string",
            "null"
          ]
        },
        "+docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "+enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+file_format": {
          "type": [
            "string",
            "null"
          ]
        },
        "+full_refresh": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+grant_access_to": {
          "type": [
            "array",
            "null"
          ],
          "items": true
        },
        "+grants": true,
        "+group": {
          "type": [
            "string",
            "null"
          ]
        },
        "+hours_to_expiration": {
          "type": [
            "number",
            "null"
          ],
          "format": "float"
        },
        "+include_full_name_in_path": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+incremental_predicates": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "+incremental_strategy": {
          "type": [
            "string",
            "null"
          ]
        },
        "+kms_key_name": {
          "type": [
            "string",
            "null"
          ]
        },
        "+labels": true,
        "+location": {
          "type": [
            "string",
            "null"
          ]
        },
        "+location_root": {
          "type": [
            "string",
            "null"
          ]
        },
        "+materialized": {
          "type": [
            "string",
            "null"
          ]
        },
        "+meta": true,
        "+on_configuration_change": {
          "anyOf": [
            {
              "$ref": "#/definitions/OnConfigurationChange"
            },
            {
              "type": "null"
            }
          ]
        },
        "+on_schema_change": {
          "anyOf": [
            {
              "$ref": "#/definitions/OnSchemaChange"
            },
            {
              "type": "null"
            }
          ]
        },
        "+persist_docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/PersistDocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "+post-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "+pre-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "+predicates": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "+query_tag": {
          "type": [
            "string",
            "null"
          ]
        },
        "+schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "+secure": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+snowflake_warehouse": {
          "type": [
            "string",
            "null"
          ]
        },
        "+sql_header": {
          "type": [
            "string",
            "null"
          ]
        },
        "+table_format": {
          "type": [
            "string",
            "null"
          ]
        },
        "+tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "+target_lag": {
          "type": [
            "string",
            "null"
          ]
        },
        "+tblproperties": true,
        "+transient": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "__additional_properties__": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/AnyValue"
          }
        },
        "access": {
          "anyOf": [
            {
              "$ref": "#/definitions/Access"
            },
            {
              "type": "null"
            }
          ]
        },
        "alias": {
          "type": [
            "string",
            "null"
          ]
        },
        "auto_refresh": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "backup": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "bind": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "contract": {
          "anyOf": [
            {
              "$ref": "#/definitions/Contract"
            },
            {
              "type": "null"
            }
          ]
        },
        "copy_grants": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "database": {
          "type": [
            "string",
            "null"
          ]
        },
        "docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "file_format": {
          "type": [
            "string",
            "null"
          ]
        },
        "full_refresh": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "grant_access_to": {
          "type": [
            "array",
            "null"
          ],
          "items": true
        },
        "grants": true,
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "hours_to_expiration": {
          "type": [
            "number",
            "null"
          ],
          "format": "float"
        },
        "include_full_name_in_path": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "incremental_strategy": {
          "type": [
            "string",
            "null"
          ]
        },
        "kms_key_name": {
          "type": [
            "string",
            "null"
          ]
        },
        "labels": true,
        "location": {
          "type": [
            "string",
            "null"
          ]
        },
        "location_root": {
          "type": [
            "string",
            "null"
          ]
        },
        "materialized": {
          "type": [
            "string",
            "null"
          ]
        },
        "meta": true,
        "on_configuration_change": {
          "anyOf": [
            {
              "$ref": "#/definitions/OnConfigurationChange"
            },
            {
              "type": "null"
            }
          ]
        },
        "on_schema_change": {
          "anyOf": [
            {
              "$ref": "#/definitions/OnSchemaChange"
            },
            {
              "type": "null"
            }
          ]
        },
        "persist_docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/PersistDocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "post-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "pre-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "query_tag": {
          "type": [
            "string",
            "null"
          ]
        },
        "schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "secure": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "snowflake_warehouse": {
          "type": [
            "string",
            "null"
          ]
        },
        "sql_header": {
          "type": [
            "string",
            "null"
          ]
        },
        "table_format": {
          "type": [
            "string",
            "null"
          ]
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "target_lag": {
          "type": [
            "string",
            "null"
          ]
        },
        "tblproperties": true,
        "transient": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "OnConfigurationChange": {
      "type": "string",
      "enum": [
        "apply",
        "continue",
        "fail"
      ]
    },
    "OnSchemaChange": {
      "type": "string",
      "enum": [
        "append_new_columns",
        "fail",
        "ignore",
        "sync_all_columns"
      ]
    },
    "PersistDocsConfig": {
      "type": "object",
      "properties": {
        "columns": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "relation": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "QueryComment": {
      "anyOf": [
        {
          "type": "string"
        },
        true
      ]
    },
    "SavedQueriesConfigs": {
      "type": "object",
      "properties": {
        "+schema": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "SeedConfigs": {
      "type": "object",
      "properties": {
        "+column_types": true,
        "+copy_grants": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+database": {
          "type": [
            "string",
            "null"
          ]
        },
        "+docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "+enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+full_refresh": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+grants": true,
        "+group": {
          "type": [
            "string",
            "null"
          ]
        },
        "+meta": true,
        "+persist_docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/PersistDocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "+post-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "+pre-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "+quote_columns": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "+snowflake_warehouse": {
          "type": [
            "string",
            "null"
          ]
        },
        "+tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "+transient": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "column_types": true,
        "copy_grants": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "database": {
          "type": [
            "string",
            "null"
          ]
        },
        "delimiter": {
          "type": [
            "string",
            "null"
          ]
        },
        "docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "full_refresh": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "grants": true,
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "meta": true,
        "persist_docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/PersistDocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "post-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "pre-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "quote_columns": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "snowflake_warehouse": {
          "type": [
            "string",
            "null"
          ]
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "transient": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": true
    },
    "Severity": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "string"
        }
      ]
    },
    "SnapshotConfigs": {
      "type": "object",
      "properties": {
        "+alias": {
          "type": [
            "string",
            "null"
          ]
        },
        "+check_cols": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "+docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "+enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+grants": true,
        "+group": {
          "type": [
            "string",
            "null"
          ]
        },
        "+invalidate_hard_deletes": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+meta": true,
        "+persist_docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/PersistDocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "+post-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "+pre-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "+quote_columns": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+snapshot_meta_column_names": true,
        "+strategy": {
          "type": [
            "string",
            "null"
          ]
        },
        "+tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "+target_database": {
          "type": [
            "string",
            "null"
          ]
        },
        "+target_schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "+transient": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+unique_key": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "+updated_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "__additional_properties__": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/AnyValue"
          }
        },
        "alias": {
          "type": [
            "string",
            "null"
          ]
        },
        "check_cols": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "grants": true,
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "invalidate_hard_deletes": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "meta": true,
        "persist_docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/PersistDocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "post-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "pre-hook": {
          "anyOf": [
            {
              "$ref": "#/definitions/Hooks"
            },
            {
              "type": "null"
            }
          ]
        },
        "quote_columns": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "snapshot_meta_column_names": true,
        "strategy": {
          "type": [
            "string",
            "null"
          ]
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "target_database": {
          "type": [
            "string",
            "null"
          ]
        },
        "target_schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "transient": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "unique_key": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "SourceConfigs": {
      "type": "object",
      "properties": {
        "+enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+meta": true,
        "+tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "meta": true,
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": true
    },
    "StringOrArrayOfStrings": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "StringOrVecString": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "UnitTestConfigs": {
      "type": "object",
      "properties": {
        "+enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "+meta": true,
        "+tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "meta": true,
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": true
    },
    "_Dispatch": {
      "type": "object",
      "required": [
        "macro_namespace",
        "search_order"
      ],
      "properties": {
        "macro_namespace": {
          "type": "string"
        },
        "search_order": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}
