{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "DbtSchemaFiles",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "analyses": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Analyses"
      }
    },
    "exposures": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Exposures"
      }
    },
    "groups": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Groups"
      }
    },
    "macros": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Macros"
      }
    },
    "metrics": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Metrics"
      }
    },
    "models": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Models"
      }
    },
    "saved_queries": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_SavedQueries"
      }
    },
    "seeds": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Seeds"
      }
    },
    "semantic_models": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_SemanticModels"
      }
    },
    "snapshots": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Snapshots"
      }
    },
    "sources": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_Sources"
      }
    },
    "unit_tests": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "$ref": "#/definitions/_UnitTests"
      }
    },
    "version": {
      "anyOf": [
        {
          "$ref": "#/definitions/FloatOrString"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "definitions": {
    "AcceptedValuesTest": {
      "type": "object",
      "required": [
        "accepted_values"
      ],
      "properties": {
        "accepted_values": true
      }
    },
    "AggregationTypeParams": {
      "type": "object",
      "properties": {
        "percentile": {
          "type": [
            "number",
            "null"
          ],
          "format": "float"
        },
        "use_approximate_percentile": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "use_discrete_percentile": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    },
    "AnyValue": true,
    "BooleanOrJinjaString": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "boolean"
        }
      ]
    },
    "ColumnProperties": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "constraints": {
          "type": [
            "array",
            "null"
          ],
          "items": true
        },
        "data_tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        },
        "data_type": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "granularity": {
          "anyOf": [
            {
              "$ref": "#/definitions/_ColumnPropertiesGranularity"
            },
            {
              "type": "null"
            }
          ]
        },
        "meta": true,
        "name": {
          "type": "string"
        },
        "policy_tags": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "quote": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        }
      }
    },
    "CustomGranularity": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "column_name": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        }
      }
    },
    "DataTests": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "$ref": "#/definitions/UniqueTest"
        },
        {
          "$ref": "#/definitions/NotNullTest"
        },
        {
          "$ref": "#/definitions/RelationshipsTest"
        },
        {
          "$ref": "#/definitions/AcceptedValuesTest"
        },
        true
      ]
    },
    "Dimension": {
      "type": "object",
      "required": [
        "name",
        "type"
      ],
      "properties": {
        "config": true,
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "expr": {
          "anyOf": [
            {
              "$ref": "#/definitions/_DimensionExpr"
            },
            {
              "type": "null"
            }
          ]
        },
        "is_partition": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "label": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/_DimensionType_"
        },
        "type_params": {
          "anyOf": [
            {
              "$ref": "#/definitions/DimensionTypeParams"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "DimensionTypeParams": {
      "type": "object",
      "required": [
        "time_granularity"
      ],
      "properties": {
        "time_granularity": {
          "type": "string"
        },
        "validity_params": {
          "anyOf": [
            {
              "$ref": "#/definitions/ValidityParams"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "DocsConfig": {
      "type": "object",
      "properties": {
        "node_color": {
          "type": [
            "string",
            "null"
          ]
        },
        "show": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    },
    "Entity": {
      "type": "object",
      "required": [
        "name",
        "type"
      ],
      "properties": {
        "config": true,
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "entity": {
          "type": [
            "string",
            "null"
          ]
        },
        "expr": {
          "anyOf": [
            {
              "$ref": "#/definitions/_EntityExpr"
            },
            {
              "type": "null"
            }
          ]
        },
        "label": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "type": {
          "$ref": "#/definitions/_EntityType_"
        }
      }
    },
    "Export": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/_ExportConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "type": "string"
        }
      }
    },
    "ExposurePropertiesConfigs": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "meta": true
      }
    },
    "FloatOrString": {
      "anyOf": [
        {
          "type": "number",
          "format": "float"
        },
        {
          "type": "string"
        }
      ]
    },
    "FreshnessDefinition": {
      "anyOf": [
        true
      ]
    },
    "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
        }
      ]
    },
    "Measure": {
      "type": "object",
      "required": [
        "agg",
        "name"
      ],
      "properties": {
        "agg": {
          "$ref": "#/definitions/_MeasureAgg"
        },
        "agg_params": {
          "anyOf": [
            {
              "$ref": "#/definitions/AggregationTypeParams"
            },
            {
              "type": "null"
            }
          ]
        },
        "agg_time_dimension": {
          "type": [
            "string",
            "null"
          ]
        },
        "config": true,
        "create_metric": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "create_metric_display_name": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "expr": {
          "anyOf": [
            {
              "$ref": "#/definitions/_MeasureExpr"
            },
            {
              "type": "null"
            }
          ]
        },
        "label": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "non_additive_dimension": {
          "anyOf": [
            {
              "$ref": "#/definitions/NonAdditiveDimension"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "ModelPropertiesConfigs": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "auto_refresh": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "backup": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "batch_size": {
          "type": [
            "string",
            "null"
          ]
        },
        "begin": {
          "type": [
            "string",
            "null"
          ]
        },
        "contract": {
          "anyOf": [
            {
              "$ref": "#/definitions/_ModelPropertiesConfigsContract"
            },
            {
              "type": "null"
            }
          ]
        },
        "docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "event_time": {
          "type": [
            "string",
            "null"
          ]
        },
        "file_format": {
          "type": [
            "string",
            "null"
          ]
        },
        "grant_access_to": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/_GrantAccessTo"
          }
        },
        "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"
          ]
        },
        "lookback": {
          "type": [
            "number",
            "null"
          ],
          "format": "float"
        },
        "materialized": {
          "type": [
            "string",
            "null"
          ]
        },
        "meta": true,
        "on_configuration_change": {
          "type": [
            "string",
            "null"
          ]
        },
        "on_schema_change": {
          "type": [
            "string",
            "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,
        "unique_key": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "NonAdditiveDimension": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "window_choice": {
          "anyOf": [
            {
              "$ref": "#/definitions/_NonAdditiveDimensionWindowChoice"
            },
            {
              "type": "null"
            }
          ]
        },
        "window_groupings": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        }
      }
    },
    "NotNullTest": {
      "type": "object",
      "required": [
        "not_null"
      ],
      "properties": {
        "not_null": true
      }
    },
    "PersistDocsConfig": {
      "type": "object",
      "properties": {
        "columns": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "relation": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "RelationshipsTest": {
      "type": "object",
      "required": [
        "relationships"
      ],
      "properties": {
        "relationships": true
      }
    },
    "StringOrArrayOfStrings": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "UniqueTest": {
      "type": "object",
      "required": [
        "unique"
      ],
      "properties": {
        "unique": true
      }
    },
    "ValidityParams": {
      "type": "object",
      "properties": {
        "is_end": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "is_start": {
          "type": [
            "boolean",
            "null"
          ]
        }
      }
    },
    "_Analyses": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "columns": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/_Columns"
          }
        },
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/__AnalysesConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        }
      }
    },
    "_Arguments": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "_ColumnPropertiesGranularity": {
      "type": "string",
      "enum": [
        "nanosecond",
        "microsecond",
        "millisecond",
        "second",
        "minute",
        "hour",
        "day",
        "week",
        "month",
        "quarter",
        "year"
      ]
    },
    "_Columns": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "data_type": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        }
      }
    },
    "_DimensionExpr": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "boolean"
        }
      ]
    },
    "_DimensionType_": {
      "type": "string",
      "enum": [
        "CATEGORICAL",
        "TIME",
        "categorical",
        "time"
      ]
    },
    "_EntityExpr": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "boolean"
        }
      ]
    },
    "_EntityType_": {
      "type": "string",
      "enum": [
        "PRIMARY",
        "UNIQUE",
        "FOREIGN",
        "NATURAL",
        "primary",
        "unique",
        "foreign",
        "natural"
      ]
    },
    "_ExportConfig": {
      "type": "object",
      "properties": {
        "alias": {
          "type": [
            "string",
            "null"
          ]
        },
        "export_as": {
          "anyOf": [
            {
              "$ref": "#/definitions/__ExportConfigExportAs"
            },
            {
              "type": "null"
            }
          ]
        },
        "schema": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "_Exposures": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name",
        "owner",
        "type"
      ],
      "properties": {
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/ExposurePropertiesConfigs"
            },
            {
              "type": "null"
            }
          ]
        },
        "depends_on": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "string"
          }
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "label": {
          "type": [
            "string",
            "null"
          ]
        },
        "maturity": {
          "type": [
            "string",
            "null"
          ]
        },
        "meta": true,
        "name": {
          "type": "string"
        },
        "owner": {
          "$ref": "#/definitions/__ExposuresOwner"
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "type": {
          "type": "string"
        },
        "url": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "_Given": {
      "type": "object",
      "properties": {
        "fixture": {
          "type": [
            "string",
            "null"
          ]
        },
        "format": {
          "type": [
            "string",
            "null"
          ]
        },
        "input": {
          "type": [
            "string",
            "null"
          ]
        },
        "rows": true
      }
    },
    "_GrantAccessTo": {
      "type": "object",
      "properties": {
        "dataset": {
          "type": [
            "string",
            "null"
          ]
        },
        "project": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "_Groups": {
      "type": "object",
      "required": [
        "name",
        "owner"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "owner": {
          "$ref": "#/definitions/__GroupsOwner"
        }
      }
    },
    "_Macros": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name"
      ],
      "properties": {
        "arguments": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/_Arguments"
          }
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "type": "string"
        }
      }
    },
    "_MeasureAgg": {
      "type": "string",
      "enum": [
        "SUM",
        "MIN",
        "MAX",
        "AVERAGE",
        "COUNT_DISTINCT",
        "SUM_BOOLEAN",
        "COUNT",
        "PERCENTILE",
        "MEDIAN",
        "sum",
        "min",
        "max",
        "average",
        "count_distinct",
        "sum_boolean",
        "count",
        "percentile",
        "median"
      ]
    },
    "_MeasureExpr": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer",
          "format": "int32"
        },
        {
          "type": "boolean"
        }
      ]
    },
    "_Metrics": {
      "type": "object",
      "properties": {
        "__additional_properties__": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/AnyValue"
          }
        }
      }
    },
    "_ModelPropertiesConfigsContract": {
      "type": "object",
      "properties": {
        "alias_types": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "enforced": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "_Models": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name"
      ],
      "properties": {
        "access": {
          "type": [
            "string",
            "null"
          ]
        },
        "columns": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/ColumnProperties"
          }
        },
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/ModelPropertiesConfigs"
            },
            {
              "type": "null"
            }
          ]
        },
        "constraints": {
          "type": [
            "array",
            "null"
          ],
          "items": true
        },
        "data_tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        },
        "deprecation_date": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "identifier": {
          "type": [
            "string",
            "null"
          ]
        },
        "latest_version": {
          "type": [
            "number",
            "null"
          ],
          "format": "float"
        },
        "meta": true,
        "name": {
          "type": "string"
        },
        "tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        },
        "time_spine": {
          "anyOf": [
            {
              "$ref": "#/definitions/__ModelsTimeSpine"
            },
            {
              "type": "null"
            }
          ]
        },
        "versions": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/_Versions"
          }
        }
      }
    },
    "_NonAdditiveDimensionWindowChoice": {
      "type": "string",
      "enum": [
        "MIN",
        "MAX",
        "min",
        "max"
      ]
    },
    "_SavedQueries": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name",
        "query_params"
      ],
      "properties": {
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/__SavedQueriesConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "exports": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/Export"
          }
        },
        "label": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "query_params": {
          "type": "object",
          "properties": {
            "dimensions": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string"
              }
            },
            "group_by": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string"
              }
            },
            "metrics": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string"
              }
            },
            "where": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "_Seeds": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name"
      ],
      "properties": {
        "columns": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/ColumnProperties"
          }
        },
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/__SeedsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "data_tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        }
      }
    },
    "_SemanticModels": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "model",
        "name"
      ],
      "properties": {
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/ModelPropertiesConfigs"
            },
            {
              "type": "null"
            }
          ]
        },
        "defaults": {
          "anyOf": [
            {
              "$ref": "#/definitions/__SemanticModelsDefaults"
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "dimensions": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/Dimension"
          }
        },
        "entities": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/Entity"
          }
        },
        "label": {
          "type": [
            "string",
            "null"
          ]
        },
        "measures": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/Measure"
          }
        },
        "model": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "primary_entity": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "_Snapshots": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name"
      ],
      "properties": {
        "columns": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/ColumnProperties"
          }
        },
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/__SnapshotsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "data_tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "docs": {
          "anyOf": [
            {
              "$ref": "#/definitions/DocsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "meta": true,
        "name": {
          "type": "string"
        },
        "relation": {
          "type": [
            "string",
            "null"
          ]
        },
        "tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        }
      }
    },
    "_Sources": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name"
      ],
      "properties": {
        "config": true,
        "database": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "freshness": {
          "anyOf": [
            {
              "$ref": "#/definitions/FreshnessDefinition"
            },
            {
              "type": "null"
            }
          ]
        },
        "loaded_at_field": {
          "type": [
            "string",
            "null"
          ]
        },
        "loaded_at_query": {
          "type": [
            "string",
            "null"
          ]
        },
        "loader": {
          "type": [
            "string",
            "null"
          ]
        },
        "meta": true,
        "name": {
          "type": "string"
        },
        "overrides": {
          "type": [
            "string",
            "null"
          ]
        },
        "quoting": {
          "anyOf": [
            {
              "$ref": "#/definitions/__SourcesQuoting"
            },
            {
              "type": "null"
            }
          ]
        },
        "schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "tables": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/_Tables"
          }
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "_Tables": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "name"
      ],
      "properties": {
        "columns": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/ColumnProperties"
          }
        },
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/__TablesConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "data_tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "external": true,
        "freshness": {
          "anyOf": [
            {
              "$ref": "#/definitions/FreshnessDefinition"
            },
            {
              "type": "null"
            }
          ]
        },
        "identifier": {
          "type": [
            "string",
            "null"
          ]
        },
        "loaded_at_field": {
          "type": [
            "string",
            "null"
          ]
        },
        "loaded_at_query": {
          "type": [
            "string",
            "null"
          ]
        },
        "loader": {
          "type": [
            "string",
            "null"
          ]
        },
        "meta": true,
        "name": {
          "type": "string"
        },
        "quoting": {
          "anyOf": [
            {
              "$ref": "#/definitions/__TablesQuoting"
            },
            {
              "type": "null"
            }
          ]
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "tests": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/DataTests"
          }
        }
      }
    },
    "_UnitTests": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "expect",
        "model",
        "name"
      ],
      "properties": {
        "config": {
          "anyOf": [
            {
              "$ref": "#/definitions/__UnitTestsConfig"
            },
            {
              "type": "null"
            }
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "expect": {
          "$ref": "#/definitions/__UnitTestsExpect"
        },
        "given": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/_Given"
          }
        },
        "model": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "overrides": {
          "anyOf": [
            {
              "$ref": "#/definitions/__UnitTestsOverrides"
            },
            {
              "type": "null"
            }
          ]
        },
        "versions": true
      }
    },
    "_Versions": {
      "type": "object",
      "additionalProperties": true
    },
    "__AnalysesConfig": {
      "type": "object",
      "properties": {
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "__ExportConfigExportAs": {
      "type": "string",
      "enum": [
        "table",
        "view",
        "cache"
      ]
    },
    "__ExposuresOwner": {
      "type": "object",
      "properties": {
        "email": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "__GroupsOwner": {
      "type": "object",
      "properties": {
        "email": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "__ModelsTimeSpine": {
      "type": "object",
      "required": [
        "standard_granularity_column"
      ],
      "properties": {
        "custom_granularities": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "$ref": "#/definitions/CustomGranularity"
          }
        },
        "standard_granularity_column": {
          "type": "string"
        }
      }
    },
    "__SavedQueriesConfig": {
      "type": "object",
      "properties": {
        "cache": {
          "anyOf": [
            {
              "$ref": "#/definitions/___SavedQueriesConfigCache"
            },
            {
              "type": "null"
            }
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "meta": true
      },
      "additionalProperties": false
    },
    "__SeedsConfig": {
      "type": "object",
      "properties": {
        "column_types": true,
        "copy_grants": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "database": {
          "type": [
            "string",
            "null"
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "grants": true,
        "quote_columns": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "schema": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "__SemanticModelsDefaults": {
      "type": "object",
      "properties": {
        "agg_time_dimension": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "__SnapshotsConfig": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "alias": {
          "type": [
            "string",
            "null"
          ]
        },
        "check_cols": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "dbt_valid_to_current": {
          "type": [
            "string",
            "null"
          ]
        },
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "grants": true,
        "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": {
          "anyOf": [
            {
              "$ref": "#/definitions/___SnapshotsConfigSnapshotMetaColumnNames"
            },
            {
              "type": "null"
            }
          ]
        },
        "strategy": {
          "type": [
            "string",
            "null"
          ]
        },
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "target_database": {
          "type": [
            "string",
            "null"
          ]
        },
        "target_schema": {
          "type": [
            "string",
            "null"
          ]
        },
        "unique_key": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        },
        "updated_at": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "__SourcesQuoting": {
      "type": "object",
      "properties": {
        "database": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "identifier": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "schema": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "__TablesConfig": {
      "type": "object",
      "properties": {
        "event_time": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": true
    },
    "__TablesQuoting": {
      "type": "object",
      "properties": {
        "database": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "identifier": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "schema": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "__UnitTestsConfig": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        },
        "meta": true,
        "tags": {
          "anyOf": [
            {
              "$ref": "#/definitions/StringOrArrayOfStrings"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "__UnitTestsExpect": {
      "type": "object",
      "properties": {
        "fixture": {
          "type": [
            "string",
            "null"
          ]
        },
        "format": {
          "type": [
            "string",
            "null"
          ]
        },
        "rows": true
      }
    },
    "__UnitTestsOverrides": {
      "type": "object",
      "properties": {
        "env_vars": true,
        "macros": true,
        "vars": true
      }
    },
    "___SavedQueriesConfigCache": {
      "type": "object",
      "properties": {
        "enabled": {
          "anyOf": [
            {
              "$ref": "#/definitions/BooleanOrJinjaString"
            },
            {
              "type": "null"
            }
          ]
        }
      }
    },
    "___SnapshotsConfigSnapshotMetaColumnNames": {
      "type": "object",
      "properties": {
        "dbt_scd_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "dbt_updated_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "dbt_valid_from": {
          "type": [
            "string",
            "null"
          ]
        },
        "dbt_valid_to": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    }
  }
}
