diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 0000000..63ad756
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+* @yu-iskw
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
new file mode 100644
index 0000000..40dae3d
--- /dev/null
+++ b/.github/workflows/publish.yml
@@ -0,0 +1,41 @@
+name: Publish (pypi)
+
+on:
+ release:
+ types:
+ - created
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Dump GitHub context
+ env:
+ GITHUB_CONTEXT: ${{ toJson(github) }}
+ run: echo "$GITHUB_CONTEXT"
+ - uses: actions/checkout@v2
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: "3.9"
+ - uses: actions/cache@v2
+ id: cache
+ with:
+ path: ${{ env.pythonLocation }}
+ key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}-publish
+ - name: Install Flit
+ if: steps.cache.outputs.cache-hit != 'true'
+ run: bash dev/setup.sh
+ - name: Publish
+ env:
+ # SEE https://packaging.python.org/en/latest/specifications/pypirc/?highlight=token#using-a-pypi-token
+ FLIT_USERNAME: __token__
+ FLIT_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
+ run: bash dev/publish.sh "pypi"
+ - name: Dump GitHub context
+ env:
+ GITHUB_CONTEXT: ${{ toJson(github) }}
+ run: echo "$GITHUB_CONTEXT"
diff --git a/.github/workflows/test-publish.yml b/.github/workflows/test-publish.yml
new file mode 100644
index 0000000..14152e8
--- /dev/null
+++ b/.github/workflows/test-publish.yml
@@ -0,0 +1,39 @@
+name: Test publish (testpypi)
+
+on:
+ workflow_dispatch:
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Dump GitHub context
+ env:
+ GITHUB_CONTEXT: ${{ toJson(github) }}
+ run: echo "$GITHUB_CONTEXT"
+ - uses: actions/checkout@v2
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: "3.9"
+ - uses: actions/cache@v2
+ id: cache
+ with:
+ path: ${{ env.pythonLocation }}
+ key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}-publish
+ - name: Install Flit
+ if: steps.cache.outputs.cache-hit != 'true'
+ run: bash dev/setup.sh
+ - name: Test publish
+ env:
+ # SEE https://packaging.python.org/en/latest/specifications/pypirc/?highlight=token#using-a-pypi-token
+ FLIT_USERNAME: __token__
+ FLIT_PASSWORD: ${{ secrets.TESTPYPI_API_TOKEN }}
+ run: bash dev/publish.sh "testpypi"
+ - name: Dump GitHub context
+ env:
+ GITHUB_CONTEXT: ${{ toJson(github) }}
+ run: echo "$GITHUB_CONTEXT"
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..a3c6764
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,43 @@
+name: Test python
+
+on:
+ pull_request:
+ paths:
+ - 'pyproject.toml'
+ - 'dbt_artifacts_parser/**/*.py'
+ - 'tests/**/*.py'
+ push:
+ branches:
+ - master
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: ["3.7", "3.8", "3.9", "3.10"]
+ fail-fast: false
+
+ defaults:
+ run:
+ shell: bash
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - uses: actions/cache@v2
+ id: cache
+ with:
+ path: ${{ env.pythonLocation }}
+ key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}-test
+ - name: Install Flit
+ if: steps.cache.outputs.cache-hit != 'true'
+ run: bash dev/setup.sh
+ - name: Lint
+ if: ${{ matrix.python-version != '3.6' }}
+ run: bash dev/lint_python.sh
+ - name: Test
+ run: bash dev/test_python.sh
diff --git a/.gitignore b/.gitignore
index b6e4761..07f6de3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,8 @@ MANIFEST
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
+!dbt_artifacts_parser/parsers/manifest
+!dbt_artifacts_parser/resources/manifest
# Installer logs
pip-log.txt
diff --git a/.pypirc b/.pypirc
new file mode 100644
index 0000000..bbb1b31
--- /dev/null
+++ b/.pypirc
@@ -0,0 +1,10 @@
+[distutils]
+index-servers =
+ pypi
+ testpypi
+
+[pypi]
+repository=https://upload.pypi.org/legacy/
+
+[testpypi]
+repository=https://test.pypi.org/legacy/
diff --git a/.style.yapf b/.style.yapf
new file mode 100644
index 0000000..0e9640c
--- /dev/null
+++ b/.style.yapf
@@ -0,0 +1,2 @@
+[style]
+based_on_style = google
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..6a5f534
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,8 @@
+exclude .git
+exclude .gitignore
+exclude tests
+exclude .style.yapf
+exclude Makefile
+exclude pylintrc
+exclude __pycache__
+exclude dbt_artifacts_parser/resources
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..6566795
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,45 @@
+# Set up an environment
+.PHONEY: setup
+setup:
+ bash ./dev/setup.sh
+
+# Check all the coding style.
+.PHONY: lint
+lint: lint-shell lint-python
+
+# Check the coding style for the shell scripts.
+.PHONY: lint-shell
+lint-shell:
+ shellcheck ./dev/*.sh
+
+# Check the coding style for the python files.
+.PHONY: lint-python
+lint-python:
+ bash ./dev/lint_python.sh
+
+# Format source codes
+format: format-python
+
+# Format python codes
+format-python:
+ bash ./dev/format_python.sh
+
+# Run the unit tests.
+.PHONEY: test
+test:
+ bash ./dev/test_python.sh
+
+# Build the package
+build: clean format test
+ flit build
+
+clean:
+ bash ./dev/clean.sh
+
+# Publish to pypi
+publish:
+ bash ./dev/publish.sh "pypi"
+
+# Publish to testpypi
+test-publish:
+ bash ./dev/publish.sh "testpypi"
diff --git a/README.md b/README.md
index 3c8fbfd..c4dc103 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,155 @@
+[](https://github.com/yu-iskw/dbt-artifacts-parser/actions/workflows/test.yml)
+
+
+
+
+
+
+
+
# dbt-artifacts-parser
-A dbt artifacts parser in python
+This is a dbt artifacts parse in python.
+It enables us to deal with `catalog.json`, `manifest.json`, `run-results.json` and `sources.json` as python objects.
+
+## Installation
+
+```bash
+pip install -U dbt-artifacts-parser
+```
+
+## Example
+
+### Parse catalog.json
+```python
+import yaml
+
+# parse any version of catalog.json
+from dbt_artifacts_parser.parser import parse_catalog
+
+with open("path/to/catalog.json", "r") as fp:
+ catalog_dict = yaml.safe_load(fp)
+ catalog_obj = parse_catalog(catalog=catalog_dict)
+
+# parse catalog.json v1
+from dbt_artifacts_parser.parser import parse_catalog_v1
+
+with open("path/to/catalog.json", "r") as fp:
+ catalog_dict = yaml.safe_load(fp)
+ catalog_obj = parse_catalog_v1(catalog=catalog_dict)
+```
+
+### Parse manifest.json
+
+```python
+import yaml
+
+# parse any version of manifest.json
+from dbt_artifacts_parser.parser import parse_manifest
+
+with open("path/to/manifest.json", "r") as fp:
+ manifest_dict = yaml.safe_load(fp)
+ manifest_obj = parse_manifest(manifest=manifest_dict)
+
+# parse manifest.json v1
+from dbt_artifacts_parser.parser import parse_manifest_v1
+
+with open("path/to/manifest.json", "r") as fp:
+ manifest_dict = yaml.safe_load(fp)
+ manifest_obj = parse_manifest_v1(manifest=manifest_dict)
+
+# parse manifest.json v2
+from dbt_artifacts_parser.parser import parse_manifest_v2
+
+with open("path/to/manifest.json", "r") as fp:
+ manifest_dict = yaml.safe_load(fp)
+ manifest_obj = parse_manifest_v2(manifest=manifest_dict)
+
+# parse manifest.json v3
+from dbt_artifacts_parser.parser import parse_manifest_v3
+
+with open("path/to/manifest.json", "r") as fp:
+ manifest_dict = yaml.safe_load(fp)
+ manifest_obj = parse_manifest_v3(manifest=manifest_dict)
+
+# parse manifest.json v4
+from dbt_artifacts_parser.parser import parse_manifest_v4
+
+with open("path/to/manifest.json", "r") as fp:
+ manifest_dict = yaml.safe_load(fp)
+ manifest_obj = parse_manifest_v4(manifest=manifest_dict)
+```
+
+### Parse run-results.json
+
+```python
+import yaml
+
+# parse any version of run-results.json
+from dbt_artifacts_parser.parser import parse_run_results
+
+with open("path/to/run-resultsjson", "r") as fp:
+ run_results_dict = yaml.safe_load(fp)
+ run_results_obj = parse_run_results(run_results=run_results_dict)
+
+# parse run-results.json v1
+from dbt_artifacts_parser.parser import parse_run_results_v1
+
+with open("path/to/run-results.json", "r") as fp:
+ run_results_dict = yaml.safe_load(fp)
+ run_results_obj = parse_run_results_v1(run_results=run_results_dict)
+
+# parse run-results.json v2
+from dbt_artifacts_parser.parser import parse_run_results_v2
+
+with open("path/to/run-results.json", "r") as fp:
+ run_results_dict = yaml.safe_load(fp)
+ run_results_obj = parse_run_results_v2(run_results=run_results_dict)
+
+# parse run-results.json v3
+from dbt_artifacts_parser.parser import parse_run_results_v3
+
+with open("path/to/run-results.json", "r") as fp:
+ run_results_dict = yaml.safe_load(fp)
+ run_results_obj = parse_run_results_v3(run_results=run_results_dict)
+
+# parse run-results.json v4
+from dbt_artifacts_parser.parser import parse_run_results_v4
+
+with open("path/to/run-results.json", "r") as fp:
+ run_results_dict = yaml.safe_load(fp)
+ run_results_obj = parse_run_results_v4(run_results=run_results_dict)
+```
+
+### Parse sources.json
+
+```python
+import yaml
+
+# parse any version of sources.json
+from dbt_artifacts_parser.parser import parse_sources
+
+with open("path/to/sources.json", "r") as fp:
+ sources_dict = yaml.safe_load(fp)
+ sources_obj = parse_sources(sources=sources_dict)
+
+# parse sources.json v1
+from dbt_artifacts_parser.parser import parse_sources_v1
+
+with open("path/to/sources.json", "r") as fp:
+ sources_dict = yaml.safe_load(fp)
+ sources_obj = parse_sources_v1(sources=sources_dict)
+
+# parse sources.json v2
+from dbt_artifacts_parser.parser import parse_sources_v2
+
+with open("path/to/sources.json", "r") as fp:
+ sources_dict = yaml.safe_load(fp)
+ sources_obj = parse_sources_v2(sources=sources_dict)
+
+# parse sources.json v3
+from dbt_artifacts_parser.parser import parse_sources_v3
+
+with open("path/to/sources.json", "r") as fp:
+ sources_dict = yaml.safe_load(fp)
+ sources_obj = parse_sources_v3(sources=sources_dict)
+```
diff --git a/dbt_artifacts_parser/__init__.py b/dbt_artifacts_parser/__init__.py
new file mode 100644
index 0000000..b559bca
--- /dev/null
+++ b/dbt_artifacts_parser/__init__.py
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+"""
+A dbt artifacts parser in python
+"""
+__version__ = "0.1.0-rc1"
diff --git a/dbt_artifacts_parser/parser.py b/dbt_artifacts_parser/parser.py
new file mode 100644
index 0000000..d9f04ca
--- /dev/null
+++ b/dbt_artifacts_parser/parser.py
@@ -0,0 +1,222 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+from typing import Union
+
+from dbt_artifacts_parser.parsers.utils import get_dbt_schema_version
+
+from dbt_artifacts_parser.parsers.catalog.catalog_v1 import CatalogV1
+from dbt_artifacts_parser.parsers.manifest.manifest_v1 import ManifestV1
+from dbt_artifacts_parser.parsers.manifest.manifest_v2 import ManifestV2
+from dbt_artifacts_parser.parsers.manifest.manifest_v3 import ManifestV3
+from dbt_artifacts_parser.parsers.manifest.manifest_v4 import ManifestV4
+from dbt_artifacts_parser.parsers.run_results.run_results_v1 import RunResultsV1
+from dbt_artifacts_parser.parsers.run_results.run_results_v2 import RunResultsV2
+from dbt_artifacts_parser.parsers.run_results.run_results_v3 import RunResultsV3
+from dbt_artifacts_parser.parsers.run_results.run_results_v4 import RunResultsV4
+from dbt_artifacts_parser.parsers.sources.sources_v1 import SourcesV1
+from dbt_artifacts_parser.parsers.sources.sources_v2 import SourcesV2
+from dbt_artifacts_parser.parsers.sources.sources_v3 import SourcesV3
+
+from dbt_artifacts_parser.parsers.version_map import ArtifactTypes
+
+
+#
+# catalog
+#
+def parse_catalog(catalog: dict) -> Union[CatalogV1]:
+ """Parse catalog.json
+
+ Args:
+ catalog: dict of catalog.json
+
+ Returns:
+ Union[CatalogV1]
+ """
+ dbt_schema_version = get_dbt_schema_version(artifact_json=catalog)
+ if dbt_schema_version == ArtifactTypes.CATALOG_V1.value.dbt_schema_version:
+ return CatalogV1(**catalog)
+ raise ValueError("Not a soft of catalog.json")
+
+
+def parse_catalog_v1(catalog: dict) -> CatalogV1:
+ """Parse catalog.json v1"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=catalog)
+ if dbt_schema_version == ArtifactTypes.CATALOG_V1.value.dbt_schema_version:
+ return CatalogV1(**catalog)
+ raise ValueError("Not a catalog.json v1")
+
+
+#
+# manifest
+#
+def parse_manifest(
+ manifest: dict
+) -> Union[ManifestV1, ManifestV2, ManifestV3, ManifestV4]:
+ """Parse manifest.json
+
+ Args:
+ manifest: A dict of manifest.json
+
+ Returns:
+ Union[ManifestV1, ManifestV2, ManifestV3, ManifestV4]
+ """
+ dbt_schema_version = get_dbt_schema_version(artifact_json=manifest)
+ if dbt_schema_version == ArtifactTypes.MANIFEST_V1.value.dbt_schema_version:
+ return ManifestV1(**manifest)
+ elif dbt_schema_version == ArtifactTypes.MANIFEST_V2.value.dbt_schema_version:
+ return ManifestV2(**manifest)
+ elif dbt_schema_version == ArtifactTypes.MANIFEST_V3.value.dbt_schema_version:
+ return ManifestV3(**manifest)
+ elif dbt_schema_version == ArtifactTypes.MANIFEST_V4.value.dbt_schema_version:
+ return ManifestV4(**manifest)
+ raise ValueError("Not a soft of manifest.json")
+
+
+def parse_manifest_v1(manifest: dict) -> ManifestV1:
+ """Parse manifest.json ver.1"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=manifest)
+ if dbt_schema_version == ArtifactTypes.MANIFEST_V1.value.dbt_schema_version:
+ return ManifestV1(**manifest)
+ raise ValueError("Not a manifest.json v1")
+
+
+def parse_manifest_v2(manifest: dict) -> ManifestV2:
+ """Parse manifest.json ver.2"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=manifest)
+ if dbt_schema_version == ArtifactTypes.MANIFEST_V2.value.dbt_schema_version:
+ return ManifestV2(**manifest)
+ raise ValueError("Not a manifest.json v2")
+
+
+def parse_manifest_v3(manifest: dict) -> ManifestV3:
+ """Parse manifest.json ver.3"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=manifest)
+ if dbt_schema_version == ArtifactTypes.MANIFEST_V3.value.dbt_schema_version:
+ return ManifestV3(**manifest)
+ raise ValueError("Not a manifest.json v3")
+
+
+def parse_manifest_v4(manifest: dict) -> ManifestV4:
+ """Parse manifest.json ver.4"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=manifest)
+ if dbt_schema_version == ArtifactTypes.MANIFEST_V4.value.dbt_schema_version:
+ return ManifestV4(**manifest)
+ raise ValueError("Not a manifest.json v4")
+
+
+#
+# run-results
+#
+def parse_run_results(
+ run_results: dict
+) -> Union[RunResultsV1, RunResultsV2, RunResultsV3, RunResultsV4]:
+ """Parse run-results.json
+
+ Args:
+ run_results: A dict of run-results.json
+
+ Returns:
+ Union[RunResultsV1, RunResultsV2, RunResultsV3, RunResultsV4]:
+ """
+ dbt_schema_version = get_dbt_schema_version(artifact_json=run_results)
+ if dbt_schema_version == ArtifactTypes.RUN_RESULTS_V1.value.dbt_schema_version:
+ return RunResultsV1(**run_results)
+ elif dbt_schema_version == ArtifactTypes.RUN_RESULTS_V2.value.dbt_schema_version:
+ return RunResultsV2(**run_results)
+ elif dbt_schema_version == ArtifactTypes.RUN_RESULTS_V3.value.dbt_schema_version:
+ return RunResultsV3(**run_results)
+ elif dbt_schema_version == ArtifactTypes.RUN_RESULTS_V4.value.dbt_schema_version:
+ return RunResultsV4(**run_results)
+ raise ValueError("Not a soft of manifest.json")
+
+
+def parse_run_results_v1(run_results: dict) -> RunResultsV1:
+ """Parse run-results.json v1"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=run_results)
+ if dbt_schema_version == ArtifactTypes.RUN_RESULTS_V1.value.dbt_schema_version:
+ return RunResultsV1(**run_results)
+ raise ValueError("Not a run-results.json v1")
+
+
+def parse_run_results_v2(run_results: dict) -> RunResultsV2:
+ """Parse run-results.json v2"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=run_results)
+ if dbt_schema_version == ArtifactTypes.RUN_RESULTS_V2.value.dbt_schema_version:
+ return RunResultsV2(**run_results)
+ raise ValueError("Not a run-results.json v2")
+
+
+def parse_run_results_v3(run_results: dict) -> RunResultsV3:
+ """Parse run-results.json v3"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=run_results)
+ if dbt_schema_version == ArtifactTypes.RUN_RESULTS_V3.value.dbt_schema_version:
+ return RunResultsV3(**run_results)
+ raise ValueError("Not a run-results.json v3")
+
+
+def parse_run_results_v4(run_results: dict) -> RunResultsV4:
+ """Parse run-results.json v4"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=run_results)
+ if dbt_schema_version == ArtifactTypes.RUN_RESULTS_V4.value.dbt_schema_version:
+ return RunResultsV4(**run_results)
+ raise ValueError("Not a run-results.json v4")
+
+
+#
+# sources
+#
+def parse_sources(sources: dict) -> Union[SourcesV1, SourcesV2, SourcesV3]:
+ """Parse sources.json
+
+ Args:
+ sources: A dict of sources.json
+
+ Returns:
+ Union[SourcesV1, SourcesV2, SourcesV3]
+ """
+ dbt_schema_version = get_dbt_schema_version(artifact_json=sources)
+ if dbt_schema_version == ArtifactTypes.SOURCES_V1.value.dbt_schema_version:
+ return SourcesV1(**sources)
+ elif dbt_schema_version == ArtifactTypes.SOURCES_V2.value.dbt_schema_version:
+ return SourcesV2(**sources)
+ elif dbt_schema_version == ArtifactTypes.SOURCES_V3.value.dbt_schema_version:
+ return SourcesV3(**sources)
+ raise ValueError("Not a soft of manifest.json")
+
+
+def parse_sources_v1(sources: dict) -> SourcesV1:
+ """Parse sources.json v1"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=sources)
+ if dbt_schema_version == ArtifactTypes.SOURCES_V1.value.dbt_schema_version:
+ return SourcesV1(**sources)
+ raise ValueError("Not a sources.json v1")
+
+
+def parse_sources_v2(sources: dict) -> SourcesV2:
+ """Parse sources.json v2"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=sources)
+ if dbt_schema_version == ArtifactTypes.SOURCES_V2.value.dbt_schema_version:
+ return SourcesV2(**sources)
+ raise ValueError("Not a sources.json v2")
+
+
+def parse_sources_v3(sources: dict) -> SourcesV3:
+ """Parse sources.json v3"""
+ dbt_schema_version = get_dbt_schema_version(artifact_json=sources)
+ if dbt_schema_version == ArtifactTypes.SOURCES_V3.value.dbt_schema_version:
+ return SourcesV3(**sources)
+ raise ValueError("Not a sources.json v3")
diff --git a/dbt_artifacts_parser/parsers/__init__.py b/dbt_artifacts_parser/parsers/__init__.py
new file mode 100644
index 0000000..3cfa191
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/__init__.py
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/dbt_artifacts_parser/parsers/base.py b/dbt_artifacts_parser/parsers/base.py
new file mode 100644
index 0000000..faa85fd
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/base.py
@@ -0,0 +1,26 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# pylint: disable=no-name-in-module
+# pylint: disable=no-self-argument
+from pydantic import BaseModel
+
+
+class BaseParserModel(BaseModel):
+ """
+ The base parser class
+ """
diff --git a/dbt_artifacts_parser/parsers/catalog/__init__.py b/dbt_artifacts_parser/parsers/catalog/__init__.py
new file mode 100644
index 0000000..3cfa191
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/catalog/__init__.py
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/dbt_artifacts_parser/parsers/catalog/catalog_v1.py b/dbt_artifacts_parser/parsers/catalog/catalog_v1.py
new file mode 100644
index 0000000..81d16e9
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/catalog/catalog_v1.py
@@ -0,0 +1,83 @@
+# generated by datamodel-codegen:
+# filename: catalog_v1.json
+# timestamp: 2022-03-01T06:21:30+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from typing import Dict, List, Optional, Union
+
+from pydantic import Extra, Field
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class CatalogMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/catalog/v1.json'
+ dbt_version: Optional[str] = '0.19.0'
+ generated_at: Optional[datetime] = '2021-02-10T04:42:33.680487Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class TableMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ type: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ name: str
+ comment: Optional[Optional[str]] = None
+ owner: Optional[Optional[str]] = None
+
+
+class ColumnMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ type: str
+ comment: Optional[Optional[str]] = None
+ index: int
+ name: str
+
+
+class StatsItem(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ id: str
+ label: str
+ value: Optional[Optional[Union[bool, str, float]]] = None
+ description: Optional[Optional[str]] = None
+ include: bool
+
+
+class CatalogTable(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: TableMetadata
+ columns: Dict[str, ColumnMetadata]
+ stats: Dict[str, StatsItem]
+ unique_id: Optional[Optional[str]] = None
+
+
+class CatalogV1(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: CatalogMetadata
+ nodes: Dict[str, CatalogTable]
+ sources: Dict[str, CatalogTable]
+ errors: Optional[Optional[List[str]]] = None
diff --git a/dbt_artifacts_parser/parsers/manifest/__init__.py b/dbt_artifacts_parser/parsers/manifest/__init__.py
new file mode 100644
index 0000000..3cfa191
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/manifest/__init__.py
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/dbt_artifacts_parser/parsers/manifest/manifest_v1.py b/dbt_artifacts_parser/parsers/manifest/manifest_v1.py
new file mode 100644
index 0000000..da943ab
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/manifest/manifest_v1.py
@@ -0,0 +1,1439 @@
+# generated by datamodel-codegen:
+# filename: manifest_v1.json
+# timestamp: 2022-03-01T06:21:31+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+# pylint: disable=no-name-in-module
+from pydantic import Extra, Field, constr
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class ManifestMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/manifest/v1.json'
+ dbt_version: Optional[str] = '0.19.0'
+ generated_at: Optional[datetime] = '2021-02-10T04:42:33.683996Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+ project_id: Optional[Optional[str]] = Field(
+ None, description='A unique identifier for the project')
+ user_id: Optional[Optional[constr(
+ regex=r'[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
+ )]] = Field(None, description='A unique identifier for the user')
+ send_anonymous_usage_stats: Optional[Optional[bool]] = Field(
+ None,
+ description=
+ 'Whether dbt is configured to send anonymous usage statistics')
+ adapter_type: Optional[Optional[str]] = Field(
+ None, description='The type name of the adapter')
+
+
+class ResourceType(Enum):
+ analysis = 'analysis'
+
+
+class FileHash(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ checksum: str
+
+
+class Hook(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ sql: str
+ transaction: Optional[bool] = True
+ index: Optional[Optional[int]] = None
+
+
+class DependsOn(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ macros: Optional[List[str]] = []
+ nodes: Optional[List[str]] = []
+
+
+class ColumnInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ name: str
+ description: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+ data_type: Optional[Optional[str]] = None
+ quote: Optional[Optional[bool]] = None
+ tags: Optional[List[str]] = []
+
+
+class Docs(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ show: Optional[bool] = True
+
+
+class InjectedCTE(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ id: str
+ sql: str
+
+
+class ResourceType1(Enum):
+ test = 'test'
+
+
+class TestConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'test'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+ severity: Optional[constr(
+ regex=r'^([Ww][Aa][Rr][Nn]|[Ee][Rr][Rr][Oo][Rr])$')] = 'ERROR'
+
+
+class ResourceType2(Enum):
+ model = 'model'
+
+
+class ResourceType3(Enum):
+ operation = 'operation'
+
+
+class ResourceType4(Enum):
+ rpc = 'rpc'
+
+
+class ResourceType5(Enum):
+ test = 'test'
+
+
+class TestMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ namespace: Optional[Optional[str]] = None
+ name: str
+ kwargs: Dict[str, Any]
+
+
+class ResourceType6(Enum):
+ seed = 'seed'
+
+
+class SeedConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'seed'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+ quote_columns: Optional[Optional[bool]] = None
+
+
+class ResourceType7(Enum):
+ snapshot = 'snapshot'
+
+
+class ResourceType8(Enum):
+ analysis = 'analysis'
+
+
+class ResourceType9(Enum):
+ test = 'test'
+
+
+class ParsedDataTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType9
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'materialized': 'test',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'severity': 'ERROR',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+
+
+class ResourceType10(Enum):
+ operation = 'operation'
+
+
+class ResourceType11(Enum):
+ model = 'model'
+
+
+class ResourceType12(Enum):
+ rpc = 'rpc'
+
+
+class ResourceType13(Enum):
+ test = 'test'
+
+
+class ParsedSchemaTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ test_metadata: TestMetadata
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType13
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'materialized': 'test',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'severity': 'ERROR',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ column_name: Optional[Optional[str]] = None
+
+
+class ResourceType14(Enum):
+ seed = 'seed'
+
+
+class ParsedSeedNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType14
+ alias: str
+ checksum: FileHash
+ config: Optional[SeedConfig] = {
+ 'enabled': True,
+ 'materialized': 'seed',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'quote_columns': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+
+
+class ResourceType15(Enum):
+ snapshot = 'snapshot'
+
+
+class Strategy(Enum):
+ timestamp = 'timestamp'
+
+
+class TimestampSnapshotConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'snapshot'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+ unique_key: str
+ target_schema: str
+ target_database: Optional[Optional[str]] = None
+ strategy: Strategy
+ updated_at: str
+
+
+class Strategy1(Enum):
+ check = 'check'
+
+
+class CheckCol(Enum):
+ all = 'all'
+
+
+class CheckSnapshotConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'snapshot'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+ unique_key: str
+ target_schema: str
+ target_database: Optional[Optional[str]] = None
+ strategy: Strategy1
+ check_cols: Union[CheckCol, List[str]]
+
+
+class Strategy2(BaseParserModel):
+ pass
+
+
+class GenericSnapshotConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'snapshot'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+ unique_key: str
+ target_schema: str
+ target_database: Optional[Optional[str]] = None
+ strategy: Strategy2
+
+
+class ResourceType16(Enum):
+ source = 'source'
+
+
+class Quoting(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ database: Optional[Optional[bool]] = None
+ schema_: Optional[Optional[bool]] = Field(None, alias='schema')
+ identifier: Optional[Optional[bool]] = None
+ column: Optional[Optional[bool]] = None
+
+
+class FreshnessMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/sources/v1.json'
+ dbt_version: Optional[str] = '0.19.0'
+ generated_at: Optional[datetime] = '2021-02-10T04:42:33.675309Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ runtime_error = 'runtime error'
+
+
+class SourceFreshnessRuntimeError(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ error: Optional[Optional[Union[str, int]]] = None
+ status: Status
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class Period(Enum):
+ minute = 'minute'
+ hour = 'hour'
+ day = 'day'
+
+
+class Time(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ count: int
+ period: Period
+
+
+class ExternalPartition(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ name: Optional[str] = ''
+ description: Optional[str] = ''
+ data_type: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+
+
+class SourceConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+
+
+class ResourceType17(Enum):
+ macro = 'macro'
+
+
+class MacroDependsOn(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ macros: Optional[List[str]] = []
+
+
+class MacroArgument(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ type: Optional[Optional[str]] = None
+ description: Optional[str] = ''
+
+
+class ParsedDocumentation(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ block_contents: str
+
+
+class Type(Enum):
+ dashboard = 'dashboard'
+ notebook = 'notebook'
+ analysis = 'analysis'
+ ml = 'ml'
+ application = 'application'
+
+
+class ResourceType18(Enum):
+ model = 'model'
+ analysis = 'analysis'
+ test = 'test'
+ snapshot = 'snapshot'
+ operation = 'operation'
+ seed = 'seed'
+ rpc = 'rpc'
+ docs = 'docs'
+ source = 'source'
+ macro = 'macro'
+ exposure = 'exposure'
+
+
+class MaturityEnum(Enum):
+ low = 'low'
+ medium = 'medium'
+ high = 'high'
+
+
+class ExposureOwner(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ email: str
+ name: Optional[Optional[str]] = None
+
+
+class NodeConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'view'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+
+
+class CompiledDataTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType1
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'materialized': 'test',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'severity': 'ERROR',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledModelNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType2
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledHookNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType3
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+ index: Optional[Optional[int]] = None
+
+
+class CompiledRPCNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType4
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledSchemaTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ test_metadata: TestMetadata
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType5
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'materialized': 'test',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'severity': 'ERROR',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+ column_name: Optional[Optional[str]] = None
+
+
+class CompiledSeedNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType6
+ alias: str
+ checksum: FileHash
+ config: Optional[SeedConfig] = {
+ 'enabled': True,
+ 'materialized': 'seed',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'quote_columns': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledSnapshotNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType7
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class ParsedAnalysisNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType8
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+
+
+class ParsedHookNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType10
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ index: Optional[Optional[int]] = None
+
+
+class ParsedModelNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType11
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+
+
+class ParsedRPCNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType12
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+
+
+class ParsedSnapshotNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType15
+ alias: str
+ checksum: FileHash
+ config: Union[TimestampSnapshotConfig, CheckSnapshotConfig,
+ GenericSnapshotConfig]
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+
+
+class FreshnessThreshold(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ warn_after: Optional[Optional[Time]] = None
+ error_after: Optional[Optional[Time]] = None
+ filter: Optional[Optional[str]] = None
+
+
+class SourceFreshnessOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ max_loaded_at: datetime
+ snapshotted_at: datetime
+ max_loaded_at_time_ago_in_s: float
+ status: Status1
+ criteria: FreshnessThreshold
+ adapter_response: Dict[str, Any]
+
+
+class ExternalTable(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ location: Optional[Optional[str]] = None
+ file_format: Optional[Optional[str]] = None
+ row_format: Optional[Optional[str]] = None
+ tbl_properties: Optional[Optional[str]] = None
+ partitions: Optional[Optional[List[ExternalPartition]]] = None
+
+
+class ParsedMacro(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ macro_sql: str
+ resource_type: ResourceType17
+ tags: Optional[List[str]] = []
+ depends_on: Optional[MacroDependsOn] = {'macros': []}
+ description: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ arguments: Optional[List[MacroArgument]] = []
+
+
+class ParsedExposure(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ type: Type
+ owner: ExposureOwner
+ resource_type: Optional[ResourceType18] = 'exposure'
+ description: Optional[str] = ''
+ maturity: Optional[Optional[MaturityEnum]] = None
+ url: Optional[Optional[str]] = None
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+
+
+class CompiledAnalysisNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'post-hook': [],
+ 'pre-hook': [],
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class ParsedSourceDefinition(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ fqn: List[str]
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ source_name: str
+ source_description: str
+ loader: str
+ identifier: str
+ resource_type: ResourceType16
+ quoting: Optional[Quoting] = {
+ 'database': None,
+ 'schema': None,
+ 'identifier': None,
+ 'column': None,
+ }
+ loaded_at_field: Optional[Optional[str]] = None
+ freshness: Optional[Optional[FreshnessThreshold]] = None
+ external: Optional[Optional[ExternalTable]] = None
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ source_meta: Optional[Dict[str, Any]] = {}
+ tags: Optional[List[str]] = []
+ config: Optional[SourceConfig] = {'enabled': True}
+ patch_path: Optional[Optional[str]] = None
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ relation_name: Optional[Optional[str]] = None
+
+
+class ManifestV1(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: ManifestMetadata = Field(
+ ..., description='Metadata about the manifest')
+ nodes: Dict[
+ str, Union[CompiledAnalysisNode, CompiledDataTestNode,
+ CompiledModelNode, CompiledHookNode, CompiledRPCNode,
+ CompiledSchemaTestNode, CompiledSeedNode,
+ CompiledSnapshotNode, ParsedAnalysisNode, ParsedDataTestNode,
+ ParsedHookNode, ParsedModelNode, ParsedRPCNode,
+ ParsedSchemaTestNode, ParsedSeedNode, ParsedSnapshotNode,],
+ ] = Field(
+ ...,
+ description='The nodes defined in the dbt project and its dependencies')
+ sources: Dict[str, ParsedSourceDefinition] = Field(
+ ...,
+ description='The sources defined in the dbt project and its dependencies'
+ )
+ macros: Dict[str, ParsedMacro] = Field(
+ ...,
+ description='The macros defined in the dbt project and its dependencies'
+ )
+ docs: Dict[str, ParsedDocumentation] = Field(
+ ...,
+ description='The docs defined in the dbt project and its dependencies')
+ exposures: Dict[str, ParsedExposure] = Field(
+ ...,
+ description=
+ 'The exposures defined in the dbt project and its dependencies')
+ selectors: Dict[str, Any] = Field(
+ ..., description='The selectors defined in selectors.yml')
+ disabled: Optional[Optional[List[
+ Union[CompiledAnalysisNode, CompiledDataTestNode, CompiledModelNode,
+ CompiledHookNode, CompiledRPCNode, CompiledSchemaTestNode,
+ CompiledSeedNode, CompiledSnapshotNode, ParsedAnalysisNode,
+ ParsedDataTestNode, ParsedHookNode, ParsedModelNode,
+ ParsedRPCNode, ParsedSchemaTestNode, ParsedSeedNode,
+ ParsedSnapshotNode, ParsedSourceDefinition,]]]] = Field(
+ None,
+ description='A list of the disabled nodes in the target')
+ parent_map: Optional[Optional[Dict[str, List[str]]]] = Field(
+ None, description='A mapping from\xa0child nodes to their dependencies')
+ child_map: Optional[Optional[Dict[str, List[str]]]] = Field(
+ None, description='A mapping from parent nodes to their dependents')
diff --git a/dbt_artifacts_parser/parsers/manifest/manifest_v2.py b/dbt_artifacts_parser/parsers/manifest/manifest_v2.py
new file mode 100644
index 0000000..9cf0331
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/manifest/manifest_v2.py
@@ -0,0 +1,1441 @@
+# generated by datamodel-codegen:
+# filename: manifest_v2.json
+# timestamp: 2022-03-01T06:21:33+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+# pylint: disable=no-name-in-module
+from pydantic import Extra, Field, constr
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class ManifestMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/manifest/v2.json'
+ dbt_version: Optional[str] = '0.20.0rc1'
+ generated_at: Optional[datetime] = '2021-06-07T14:49:01.099700Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+ project_id: Optional[Optional[str]] = Field(
+ None, description='A unique identifier for the project')
+ user_id: Optional[Optional[constr(
+ regex=r'[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
+ )]] = Field(None, description='A unique identifier for the user')
+ send_anonymous_usage_stats: Optional[Optional[bool]] = Field(
+ None,
+ description=
+ 'Whether dbt is configured to send anonymous usage statistics')
+ adapter_type: Optional[Optional[str]] = Field(
+ None, description='The type name of the adapter')
+
+
+class ResourceType(Enum):
+ analysis = 'analysis'
+
+
+class FileHash(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ checksum: str
+
+
+class Hook(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ sql: str
+ transaction: Optional[bool] = True
+ index: Optional[Optional[int]] = None
+
+
+class DependsOn(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ macros: Optional[List[str]] = []
+ nodes: Optional[List[str]] = []
+
+
+class ColumnInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ name: str
+ description: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+ data_type: Optional[Optional[str]] = None
+ quote: Optional[Optional[bool]] = None
+ tags: Optional[List[str]] = []
+
+
+class Docs(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ show: Optional[bool] = True
+
+
+class InjectedCTE(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ id: str
+ sql: str
+
+
+class ResourceType1(Enum):
+ test = 'test'
+
+
+class TestConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'test'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field('dbt_test__audit', alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+ severity: Optional[constr(
+ regex=r'^([Ww][Aa][Rr][Nn]|[Ee][Rr][Rr][Oo][Rr])$')] = 'ERROR'
+ store_failures: Optional[Optional[bool]] = None
+ where: Optional[Optional[str]] = None
+ limit: Optional[Optional[int]] = None
+ fail_calc: Optional[str] = 'count(*)'
+ warn_if: Optional[str] = '!= 0'
+ error_if: Optional[str] = '!= 0'
+
+
+class ResourceType2(Enum):
+ model = 'model'
+
+
+class ResourceType3(Enum):
+ operation = 'operation'
+
+
+class ResourceType4(Enum):
+ rpc = 'rpc'
+
+
+class ResourceType5(Enum):
+ test = 'test'
+
+
+class TestMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ kwargs: Optional[Dict[str, Any]] = {}
+ namespace: Optional[Optional[str]] = None
+
+
+class ResourceType6(Enum):
+ seed = 'seed'
+
+
+class SeedConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'seed'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+ quote_columns: Optional[Optional[bool]] = None
+
+
+class ResourceType7(Enum):
+ snapshot = 'snapshot'
+
+
+class ResourceType8(Enum):
+ analysis = 'analysis'
+
+
+class ResourceType9(Enum):
+ test = 'test'
+
+
+class ParsedDataTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType9
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'materialized': 'test',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+
+
+class ResourceType10(Enum):
+ operation = 'operation'
+
+
+class ResourceType11(Enum):
+ model = 'model'
+
+
+class ResourceType12(Enum):
+ rpc = 'rpc'
+
+
+class ResourceType13(Enum):
+ test = 'test'
+
+
+class ParsedSchemaTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ test_metadata: TestMetadata
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType13
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'materialized': 'test',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ column_name: Optional[Optional[str]] = None
+
+
+class ResourceType14(Enum):
+ seed = 'seed'
+
+
+class ParsedSeedNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType14
+ alias: str
+ checksum: FileHash
+ config: Optional[SeedConfig] = {
+ 'enabled': True,
+ 'materialized': 'seed',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'quote_columns': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+
+
+class ResourceType15(Enum):
+ snapshot = 'snapshot'
+
+
+class SnapshotConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'snapshot'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+ strategy: Optional[Optional[str]] = None
+ unique_key: Optional[Optional[str]] = None
+ target_schema: Optional[Optional[str]] = None
+ target_database: Optional[Optional[str]] = None
+ updated_at: Optional[Optional[str]] = None
+ check_cols: Optional[Optional[Union[str, List[str]]]] = None
+
+
+class ResourceType16(Enum):
+ source = 'source'
+
+
+class Quoting(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ database: Optional[Optional[bool]] = None
+ schema_: Optional[Optional[bool]] = Field(None, alias='schema')
+ identifier: Optional[Optional[bool]] = None
+ column: Optional[Optional[bool]] = None
+
+
+class FreshnessMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/sources/v1.json'
+ dbt_version: Optional[str] = '0.20.0rc1'
+ generated_at: Optional[datetime] = '2021-06-07T14:49:01.095724Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ runtime_error = 'runtime error'
+
+
+class SourceFreshnessRuntimeError(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ error: Optional[Optional[Union[str, int]]] = None
+ status: Status
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class Period(Enum):
+ minute = 'minute'
+ hour = 'hour'
+ day = 'day'
+
+
+class Time(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ count: int
+ period: Period
+
+
+class ExternalPartition(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ name: Optional[str] = ''
+ description: Optional[str] = ''
+ data_type: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+
+
+class SourceConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+
+
+class ResourceType17(Enum):
+ macro = 'macro'
+
+
+class MacroDependsOn(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ macros: Optional[List[str]] = []
+
+
+class MacroArgument(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ type: Optional[Optional[str]] = None
+ description: Optional[str] = ''
+
+
+class ParsedDocumentation(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ block_contents: str
+
+
+class Type(Enum):
+ dashboard = 'dashboard'
+ notebook = 'notebook'
+ analysis = 'analysis'
+ ml = 'ml'
+ application = 'application'
+
+
+class ResourceType18(Enum):
+ model = 'model'
+ analysis = 'analysis'
+ test = 'test'
+ snapshot = 'snapshot'
+ operation = 'operation'
+ seed = 'seed'
+ rpc = 'rpc'
+ docs = 'docs'
+ source = 'source'
+ macro = 'macro'
+ exposure = 'exposure'
+
+
+class MaturityEnum(Enum):
+ low = 'low'
+ medium = 'medium'
+ high = 'high'
+
+
+class ExposureOwner(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ email: str
+ name: Optional[Optional[str]] = None
+
+
+class NodeConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ materialized: Optional[str] = 'view'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ vars: Optional[Dict[str, Any]] = {}
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ full_refresh: Optional[Optional[bool]] = None
+
+
+class CompiledDataTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType1
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'materialized': 'test',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledModelNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType2
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledHookNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType3
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+ index: Optional[Optional[int]] = None
+
+
+class CompiledRPCNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType4
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledSchemaTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ test_metadata: TestMetadata
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType5
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'materialized': 'test',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+ column_name: Optional[Optional[str]] = None
+
+
+class CompiledSeedNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType6
+ alias: str
+ checksum: FileHash
+ config: Optional[SeedConfig] = {
+ 'enabled': True,
+ 'materialized': 'seed',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'quote_columns': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledSnapshotNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType7
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class ParsedAnalysisNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType8
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+
+
+class ParsedHookNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType10
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ index: Optional[Optional[int]] = None
+
+
+class ParsedModelNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType11
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+
+
+class ParsedRPCNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType12
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+
+
+class ParsedSnapshotNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType15
+ alias: str
+ checksum: FileHash
+ config: SnapshotConfig
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+
+
+class FreshnessThreshold(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ warn_after: Optional[Optional[Time]] = None
+ error_after: Optional[Optional[Time]] = None
+ filter: Optional[Optional[str]] = None
+
+
+class SourceFreshnessOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ max_loaded_at: datetime
+ snapshotted_at: datetime
+ max_loaded_at_time_ago_in_s: float
+ status: Status1
+ criteria: FreshnessThreshold
+ adapter_response: Dict[str, Any]
+
+
+class ExternalTable(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ location: Optional[Optional[str]] = None
+ file_format: Optional[Optional[str]] = None
+ row_format: Optional[Optional[str]] = None
+ tbl_properties: Optional[Optional[str]] = None
+ partitions: Optional[Optional[List[ExternalPartition]]] = None
+
+
+class ParsedMacro(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ macro_sql: str
+ resource_type: ResourceType17
+ tags: Optional[List[str]] = []
+ depends_on: Optional[MacroDependsOn] = {'macros': []}
+ description: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ arguments: Optional[List[MacroArgument]] = []
+ created_at: Optional[int] = 1623077341
+
+
+class ParsedExposure(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ type: Type
+ owner: ExposureOwner
+ resource_type: Optional[ResourceType18] = 'exposure'
+ description: Optional[str] = ''
+ maturity: Optional[Optional[MaturityEnum]] = None
+ meta: Optional[Dict[str, Any]] = {}
+ tags: Optional[List[str]] = []
+ url: Optional[Optional[str]] = None
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ created_at: Optional[int] = 1623077341
+
+
+class CompiledAnalysisNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'vars': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'full_refresh': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1623077341
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class ParsedSourceDefinition(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ fqn: List[str]
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ source_name: str
+ source_description: str
+ loader: str
+ identifier: str
+ resource_type: ResourceType16
+ quoting: Optional[Quoting] = {
+ 'database': None,
+ 'schema': None,
+ 'identifier': None,
+ 'column': None,
+ }
+ loaded_at_field: Optional[Optional[str]] = None
+ freshness: Optional[Optional[FreshnessThreshold]] = None
+ external: Optional[Optional[ExternalTable]] = None
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ source_meta: Optional[Dict[str, Any]] = {}
+ tags: Optional[List[str]] = []
+ config: Optional[SourceConfig] = {'enabled': True}
+ patch_path: Optional[Optional[str]] = None
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ relation_name: Optional[Optional[str]] = None
+ created_at: Optional[int] = 1623077341
+
+
+class ManifestV2(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: ManifestMetadata = Field(
+ ..., description='Metadata about the manifest')
+ nodes: Dict[
+ str, Union[CompiledAnalysisNode, CompiledDataTestNode,
+ CompiledModelNode, CompiledHookNode, CompiledRPCNode,
+ CompiledSchemaTestNode, CompiledSeedNode,
+ CompiledSnapshotNode, ParsedAnalysisNode, ParsedDataTestNode,
+ ParsedHookNode, ParsedModelNode, ParsedRPCNode,
+ ParsedSchemaTestNode, ParsedSeedNode, ParsedSnapshotNode,],
+ ] = Field(
+ ...,
+ description='The nodes defined in the dbt project and its dependencies')
+ sources: Dict[str, ParsedSourceDefinition] = Field(
+ ...,
+ description='The sources defined in the dbt project and its dependencies'
+ )
+ macros: Dict[str, ParsedMacro] = Field(
+ ...,
+ description='The macros defined in the dbt project and its dependencies'
+ )
+ docs: Dict[str, ParsedDocumentation] = Field(
+ ...,
+ description='The docs defined in the dbt project and its dependencies')
+ exposures: Dict[str, ParsedExposure] = Field(
+ ...,
+ description=
+ 'The exposures defined in the dbt project and its dependencies')
+ selectors: Dict[str, Any] = Field(
+ ..., description='The selectors defined in selectors.yml')
+ disabled: Optional[Optional[List[
+ Union[CompiledAnalysisNode, CompiledDataTestNode, CompiledModelNode,
+ CompiledHookNode, CompiledRPCNode, CompiledSchemaTestNode,
+ CompiledSeedNode, CompiledSnapshotNode, ParsedAnalysisNode,
+ ParsedDataTestNode, ParsedHookNode, ParsedModelNode,
+ ParsedRPCNode, ParsedSchemaTestNode, ParsedSeedNode,
+ ParsedSnapshotNode, ParsedSourceDefinition,]]]] = Field(
+ None,
+ description='A list of the disabled nodes in the target')
+ parent_map: Optional[Optional[Dict[str, List[str]]]] = Field(
+ None, description='A mapping from\xa0child nodes to their dependencies')
+ child_map: Optional[Optional[Dict[str, List[str]]]] = Field(
+ None, description='A mapping from parent nodes to their dependents')
diff --git a/dbt_artifacts_parser/parsers/manifest/manifest_v3.py b/dbt_artifacts_parser/parsers/manifest/manifest_v3.py
new file mode 100644
index 0000000..faa2a24
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/manifest/manifest_v3.py
@@ -0,0 +1,1454 @@
+# generated by datamodel-codegen:
+# filename: manifest_v3.json
+# timestamp: 2022-03-01T06:21:34+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+# pylint: disable=no-name-in-module
+from pydantic import Extra, Field, constr
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class ManifestMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/manifest/v3.json'
+ dbt_version: Optional[str] = '0.21.0rc1'
+ generated_at: Optional[datetime] = '2021-09-24T13:29:14.317700Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+ project_id: Optional[Optional[str]] = Field(
+ None, description='A unique identifier for the project')
+ user_id: Optional[Optional[constr(
+ regex=r'[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
+ )]] = Field(None, description='A unique identifier for the user')
+ send_anonymous_usage_stats: Optional[Optional[bool]] = Field(
+ None,
+ description=
+ 'Whether dbt is configured to send anonymous usage statistics')
+ adapter_type: Optional[Optional[str]] = Field(
+ None, description='The type name of the adapter')
+
+
+class ResourceType(Enum):
+ analysis = 'analysis'
+
+
+class FileHash(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ checksum: str
+
+
+class Hook(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ sql: str
+ transaction: Optional[bool] = True
+ index: Optional[Optional[int]] = None
+
+
+class DependsOn(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ macros: Optional[List[str]] = []
+ nodes: Optional[List[str]] = []
+
+
+class ColumnInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ name: str
+ description: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+ data_type: Optional[Optional[str]] = None
+ quote: Optional[Optional[bool]] = None
+ tags: Optional[List[str]] = []
+
+
+class Docs(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ show: Optional[bool] = True
+
+
+class InjectedCTE(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ id: str
+ sql: str
+
+
+class ResourceType1(Enum):
+ test = 'test'
+
+
+class TestConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field('dbt_test__audit', alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ meta: Optional[Dict[str, Any]] = {}
+ materialized: Optional[str] = 'test'
+ severity: Optional[constr(
+ regex=r'^([Ww][Aa][Rr][Nn]|[Ee][Rr][Rr][Oo][Rr])$')] = 'ERROR'
+ store_failures: Optional[Optional[bool]] = None
+ where: Optional[Optional[str]] = None
+ limit: Optional[Optional[int]] = None
+ fail_calc: Optional[str] = 'count(*)'
+ warn_if: Optional[str] = '!= 0'
+ error_if: Optional[str] = '!= 0'
+
+
+class ResourceType2(Enum):
+ model = 'model'
+
+
+class ResourceType3(Enum):
+ operation = 'operation'
+
+
+class ResourceType4(Enum):
+ rpc = 'rpc'
+
+
+class ResourceType5(Enum):
+ test = 'test'
+
+
+class TestMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ kwargs: Optional[Dict[str, Any]] = {}
+ namespace: Optional[Optional[str]] = None
+
+
+class ResourceType6(Enum):
+ seed = 'seed'
+
+
+class SeedConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ meta: Optional[Dict[str, Any]] = {}
+ materialized: Optional[str] = 'seed'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ full_refresh: Optional[Optional[bool]] = None
+ on_schema_change: Optional[Optional[str]] = 'ignore'
+ quote_columns: Optional[Optional[bool]] = None
+
+
+class ResourceType7(Enum):
+ snapshot = 'snapshot'
+
+
+class ResourceType8(Enum):
+ analysis = 'analysis'
+
+
+class ResourceType9(Enum):
+ test = 'test'
+
+
+class ParsedDataTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType9
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'test',
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ResourceType10(Enum):
+ operation = 'operation'
+
+
+class ResourceType11(Enum):
+ model = 'model'
+
+
+class ResourceType12(Enum):
+ rpc = 'rpc'
+
+
+class ResourceType13(Enum):
+ test = 'test'
+
+
+class ParsedSchemaTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ test_metadata: TestMetadata
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType13
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'test',
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ column_name: Optional[Optional[str]] = None
+
+
+class ResourceType14(Enum):
+ seed = 'seed'
+
+
+class ParsedSeedNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType14
+ alias: str
+ checksum: FileHash
+ config: Optional[SeedConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'seed',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'quote_columns': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ResourceType15(Enum):
+ snapshot = 'snapshot'
+
+
+class SnapshotConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ meta: Optional[Dict[str, Any]] = {}
+ materialized: Optional[str] = 'snapshot'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ full_refresh: Optional[Optional[bool]] = None
+ on_schema_change: Optional[Optional[str]] = 'ignore'
+ strategy: Optional[Optional[str]] = None
+ unique_key: Optional[Optional[str]] = None
+ target_schema: Optional[Optional[str]] = None
+ target_database: Optional[Optional[str]] = None
+ updated_at: Optional[Optional[str]] = None
+ check_cols: Optional[Optional[Union[str, List[str]]]] = None
+
+
+class ResourceType16(Enum):
+ source = 'source'
+
+
+class Quoting(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ database: Optional[Optional[bool]] = None
+ schema_: Optional[Optional[bool]] = Field(None, alias='schema')
+ identifier: Optional[Optional[bool]] = None
+ column: Optional[Optional[bool]] = None
+
+
+class FreshnessMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/sources/v2.json'
+ dbt_version: Optional[str] = '0.21.0rc1'
+ generated_at: Optional[datetime] = '2021-09-24T13:29:14.312598Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ runtime_error = 'runtime error'
+
+
+class SourceFreshnessRuntimeError(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ error: Optional[Optional[Union[str, int]]] = None
+ status: Status
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class Period(Enum):
+ minute = 'minute'
+ hour = 'hour'
+ day = 'day'
+
+
+class Time(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ count: int
+ period: Period
+
+
+class TimingInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ started_at: Optional[Optional[datetime]] = None
+ completed_at: Optional[Optional[datetime]] = None
+
+
+class ExternalPartition(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ name: Optional[str] = ''
+ description: Optional[str] = ''
+ data_type: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+
+
+class SourceConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+
+
+class ResourceType17(Enum):
+ macro = 'macro'
+
+
+class MacroDependsOn(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ macros: Optional[List[str]] = []
+
+
+class MacroArgument(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ type: Optional[Optional[str]] = None
+ description: Optional[str] = ''
+
+
+class ParsedDocumentation(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ block_contents: str
+
+
+class Type(Enum):
+ dashboard = 'dashboard'
+ notebook = 'notebook'
+ analysis = 'analysis'
+ ml = 'ml'
+ application = 'application'
+
+
+class ResourceType18(Enum):
+ model = 'model'
+ analysis = 'analysis'
+ test = 'test'
+ snapshot = 'snapshot'
+ operation = 'operation'
+ seed = 'seed'
+ rpc = 'rpc'
+ docs = 'docs'
+ source = 'source'
+ macro = 'macro'
+ exposure = 'exposure'
+
+
+class MaturityEnum(Enum):
+ low = 'low'
+ medium = 'medium'
+ high = 'high'
+
+
+class ExposureOwner(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ email: str
+ name: Optional[Optional[str]] = None
+
+
+class NodeConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ meta: Optional[Dict[str, Any]] = {}
+ materialized: Optional[str] = 'view'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ full_refresh: Optional[Optional[bool]] = None
+ on_schema_change: Optional[Optional[str]] = 'ignore'
+
+
+class CompiledDataTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType1
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'test',
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledModelNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType2
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledHookNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType3
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+ index: Optional[Optional[int]] = None
+
+
+class CompiledRPCNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType4
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledSchemaTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ test_metadata: TestMetadata
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType5
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'test',
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+ column_name: Optional[Optional[str]] = None
+
+
+class CompiledSeedNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType6
+ alias: str
+ checksum: FileHash
+ config: Optional[SeedConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'seed',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'quote_columns': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledSnapshotNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType7
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class ParsedAnalysisNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType8
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ParsedHookNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType10
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ index: Optional[Optional[int]] = None
+
+
+class ParsedModelNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType11
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ParsedRPCNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType12
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ParsedSnapshotNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType15
+ alias: str
+ checksum: FileHash
+ config: SnapshotConfig
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class FreshnessThreshold(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ warn_after: Optional[Optional[Time]] = None
+ error_after: Optional[Optional[Time]] = None
+ filter: Optional[Optional[str]] = None
+
+
+class SourceFreshnessOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ max_loaded_at: datetime
+ snapshotted_at: datetime
+ max_loaded_at_time_ago_in_s: float
+ status: Status1
+ criteria: FreshnessThreshold
+ adapter_response: Dict[str, Any]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
+
+
+class ExternalTable(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ location: Optional[Optional[str]] = None
+ file_format: Optional[Optional[str]] = None
+ row_format: Optional[Optional[str]] = None
+ tbl_properties: Optional[Optional[str]] = None
+ partitions: Optional[Optional[List[ExternalPartition]]] = None
+
+
+class ParsedMacro(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ macro_sql: str
+ resource_type: ResourceType17
+ tags: Optional[List[str]] = []
+ depends_on: Optional[MacroDependsOn] = {'macros': []}
+ description: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ arguments: Optional[List[MacroArgument]] = []
+ created_at: Optional[int] = 1632490154
+
+
+class ParsedExposure(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ type: Type
+ owner: ExposureOwner
+ resource_type: Optional[ResourceType18] = 'exposure'
+ description: Optional[str] = ''
+ maturity: Optional[Optional[MaturityEnum]] = None
+ meta: Optional[Dict[str, Any]] = {}
+ tags: Optional[List[str]] = []
+ url: Optional[Optional[str]] = None
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ created_at: Optional[int] = 1632490154
+
+
+class CompiledAnalysisNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[int] = 1632490154
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class ParsedSourceDefinition(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ fqn: List[str]
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ source_name: str
+ source_description: str
+ loader: str
+ identifier: str
+ resource_type: ResourceType16
+ quoting: Optional[Quoting] = {
+ 'database': None,
+ 'schema': None,
+ 'identifier': None,
+ 'column': None,
+ }
+ loaded_at_field: Optional[Optional[str]] = None
+ freshness: Optional[Optional[FreshnessThreshold]] = None
+ external: Optional[Optional[ExternalTable]] = None
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ source_meta: Optional[Dict[str, Any]] = {}
+ tags: Optional[List[str]] = []
+ config: Optional[SourceConfig] = {'enabled': True}
+ patch_path: Optional[Optional[str]] = None
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ relation_name: Optional[Optional[str]] = None
+ created_at: Optional[int] = 1632490154
+
+
+class ManifestV3(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: ManifestMetadata = Field(
+ ..., description='Metadata about the manifest')
+ nodes: Dict[
+ str, Union[CompiledAnalysisNode, CompiledDataTestNode,
+ CompiledModelNode, CompiledHookNode, CompiledRPCNode,
+ CompiledSchemaTestNode, CompiledSeedNode,
+ CompiledSnapshotNode, ParsedAnalysisNode, ParsedDataTestNode,
+ ParsedHookNode, ParsedModelNode, ParsedRPCNode,
+ ParsedSchemaTestNode, ParsedSeedNode, ParsedSnapshotNode,],
+ ] = Field(
+ ...,
+ description='The nodes defined in the dbt project and its dependencies')
+ sources: Dict[str, ParsedSourceDefinition] = Field(
+ ...,
+ description='The sources defined in the dbt project and its dependencies'
+ )
+ macros: Dict[str, ParsedMacro] = Field(
+ ...,
+ description='The macros defined in the dbt project and its dependencies'
+ )
+ docs: Dict[str, ParsedDocumentation] = Field(
+ ...,
+ description='The docs defined in the dbt project and its dependencies')
+ exposures: Dict[str, ParsedExposure] = Field(
+ ...,
+ description=
+ 'The exposures defined in the dbt project and its dependencies')
+ selectors: Dict[str, Any] = Field(
+ ..., description='The selectors defined in selectors.yml')
+ disabled: Optional[Optional[List[
+ Union[CompiledAnalysisNode, CompiledDataTestNode, CompiledModelNode,
+ CompiledHookNode, CompiledRPCNode, CompiledSchemaTestNode,
+ CompiledSeedNode, CompiledSnapshotNode, ParsedAnalysisNode,
+ ParsedDataTestNode, ParsedHookNode, ParsedModelNode,
+ ParsedRPCNode, ParsedSchemaTestNode, ParsedSeedNode,
+ ParsedSnapshotNode, ParsedSourceDefinition,]]]] = Field(
+ None,
+ description='A list of the disabled nodes in the target')
+ parent_map: Optional[Optional[Dict[str, List[str]]]] = Field(
+ None, description='A mapping from\xa0child nodes to their dependencies')
+ child_map: Optional[Optional[Dict[str, List[str]]]] = Field(
+ None, description='A mapping from parent nodes to their dependents')
diff --git a/dbt_artifacts_parser/parsers/manifest/manifest_v4.py b/dbt_artifacts_parser/parsers/manifest/manifest_v4.py
new file mode 100644
index 0000000..21f079f
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/manifest/manifest_v4.py
@@ -0,0 +1,1636 @@
+# generated by datamodel-codegen:
+# filename: manifest_v4.json
+# timestamp: 2022-03-01T06:21:35+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+# pylint: disable=no-name-in-module
+from pydantic import Extra, Field, constr
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class ManifestMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/manifest/v4.json'
+ dbt_version: Optional[str] = '1.0.0rc2'
+ generated_at: Optional[datetime] = '2021-11-30T01:35:47.307789Z'
+ invocation_id: Optional[
+ Optional[str]] = '66dd78f0-c79a-4b06-81b1-99794345df16'
+ env: Optional[Dict[str, str]] = {}
+ project_id: Optional[Optional[str]] = Field(
+ None, description='A unique identifier for the project')
+ user_id: Optional[Optional[constr(
+ regex=r'[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
+ )]] = Field(None, description='A unique identifier for the user')
+ send_anonymous_usage_stats: Optional[Optional[bool]] = Field(
+ None,
+ description=
+ 'Whether dbt is configured to send anonymous usage statistics')
+ adapter_type: Optional[Optional[str]] = Field(
+ None, description='The type name of the adapter')
+
+
+class ResourceType(Enum):
+ analysis = 'analysis'
+
+
+class FileHash(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ checksum: str
+
+
+class Hook(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ sql: str
+ transaction: Optional[bool] = True
+ index: Optional[Optional[int]] = None
+
+
+class DependsOn(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ macros: Optional[List[str]] = []
+ nodes: Optional[List[str]] = []
+
+
+class ColumnInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ name: str
+ description: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+ data_type: Optional[Optional[str]] = None
+ quote: Optional[Optional[bool]] = None
+ tags: Optional[List[str]] = []
+
+
+class Docs(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ show: Optional[bool] = True
+
+
+class InjectedCTE(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ id: str
+ sql: str
+
+
+class ResourceType1(Enum):
+ test = 'test'
+
+
+class TestConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field('dbt_test__audit', alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ meta: Optional[Dict[str, Any]] = {}
+ materialized: Optional[str] = 'test'
+ severity: Optional[constr(
+ regex=r'^([Ww][Aa][Rr][Nn]|[Ee][Rr][Rr][Oo][Rr])$')] = 'ERROR'
+ store_failures: Optional[Optional[bool]] = None
+ where: Optional[Optional[str]] = None
+ limit: Optional[Optional[int]] = None
+ fail_calc: Optional[str] = 'count(*)'
+ warn_if: Optional[str] = '!= 0'
+ error_if: Optional[str] = '!= 0'
+
+
+class ResourceType2(Enum):
+ model = 'model'
+
+
+class ResourceType3(Enum):
+ operation = 'operation'
+
+
+class ResourceType4(Enum):
+ rpc = 'rpc'
+
+
+class ResourceType5(Enum):
+ sql = 'sql'
+
+
+class ResourceType6(Enum):
+ test = 'test'
+
+
+class TestMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ kwargs: Optional[Dict[str, Any]] = {}
+ namespace: Optional[Optional[str]] = None
+
+
+class ResourceType7(Enum):
+ seed = 'seed'
+
+
+class SeedConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ meta: Optional[Dict[str, Any]] = {}
+ materialized: Optional[str] = 'seed'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ full_refresh: Optional[Optional[bool]] = None
+ on_schema_change: Optional[Optional[str]] = 'ignore'
+ quote_columns: Optional[Optional[bool]] = None
+
+
+class ResourceType8(Enum):
+ snapshot = 'snapshot'
+
+
+class ResourceType9(Enum):
+ analysis = 'analysis'
+
+
+class ResourceType10(Enum):
+ test = 'test'
+
+
+class ParsedSingularTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType10
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'test',
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.3306549
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ResourceType11(Enum):
+ operation = 'operation'
+
+
+class ResourceType12(Enum):
+ model = 'model'
+
+
+class ResourceType13(Enum):
+ rpc = 'rpc'
+
+
+class ResourceType14(Enum):
+ sql = 'sql'
+
+
+class ResourceType15(Enum):
+ test = 'test'
+
+
+class ParsedGenericTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ test_metadata: TestMetadata
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType15
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'test',
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.3383949
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ column_name: Optional[Optional[str]] = None
+ file_key_name: Optional[Optional[str]] = None
+
+
+class ResourceType16(Enum):
+ seed = 'seed'
+
+
+class ParsedSeedNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType16
+ alias: str
+ checksum: FileHash
+ config: Optional[SeedConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'seed',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'quote_columns': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.339838
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ResourceType17(Enum):
+ snapshot = 'snapshot'
+
+
+class SnapshotConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ meta: Optional[Dict[str, Any]] = {}
+ materialized: Optional[str] = 'snapshot'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ full_refresh: Optional[Optional[bool]] = None
+ on_schema_change: Optional[Optional[str]] = 'ignore'
+ strategy: Optional[Optional[str]] = None
+ unique_key: Optional[Optional[str]] = None
+ target_schema: Optional[Optional[str]] = None
+ target_database: Optional[Optional[str]] = None
+ updated_at: Optional[Optional[str]] = None
+ check_cols: Optional[Optional[Union[str, List[str]]]] = None
+
+
+class ResourceType18(Enum):
+ source = 'source'
+
+
+class Quoting(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ database: Optional[Optional[bool]] = None
+ schema_: Optional[Optional[bool]] = Field(None, alias='schema')
+ identifier: Optional[Optional[bool]] = None
+ column: Optional[Optional[bool]] = None
+
+
+class FreshnessMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/sources/v3.json'
+ dbt_version: Optional[str] = '1.0.0rc2'
+ generated_at: Optional[datetime] = '2021-11-30T01:35:47.301745Z'
+ invocation_id: Optional[
+ Optional[str]] = '66dd78f0-c79a-4b06-81b1-99794345df16'
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ runtime_error = 'runtime error'
+
+
+class SourceFreshnessRuntimeError(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ error: Optional[Optional[Union[str, int]]] = None
+ status: Status
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class PeriodEnum(Enum):
+ minute = 'minute'
+ hour = 'hour'
+ day = 'day'
+
+
+class Time(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ count: Optional[Optional[int]] = None
+ period: Optional[Optional[PeriodEnum]] = None
+
+
+class TimingInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ started_at: Optional[Optional[datetime]] = None
+ completed_at: Optional[Optional[datetime]] = None
+
+
+class ExternalPartition(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ name: Optional[str] = ''
+ description: Optional[str] = ''
+ data_type: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+
+
+class SourceConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+
+
+class ResourceType19(Enum):
+ macro = 'macro'
+
+
+class MacroDependsOn(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ macros: Optional[List[str]] = []
+
+
+class MacroArgument(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ type: Optional[Optional[str]] = None
+ description: Optional[str] = ''
+
+
+class ParsedDocumentation(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ block_contents: str
+
+
+class Type(Enum):
+ dashboard = 'dashboard'
+ notebook = 'notebook'
+ analysis = 'analysis'
+ ml = 'ml'
+ application = 'application'
+
+
+class ResourceType20(Enum):
+ model = 'model'
+ analysis = 'analysis'
+ test = 'test'
+ snapshot = 'snapshot'
+ operation = 'operation'
+ seed = 'seed'
+ rpc = 'rpc'
+ sql = 'sql'
+ docs = 'docs'
+ source = 'source'
+ macro = 'macro'
+ exposure = 'exposure'
+ metric = 'metric'
+
+
+class MaturityEnum(Enum):
+ low = 'low'
+ medium = 'medium'
+ high = 'high'
+
+
+class ExposureOwner(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ email: str
+ name: Optional[Optional[str]] = None
+
+
+class ResourceType21(Enum):
+ model = 'model'
+ analysis = 'analysis'
+ test = 'test'
+ snapshot = 'snapshot'
+ operation = 'operation'
+ seed = 'seed'
+ rpc = 'rpc'
+ sql = 'sql'
+ docs = 'docs'
+ source = 'source'
+ macro = 'macro'
+ exposure = 'exposure'
+ metric = 'metric'
+
+
+class MetricFilter(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ field: str
+ operator: str
+ value: str
+
+
+class NodeConfig(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ enabled: Optional[bool] = True
+ alias: Optional[Optional[str]] = None
+ schema_: Optional[Optional[str]] = Field(None, alias='schema')
+ database: Optional[Optional[str]] = None
+ tags: Optional[Union[List[str], str]] = []
+ meta: Optional[Dict[str, Any]] = {}
+ materialized: Optional[str] = 'view'
+ persist_docs: Optional[Dict[str, Any]] = {}
+ post_hook: Optional[List[Hook]] = Field([], alias='post-hook')
+ pre_hook: Optional[List[Hook]] = Field([], alias='pre-hook')
+ quoting: Optional[Dict[str, Any]] = {}
+ column_types: Optional[Dict[str, Any]] = {}
+ full_refresh: Optional[Optional[bool]] = None
+ on_schema_change: Optional[Optional[str]] = 'ignore'
+
+
+class CompiledSingularTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType1
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'test',
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.314477
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledModelNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType2
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.315979
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledHookNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType3
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.317642
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+ index: Optional[Optional[int]] = None
+
+
+class CompiledRPCNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType4
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.319278
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledSqlNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType5
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.321433
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledGenericTestNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ test_metadata: TestMetadata
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType6
+ alias: str
+ checksum: FileHash
+ config: Optional[TestConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': 'dbt_test__audit',
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'test',
+ 'severity': 'ERROR',
+ 'store_failures': None,
+ 'where': None,
+ 'limit': None,
+ 'fail_calc': 'count(*)',
+ 'warn_if': '!= 0',
+ 'error_if': '!= 0',
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.323731
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+ column_name: Optional[Optional[str]] = None
+ file_key_name: Optional[Optional[str]] = None
+
+
+class CompiledSeedNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType7
+ alias: str
+ checksum: FileHash
+ config: Optional[SeedConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'seed',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'quote_columns': None,
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.326388
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class CompiledSnapshotNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType8
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.328031
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class ParsedAnalysisNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType9
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.329485
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ParsedHookNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType11
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.332001
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ index: Optional[Optional[int]] = None
+
+
+class ParsedModelNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType12
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.333348
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ParsedRPCNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType13
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.335125
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ParsedSqlNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType14
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.336567
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class ParsedSnapshotNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType17
+ alias: str
+ checksum: FileHash
+ config: SnapshotConfig
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.3425322
+ config_call_dict: Optional[Dict[str, Any]] = {}
+
+
+class FreshnessThreshold(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ warn_after: Optional[Optional[Time]] = {'count': None, 'period': None}
+ error_after: Optional[Optional[Time]] = {'count': None, 'period': None}
+ filter: Optional[Optional[str]] = None
+
+
+class SourceFreshnessOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ max_loaded_at: datetime
+ snapshotted_at: datetime
+ max_loaded_at_time_ago_in_s: float
+ status: Status1
+ criteria: FreshnessThreshold
+ adapter_response: Dict[str, Any]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
+
+
+class ExternalTable(BaseParserModel):
+
+ class Config:
+ extra = Extra.allow
+
+ location: Optional[Optional[str]] = None
+ file_format: Optional[Optional[str]] = None
+ row_format: Optional[Optional[str]] = None
+ tbl_properties: Optional[Optional[str]] = None
+ partitions: Optional[Optional[List[ExternalPartition]]] = None
+
+
+class ParsedMacro(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ macro_sql: str
+ resource_type: ResourceType19
+ tags: Optional[List[str]] = []
+ depends_on: Optional[MacroDependsOn] = {'macros': []}
+ description: Optional[str] = ''
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ arguments: Optional[List[MacroArgument]] = []
+ created_at: Optional[float] = 1638236147.345993
+
+
+class ParsedExposure(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ type: Type
+ owner: ExposureOwner
+ resource_type: Optional[ResourceType20] = 'exposure'
+ description: Optional[str] = ''
+ maturity: Optional[Optional[MaturityEnum]] = None
+ meta: Optional[Dict[str, Any]] = {}
+ tags: Optional[List[str]] = []
+ url: Optional[Optional[str]] = None
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ created_at: Optional[float] = 1638236147.347234
+
+
+class ParsedMetric(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ model: str
+ name: str
+ description: str
+ label: str
+ type: str
+ sql: Optional[Optional[str]] = None
+ timestamp: Optional[Optional[str]] = None
+ filters: List[MetricFilter]
+ time_grains: List[str]
+ dimensions: List[str]
+ resource_type: Optional[ResourceType21] = 'metric'
+ meta: Optional[Dict[str, Any]] = {}
+ tags: Optional[List[str]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ refs: Optional[List[List[str]]] = []
+ created_at: Optional[float] = 1638236147.348404
+
+
+class CompiledAnalysisNode(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ raw_sql: str
+ compiled: bool
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ fqn: List[str]
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ resource_type: ResourceType
+ alias: str
+ checksum: FileHash
+ config: Optional[NodeConfig] = {
+ 'enabled': True,
+ 'alias': None,
+ 'schema': None,
+ 'database': None,
+ 'tags': [],
+ 'meta': {},
+ 'materialized': 'view',
+ 'persist_docs': {},
+ 'quoting': {},
+ 'column_types': {},
+ 'full_refresh': None,
+ 'on_schema_change': 'ignore',
+ 'post-hook': [],
+ 'pre-hook': [],
+ }
+ tags: Optional[List[str]] = []
+ refs: Optional[List[List[str]]] = []
+ sources: Optional[List[List[str]]] = []
+ depends_on: Optional[DependsOn] = {'macros': [], 'nodes': []}
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ docs: Optional[Docs] = {'show': True}
+ patch_path: Optional[Optional[str]] = None
+ compiled_path: Optional[Optional[str]] = None
+ build_path: Optional[Optional[str]] = None
+ deferred: Optional[bool] = False
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ created_at: Optional[float] = 1638236147.3118432
+ config_call_dict: Optional[Dict[str, Any]] = {}
+ compiled_sql: Optional[Optional[str]] = None
+ extra_ctes_injected: Optional[bool] = False
+ extra_ctes: Optional[List[InjectedCTE]] = []
+ relation_name: Optional[Optional[str]] = None
+
+
+class ParsedSourceDefinition(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ fqn: List[str]
+ database: Optional[Optional[str]] = None
+ schema_: str = Field(..., alias='schema')
+ unique_id: str
+ package_name: str
+ root_path: str
+ path: str
+ original_file_path: str
+ name: str
+ source_name: str
+ source_description: str
+ loader: str
+ identifier: str
+ resource_type: ResourceType18
+ quoting: Optional[Quoting] = {
+ 'database': None,
+ 'schema': None,
+ 'identifier': None,
+ 'column': None,
+ }
+ loaded_at_field: Optional[Optional[str]] = None
+ freshness: Optional[Optional[FreshnessThreshold]] = None
+ external: Optional[Optional[ExternalTable]] = None
+ description: Optional[str] = ''
+ columns: Optional[Dict[str, ColumnInfo]] = {}
+ meta: Optional[Dict[str, Any]] = {}
+ source_meta: Optional[Dict[str, Any]] = {}
+ tags: Optional[List[str]] = []
+ config: Optional[SourceConfig] = {'enabled': True}
+ patch_path: Optional[Optional[str]] = None
+ unrendered_config: Optional[Dict[str, Any]] = {}
+ relation_name: Optional[Optional[str]] = None
+ created_at: Optional[float] = 1638236147.345053
+
+
+class ManifestV4(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: ManifestMetadata = Field(
+ ..., description='Metadata about the manifest')
+ nodes: Dict[
+ str,
+ Union[CompiledAnalysisNode, CompiledSingularTestNode, CompiledModelNode,
+ CompiledHookNode, CompiledRPCNode, CompiledSqlNode,
+ CompiledGenericTestNode, CompiledSeedNode, CompiledSnapshotNode,
+ ParsedAnalysisNode, ParsedSingularTestNode, ParsedHookNode,
+ ParsedModelNode, ParsedRPCNode, ParsedSqlNode,
+ ParsedGenericTestNode, ParsedSeedNode, ParsedSnapshotNode,],
+ ] = Field(
+ ...,
+ description='The nodes defined in the dbt project and its dependencies')
+ sources: Dict[str, ParsedSourceDefinition] = Field(
+ ...,
+ description='The sources defined in the dbt project and its dependencies'
+ )
+ macros: Dict[str, ParsedMacro] = Field(
+ ...,
+ description='The macros defined in the dbt project and its dependencies'
+ )
+ docs: Dict[str, ParsedDocumentation] = Field(
+ ...,
+ description='The docs defined in the dbt project and its dependencies')
+ exposures: Dict[str, ParsedExposure] = Field(
+ ...,
+ description=
+ 'The exposures defined in the dbt project and its dependencies')
+ metrics: Dict[str, ParsedMetric] = Field(
+ ...,
+ description='The metrics defined in the dbt project and its dependencies'
+ )
+ selectors: Dict[str, Any] = Field(
+ ..., description='The selectors defined in selectors.yml')
+ disabled: Optional[Optional[Dict[str, List[Union[
+ CompiledAnalysisNode, CompiledSingularTestNode, CompiledModelNode,
+ CompiledHookNode, CompiledRPCNode, CompiledSqlNode,
+ CompiledGenericTestNode, CompiledSeedNode, CompiledSnapshotNode,
+ ParsedAnalysisNode, ParsedSingularTestNode, ParsedHookNode,
+ ParsedModelNode, ParsedRPCNode, ParsedSqlNode, ParsedGenericTestNode,
+ ParsedSeedNode, ParsedSnapshotNode,
+ ParsedSourceDefinition,]],]]] = Field(
+ None, description='A mapping of the disabled nodes in the target')
+ parent_map: Optional[Optional[Dict[str, List[str]]]] = Field(
+ None, description='A mapping from\xa0child nodes to their dependencies')
+ child_map: Optional[Optional[Dict[str, List[str]]]] = Field(
+ None, description='A mapping from parent nodes to their dependents')
diff --git a/dbt_artifacts_parser/parsers/run_results/__init__.py b/dbt_artifacts_parser/parsers/run_results/__init__.py
new file mode 100644
index 0000000..3cfa191
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/run_results/__init__.py
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/dbt_artifacts_parser/parsers/run_results/run_results_v1.py b/dbt_artifacts_parser/parsers/run_results/run_results_v1.py
new file mode 100644
index 0000000..c4ca563
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/run_results/run_results_v1.py
@@ -0,0 +1,80 @@
+# generated by datamodel-codegen:
+# filename: run-results_v1.json
+# timestamp: 2022-03-01T06:21:36+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+from pydantic import Extra
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class BaseArtifactMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: str
+ dbt_version: Optional[str] = '0.19.0'
+ generated_at: Optional[datetime] = '2021-02-10T04:42:33.678063Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ success = 'success'
+ error = 'error'
+ skipped = 'skipped'
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ error = 'error'
+ fail = 'fail'
+ warn = 'warn'
+
+
+class Status2(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class TimingInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ started_at: Optional[Optional[datetime]] = None
+ completed_at: Optional[Optional[datetime]] = None
+
+
+class RunResultOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ status: Union[Status, Status1, Status2]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
+ message: Optional[Optional[Union[str, int]]] = None
+ adapter_response: Dict[str, Any]
+ unique_id: str
+
+
+class RunResultsV1(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: BaseArtifactMetadata
+ results: List[RunResultOutput]
+ elapsed_time: float
+ args: Optional[Dict[str, Any]] = {}
diff --git a/dbt_artifacts_parser/parsers/run_results/run_results_v2.py b/dbt_artifacts_parser/parsers/run_results/run_results_v2.py
new file mode 100644
index 0000000..b471062
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/run_results/run_results_v2.py
@@ -0,0 +1,81 @@
+# generated by datamodel-codegen:
+# filename: run-results_v2.json
+# timestamp: 2022-03-01T06:21:36+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+from pydantic import Extra
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class BaseArtifactMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: str
+ dbt_version: Optional[str] = '0.20.0rc1'
+ generated_at: Optional[datetime] = '2021-06-07T14:49:01.097134Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ success = 'success'
+ error = 'error'
+ skipped = 'skipped'
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ error = 'error'
+ fail = 'fail'
+ warn = 'warn'
+
+
+class Status2(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class TimingInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ started_at: Optional[Optional[datetime]] = None
+ completed_at: Optional[Optional[datetime]] = None
+
+
+class RunResultOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ status: Union[Status, Status1, Status2]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
+ adapter_response: Dict[str, Any]
+ message: Optional[Optional[str]] = None
+ failures: Optional[Optional[int]] = None
+ unique_id: str
+
+
+class RunResultsV2(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: BaseArtifactMetadata
+ results: List[RunResultOutput]
+ elapsed_time: float
+ args: Optional[Dict[str, Any]] = {}
diff --git a/dbt_artifacts_parser/parsers/run_results/run_results_v3.py b/dbt_artifacts_parser/parsers/run_results/run_results_v3.py
new file mode 100644
index 0000000..65088bd
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/run_results/run_results_v3.py
@@ -0,0 +1,158 @@
+# generated by datamodel-codegen:
+# filename: run-results_v3.json
+# timestamp: 2022-03-01T06:21:37+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+from pydantic import Extra
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class BaseArtifactMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: str
+ dbt_version: Optional[str] = '0.21.0rc1'
+ generated_at: Optional[datetime] = '2021-09-24T13:29:14.315088Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ success = 'success'
+ error = 'error'
+ skipped = 'skipped'
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ error = 'error'
+ fail = 'fail'
+ warn = 'warn'
+ skipped = 'skipped'
+
+
+class Status2(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class TimingInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ started_at: Optional[Optional[datetime]] = None
+ completed_at: Optional[Optional[datetime]] = None
+
+
+class FreshnessMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/sources/v2.json'
+ dbt_version: Optional[str] = '0.21.0rc1'
+ generated_at: Optional[datetime] = '2021-09-24T13:29:14.312598Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status3(Enum):
+ runtime_error = 'runtime error'
+
+
+class SourceFreshnessRuntimeError(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ error: Optional[Optional[Union[str, int]]] = None
+ status: Status3
+
+
+class Status4(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class Period(Enum):
+ minute = 'minute'
+ hour = 'hour'
+ day = 'day'
+
+
+class Time(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ count: int
+ period: Period
+
+
+class RunResultOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ status: Union[Status, Status1, Status2]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
+ adapter_response: Dict[str, Any]
+ message: Optional[Optional[str]] = None
+ failures: Optional[Optional[int]] = None
+ unique_id: str
+
+
+class FreshnessThreshold(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ warn_after: Optional[Optional[Time]] = None
+ error_after: Optional[Optional[Time]] = None
+ filter: Optional[Optional[str]] = None
+
+
+class RunResultsV3(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: BaseArtifactMetadata
+ results: List[RunResultOutput]
+ elapsed_time: float
+ args: Optional[Dict[str, Any]] = {}
+
+
+class SourceFreshnessOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ max_loaded_at: datetime
+ snapshotted_at: datetime
+ max_loaded_at_time_ago_in_s: float
+ status: Status4
+ criteria: FreshnessThreshold
+ adapter_response: Dict[str, Any]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
diff --git a/dbt_artifacts_parser/parsers/run_results/run_results_v4.py b/dbt_artifacts_parser/parsers/run_results/run_results_v4.py
new file mode 100644
index 0000000..9e8453b
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/run_results/run_results_v4.py
@@ -0,0 +1,158 @@
+# generated by datamodel-codegen:
+# filename: run-results_v4.json
+# timestamp: 2022-03-01T06:21:37+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+from pydantic import Extra
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class BaseArtifactMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: str
+ dbt_version: Optional[str] = '1.0.0b2'
+ generated_at: Optional[datetime] = '2021-11-02T20:18:06.799863Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ success = 'success'
+ error = 'error'
+ skipped = 'skipped'
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ error = 'error'
+ fail = 'fail'
+ warn = 'warn'
+ skipped = 'skipped'
+
+
+class Status2(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class TimingInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ started_at: Optional[Optional[datetime]] = None
+ completed_at: Optional[Optional[datetime]] = None
+
+
+class FreshnessMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/sources/v3.json'
+ dbt_version: Optional[str] = '1.0.0b2'
+ generated_at: Optional[datetime] = '2021-11-02T20:18:06.796684Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status3(Enum):
+ runtime_error = 'runtime error'
+
+
+class SourceFreshnessRuntimeError(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ error: Optional[Optional[Union[str, int]]] = None
+ status: Status3
+
+
+class Status4(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class PeriodEnum(Enum):
+ minute = 'minute'
+ hour = 'hour'
+ day = 'day'
+
+
+class Time(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ count: Optional[Optional[int]] = None
+ period: Optional[Optional[PeriodEnum]] = None
+
+
+class RunResultOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ status: Union[Status, Status1, Status2]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
+ adapter_response: Dict[str, Any]
+ message: Optional[Optional[str]] = None
+ failures: Optional[Optional[int]] = None
+ unique_id: str
+
+
+class FreshnessThreshold(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ warn_after: Optional[Optional[Time]] = {'count': None, 'period': None}
+ error_after: Optional[Optional[Time]] = {'count': None, 'period': None}
+ filter: Optional[Optional[str]] = None
+
+
+class RunResultsV4(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: BaseArtifactMetadata
+ results: List[RunResultOutput]
+ elapsed_time: float
+ args: Optional[Dict[str, Any]] = {}
+
+
+class SourceFreshnessOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ max_loaded_at: datetime
+ snapshotted_at: datetime
+ max_loaded_at_time_ago_in_s: float
+ status: Status4
+ criteria: FreshnessThreshold
+ adapter_response: Dict[str, Any]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
diff --git a/dbt_artifacts_parser/parsers/sources/__init__.py b/dbt_artifacts_parser/parsers/sources/__init__.py
new file mode 100644
index 0000000..3cfa191
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/sources/__init__.py
@@ -0,0 +1,16 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
diff --git a/dbt_artifacts_parser/parsers/sources/sources_v1.py b/dbt_artifacts_parser/parsers/sources/sources_v1.py
new file mode 100644
index 0000000..ad98c10
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/sources/sources_v1.py
@@ -0,0 +1,96 @@
+# generated by datamodel-codegen:
+# filename: sources_v1.json
+# timestamp: 2022-03-01T06:21:38+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+from pydantic import Extra
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class FreshnessMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/sources/v1.json'
+ dbt_version: Optional[str] = '0.19.0'
+ generated_at: Optional[datetime] = '2021-02-10T04:42:33.675309Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ runtime_error = 'runtime error'
+
+
+class SourceFreshnessRuntimeError(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ error: Optional[Optional[Union[str, int]]] = None
+ status: Status
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class Period(Enum):
+ minute = 'minute'
+ hour = 'hour'
+ day = 'day'
+
+
+class Time(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ count: int
+ period: Period
+
+
+class FreshnessThreshold(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ warn_after: Optional[Optional[Time]] = None
+ error_after: Optional[Optional[Time]] = None
+ filter: Optional[Optional[str]] = None
+
+
+class SourceFreshnessOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ max_loaded_at: datetime
+ snapshotted_at: datetime
+ max_loaded_at_time_ago_in_s: float
+ status: Status1
+ criteria: FreshnessThreshold
+ adapter_response: Dict[str, Any]
+
+
+class SourcesV1(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: FreshnessMetadata
+ results: List[Union[SourceFreshnessRuntimeError, SourceFreshnessOutput]]
+ elapsed_time: float
diff --git a/dbt_artifacts_parser/parsers/sources/sources_v2.py b/dbt_artifacts_parser/parsers/sources/sources_v2.py
new file mode 100644
index 0000000..ef97931
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/sources/sources_v2.py
@@ -0,0 +1,109 @@
+# generated by datamodel-codegen:
+# filename: sources_v2.json
+# timestamp: 2022-03-01T06:21:38+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+from pydantic import Extra
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class FreshnessMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/sources/v2.json'
+ dbt_version: Optional[str] = '0.21.0rc1'
+ generated_at: Optional[datetime] = '2021-09-24T13:29:14.312598Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ runtime_error = 'runtime error'
+
+
+class SourceFreshnessRuntimeError(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ error: Optional[Optional[Union[str, int]]] = None
+ status: Status
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class Period(Enum):
+ minute = 'minute'
+ hour = 'hour'
+ day = 'day'
+
+
+class Time(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ count: int
+ period: Period
+
+
+class TimingInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ started_at: Optional[Optional[datetime]] = None
+ completed_at: Optional[Optional[datetime]] = None
+
+
+class FreshnessThreshold(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ warn_after: Optional[Optional[Time]] = None
+ error_after: Optional[Optional[Time]] = None
+ filter: Optional[Optional[str]] = None
+
+
+class SourceFreshnessOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ max_loaded_at: datetime
+ snapshotted_at: datetime
+ max_loaded_at_time_ago_in_s: float
+ status: Status1
+ criteria: FreshnessThreshold
+ adapter_response: Dict[str, Any]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
+
+
+class SourcesV2(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: FreshnessMetadata
+ results: List[Union[SourceFreshnessRuntimeError, SourceFreshnessOutput]]
+ elapsed_time: float
diff --git a/dbt_artifacts_parser/parsers/sources/sources_v3.py b/dbt_artifacts_parser/parsers/sources/sources_v3.py
new file mode 100644
index 0000000..3c5a144
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/sources/sources_v3.py
@@ -0,0 +1,109 @@
+# generated by datamodel-codegen:
+# filename: sources_v3.json
+# timestamp: 2022-03-01T06:21:38+00:00
+
+from __future__ import annotations
+
+from datetime import datetime
+from enum import Enum
+from typing import Any, Dict, List, Optional, Union
+
+from pydantic import Extra
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+
+class FreshnessMetadata(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ dbt_schema_version: Optional[
+ str] = 'https://schemas.getdbt.com/dbt/sources/v3.json'
+ dbt_version: Optional[str] = '1.0.0b2'
+ generated_at: Optional[datetime] = '2021-11-02T20:18:06.796684Z'
+ invocation_id: Optional[Optional[str]] = None
+ env: Optional[Dict[str, str]] = {}
+
+
+class Status(Enum):
+ runtime_error = 'runtime error'
+
+
+class SourceFreshnessRuntimeError(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ error: Optional[Optional[Union[str, int]]] = None
+ status: Status
+
+
+class Status1(Enum):
+ pass_ = 'pass'
+ warn = 'warn'
+ error = 'error'
+ runtime_error = 'runtime error'
+
+
+class PeriodEnum(Enum):
+ minute = 'minute'
+ hour = 'hour'
+ day = 'day'
+
+
+class Time(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ count: Optional[Optional[int]] = None
+ period: Optional[Optional[PeriodEnum]] = None
+
+
+class TimingInfo(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ name: str
+ started_at: Optional[Optional[datetime]] = None
+ completed_at: Optional[Optional[datetime]] = None
+
+
+class FreshnessThreshold(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ warn_after: Optional[Optional[Time]] = {'count': None, 'period': None}
+ error_after: Optional[Optional[Time]] = {'count': None, 'period': None}
+ filter: Optional[Optional[str]] = None
+
+
+class SourceFreshnessOutput(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ unique_id: str
+ max_loaded_at: datetime
+ snapshotted_at: datetime
+ max_loaded_at_time_ago_in_s: float
+ status: Status1
+ criteria: FreshnessThreshold
+ adapter_response: Dict[str, Any]
+ timing: List[TimingInfo]
+ thread_id: str
+ execution_time: float
+
+
+class SourcesV3(BaseParserModel):
+
+ class Config:
+ extra = Extra.forbid
+
+ metadata: FreshnessMetadata
+ results: List[Union[SourceFreshnessRuntimeError, SourceFreshnessOutput]]
+ elapsed_time: float
diff --git a/dbt_artifacts_parser/parsers/utils.py b/dbt_artifacts_parser/parsers/utils.py
new file mode 100644
index 0000000..a5eed15
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/utils.py
@@ -0,0 +1,67 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Type
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+from dbt_artifacts_parser.parsers.version_map import ArtifactTypes
+
+
+def get_dbt_schema_version(artifact_json: dict) -> str:
+ """Get the dbt schema version from the dbt artifact JSON
+
+ Args:
+ artifact_json (dict): dbt artifacts JSON
+
+ Returns:
+ (str): dbt schema version from 'metadata.dbt_schema_version'
+ """
+ if "metadata" not in artifact_json:
+ raise ValueError("'metadata' doesn't exist.")
+ if "dbt_schema_version" not in artifact_json["metadata"]:
+ raise ValueError("'metadata.dbt_schema_version' doesnt' exist.")
+ return artifact_json["metadata"]["dbt_schema_version"]
+
+
+def get_artifact_type_by_id(schema_version: str) -> ArtifactTypes:
+ """Get artifact information by schema version
+
+ Args:
+ schema_version: dbt schema version
+
+ Returns:
+ ArtifactsTypes
+ """
+ for artifact_type in ArtifactTypes:
+ if schema_version == artifact_type.value.dbt_schema_version:
+ return artifact_type
+ raise ValueError(f"no such schema version: {schema_version}")
+
+
+def get_model_class(artifact_type: ArtifactTypes) -> Type[BaseParserModel]:
+ """Get the model class
+
+ Args:
+ artifact_type (ArtifactTypes): artifact type
+
+ Returns:
+ the model class
+ """
+ for artifact_type_ in ArtifactTypes:
+ if artifact_type == artifact_type_:
+ return artifact_type_.value.model_class
+ raise ValueError(f"No such an artifact {artifact_type}")
diff --git a/dbt_artifacts_parser/parsers/version_map.py b/dbt_artifacts_parser/parsers/version_map.py
new file mode 100644
index 0000000..7c355c0
--- /dev/null
+++ b/dbt_artifacts_parser/parsers/version_map.py
@@ -0,0 +1,75 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+from typing import Type
+from enum import Enum
+from dataclasses import dataclass
+
+from dbt_artifacts_parser.parsers.base import BaseParserModel
+
+from dbt_artifacts_parser.parsers.catalog.catalog_v1 import CatalogV1
+
+from dbt_artifacts_parser.parsers.manifest.manifest_v1 import ManifestV1
+from dbt_artifacts_parser.parsers.manifest.manifest_v2 import ManifestV2
+from dbt_artifacts_parser.parsers.manifest.manifest_v3 import ManifestV3
+from dbt_artifacts_parser.parsers.manifest.manifest_v4 import ManifestV4
+
+from dbt_artifacts_parser.parsers.run_results.run_results_v1 import RunResultsV1
+from dbt_artifacts_parser.parsers.run_results.run_results_v2 import RunResultsV2
+from dbt_artifacts_parser.parsers.run_results.run_results_v3 import RunResultsV3
+from dbt_artifacts_parser.parsers.run_results.run_results_v4 import RunResultsV4
+
+from dbt_artifacts_parser.parsers.sources.sources_v1 import SourcesV1
+from dbt_artifacts_parser.parsers.sources.sources_v2 import SourcesV2
+from dbt_artifacts_parser.parsers.sources.sources_v3 import SourcesV3
+
+
+@dataclass
+class ArtifactType:
+ dbt_schema_version: str
+ model_class: Type[BaseParserModel]
+
+
+class ArtifactTypes(Enum):
+ """Dbt artifacts types"""
+ # Catalog
+ CATALOG_V1 = ArtifactType("https://schemas.getdbt.com/dbt/catalog/v1.json",
+ CatalogV1)
+ # Manifest
+ MANIFEST_V1 = ArtifactType(
+ "https://schemas.getdbt.com/dbt/manifest/v1.json", ManifestV1)
+ MANIFEST_V2 = ArtifactType(
+ "https://schemas.getdbt.com/dbt/manifest/v2.json", ManifestV2)
+ MANIFEST_V3 = ArtifactType(
+ "https://schemas.getdbt.com/dbt/manifest/v3.json", ManifestV3)
+ MANIFEST_V4 = ArtifactType(
+ "https://schemas.getdbt.com/dbt/manifest/v4.json", ManifestV4)
+ # RunResults
+ RUN_RESULTS_V1 = ArtifactType(
+ "https://schemas.getdbt.com/dbt/run-results/v1.json", RunResultsV1)
+ RUN_RESULTS_V2 = ArtifactType(
+ "https://schemas.getdbt.com/dbt/run-results/v2.json", RunResultsV2)
+ RUN_RESULTS_V3 = ArtifactType(
+ "https://schemas.getdbt.com/dbt/run-results/v3.json", RunResultsV3)
+ RUN_RESULTS_V4 = ArtifactType(
+ "https://schemas.getdbt.com/dbt/run-results/v4.json", RunResultsV4)
+ # Sources
+ SOURCES_V1 = ArtifactType("https://schemas.getdbt.com/dbt/sources/v1.json",
+ SourcesV1)
+ SOURCES_V2 = ArtifactType("https://schemas.getdbt.com/dbt/sources/v2.json",
+ SourcesV2)
+ SOURCES_V3 = ArtifactType("https://schemas.getdbt.com/dbt/sources/v3.json",
+ SourcesV3)
diff --git a/dbt_artifacts_parser/resources/catalog/catalog_v1.json b/dbt_artifacts_parser/resources/catalog/catalog_v1.json
new file mode 100644
index 0000000..d2e52f0
--- /dev/null
+++ b/dbt_artifacts_parser/resources/catalog/catalog_v1.json
@@ -0,0 +1,249 @@
+{
+ "title": "Catalog",
+ "type": "object",
+ "required": [
+ "metadata",
+ "nodes",
+ "sources"
+ ],
+ "properties": {
+ "metadata": {
+ "$ref": "#/definitions/CatalogMetadata"
+ },
+ "nodes": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/CatalogTable"
+ }
+ },
+ "sources": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/CatalogTable"
+ }
+ },
+ "errors": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CatalogArtifact(metadata: dbt.contracts.results.CatalogMetadata, nodes: Dict[str, dbt.contracts.results.CatalogTable], sources: Dict[str, dbt.contracts.results.CatalogTable], errors: Union[List[str], NoneType], _compile_results: Union[Any, NoneType] = None)",
+ "definitions": {
+ "CatalogMetadata": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "dbt_schema_version": {
+ "type": "string",
+ "default": "https://schemas.getdbt.com/dbt/catalog/v1.json"
+ },
+ "dbt_version": {
+ "type": "string",
+ "default": "0.19.0"
+ },
+ "generated_at": {
+ "type": "string",
+ "format": "date-time",
+ "default": "2021-02-10T04:42:33.680487Z"
+ },
+ "invocation_id": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "env": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "description": "CatalogMetadata(dbt_schema_version: str = , dbt_version: str = '0.19.0', generated_at: datetime.datetime = , invocation_id: Union[str, NoneType] = , env: Dict[str, str] = )"
+ },
+ "CatalogTable": {
+ "type": "object",
+ "required": [
+ "metadata",
+ "columns",
+ "stats"
+ ],
+ "properties": {
+ "metadata": {
+ "$ref": "#/definitions/TableMetadata"
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnMetadata"
+ }
+ },
+ "stats": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/StatsItem"
+ }
+ },
+ "unique_id": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CatalogTable(metadata: dbt.contracts.results.TableMetadata, columns: Dict[str, dbt.contracts.results.ColumnMetadata], stats: Dict[str, dbt.contracts.results.StatsItem], unique_id: Union[str, NoneType] = None)"
+ },
+ "TableMetadata": {
+ "type": "object",
+ "required": [
+ "type",
+ "schema",
+ "name"
+ ],
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "comment": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "owner": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "TableMetadata(type: str, database: Union[str, NoneType], schema: str, name: str, comment: Union[str, NoneType], owner: Union[str, NoneType])"
+ },
+ "ColumnMetadata": {
+ "type": "object",
+ "required": [
+ "type",
+ "index",
+ "name"
+ ],
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "comment": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "index": {
+ "type": "integer"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "description": "ColumnMetadata(type: str, comment: Union[str, NoneType], index: int, name: str)"
+ },
+ "StatsItem": {
+ "type": "object",
+ "required": [
+ "id",
+ "label",
+ "include"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "value": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "include": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "description": "StatsItem(id: str, label: str, value: Union[bool, str, float, NoneType], description: Union[str, NoneType], include: bool)"
+ }
+ },
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "https://schemas.getdbt.com/dbt/catalog/v1.json"
+}
diff --git a/dbt_artifacts_parser/resources/manifest/manifest_v1.json b/dbt_artifacts_parser/resources/manifest/manifest_v1.json
new file mode 100644
index 0000000..69eef10
--- /dev/null
+++ b/dbt_artifacts_parser/resources/manifest/manifest_v1.json
@@ -0,0 +1,5074 @@
+{
+ "title": "Manifest",
+ "type": "object",
+ "required": [
+ "metadata",
+ "nodes",
+ "sources",
+ "macros",
+ "docs",
+ "exposures",
+ "selectors"
+ ],
+ "properties": {
+ "metadata": {
+ "$ref": "#/definitions/ManifestMetadata",
+ "description": "Metadata about the manifest"
+ },
+ "nodes": {
+ "type": "object",
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/CompiledAnalysisNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledDataTestNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledModelNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledHookNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledRPCNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSchemaTestNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSeedNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSnapshotNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedAnalysisNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedDataTestNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedHookNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedModelNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedRPCNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSchemaTestNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSeedNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSnapshotNode"
+ }
+ ]
+ },
+ "description": "The nodes defined in the dbt project and its dependencies"
+ },
+ "sources": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ParsedSourceDefinition"
+ },
+ "description": "The sources defined in the dbt project and its dependencies"
+ },
+ "macros": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ParsedMacro"
+ },
+ "description": "The macros defined in the dbt project and its dependencies"
+ },
+ "docs": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ParsedDocumentation"
+ },
+ "description": "The docs defined in the dbt project and its dependencies"
+ },
+ "exposures": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ParsedExposure"
+ },
+ "description": "The exposures defined in the dbt project and its dependencies"
+ },
+ "selectors": {
+ "type": "object",
+ "description": "The selectors defined in selectors.yml"
+ },
+ "disabled": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/CompiledAnalysisNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledDataTestNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledModelNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledHookNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledRPCNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSchemaTestNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSeedNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSnapshotNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedAnalysisNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedDataTestNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedHookNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedModelNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedRPCNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSchemaTestNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSeedNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSnapshotNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSourceDefinition"
+ }
+ ]
+ }
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A list of the disabled nodes in the target"
+ },
+ "parent_map": {
+ "oneOf": [
+ {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A mapping from\u00a0child nodes to their dependencies"
+ },
+ "child_map": {
+ "oneOf": [
+ {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A mapping from parent nodes to their dependents"
+ }
+ },
+ "additionalProperties": false,
+ "description": "WritableManifest(metadata: dbt.contracts.graph.manifest.ManifestMetadata, nodes: Mapping[str, Union[dbt.contracts.graph.compiled.CompiledAnalysisNode, dbt.contracts.graph.compiled.CompiledDataTestNode, dbt.contracts.graph.compiled.CompiledModelNode, dbt.contracts.graph.compiled.CompiledHookNode, dbt.contracts.graph.compiled.CompiledRPCNode, dbt.contracts.graph.compiled.CompiledSchemaTestNode, dbt.contracts.graph.compiled.CompiledSeedNode, dbt.contracts.graph.compiled.CompiledSnapshotNode, dbt.contracts.graph.parsed.ParsedAnalysisNode, dbt.contracts.graph.parsed.ParsedDataTestNode, dbt.contracts.graph.parsed.ParsedHookNode, dbt.contracts.graph.parsed.ParsedModelNode, dbt.contracts.graph.parsed.ParsedRPCNode, dbt.contracts.graph.parsed.ParsedSchemaTestNode, dbt.contracts.graph.parsed.ParsedSeedNode, dbt.contracts.graph.parsed.ParsedSnapshotNode]], sources: Mapping[str, dbt.contracts.graph.parsed.ParsedSourceDefinition], macros: Mapping[str, dbt.contracts.graph.parsed.ParsedMacro], docs: Mapping[str, dbt.contracts.graph.parsed.ParsedDocumentation], exposures: Mapping[str, dbt.contracts.graph.parsed.ParsedExposure], selectors: Mapping[str, Any], disabled: Union[List[Union[dbt.contracts.graph.compiled.CompiledAnalysisNode, dbt.contracts.graph.compiled.CompiledDataTestNode, dbt.contracts.graph.compiled.CompiledModelNode, dbt.contracts.graph.compiled.CompiledHookNode, dbt.contracts.graph.compiled.CompiledRPCNode, dbt.contracts.graph.compiled.CompiledSchemaTestNode, dbt.contracts.graph.compiled.CompiledSeedNode, dbt.contracts.graph.compiled.CompiledSnapshotNode, dbt.contracts.graph.parsed.ParsedAnalysisNode, dbt.contracts.graph.parsed.ParsedDataTestNode, dbt.contracts.graph.parsed.ParsedHookNode, dbt.contracts.graph.parsed.ParsedModelNode, dbt.contracts.graph.parsed.ParsedRPCNode, dbt.contracts.graph.parsed.ParsedSchemaTestNode, dbt.contracts.graph.parsed.ParsedSeedNode, dbt.contracts.graph.parsed.ParsedSnapshotNode, dbt.contracts.graph.parsed.ParsedSourceDefinition]], NoneType], parent_map: Union[Dict[str, List[str]], NoneType], child_map: Union[Dict[str, List[str]], NoneType])",
+ "definitions": {
+ "ManifestMetadata": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "dbt_schema_version": {
+ "type": "string",
+ "default": "https://schemas.getdbt.com/dbt/manifest/v1.json"
+ },
+ "dbt_version": {
+ "type": "string",
+ "default": "0.19.0"
+ },
+ "generated_at": {
+ "type": "string",
+ "format": "date-time",
+ "default": "2021-02-10T04:42:33.683996Z"
+ },
+ "invocation_id": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "env": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "default": {}
+ },
+ "project_id": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A unique identifier for the project"
+ },
+ "user_id": {
+ "oneOf": [
+ {
+ "type": "string",
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A unique identifier for the user"
+ },
+ "send_anonymous_usage_stats": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Whether dbt is configured to send anonymous usage statistics"
+ },
+ "adapter_type": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The type name of the adapter"
+ }
+ },
+ "additionalProperties": false,
+ "description": "Metadata for the manifest."
+ },
+ "CompiledAnalysisNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "analysis"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledAnalysisNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None)"
+ },
+ "FileHash": {
+ "type": "object",
+ "required": [
+ "name",
+ "checksum"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "checksum": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "description": "FileHash(name: str, checksum: str)"
+ },
+ "NodeConfig": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true
+ },
+ "materialized": {
+ "type": "string",
+ "default": "view"
+ },
+ "persist_docs": {
+ "type": "object",
+ "default": {}
+ },
+ "post-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "pre-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "vars": {
+ "type": "object",
+ "default": {}
+ },
+ "quoting": {
+ "type": "object",
+ "default": {}
+ },
+ "column_types": {
+ "type": "object",
+ "default": {}
+ },
+ "alias": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "default": []
+ },
+ "full_refresh": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": true,
+ "description": "NodeConfig(*args, **kwds)"
+ },
+ "Hook": {
+ "type": "object",
+ "required": [
+ "sql"
+ ],
+ "properties": {
+ "sql": {
+ "type": "string"
+ },
+ "transaction": {
+ "type": "boolean",
+ "default": true
+ },
+ "index": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "Hook(sql: str, transaction: bool = True, index: Union[int, NoneType] = None)"
+ },
+ "DependsOn": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "macros": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "nodes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": false,
+ "description": "DependsOn(macros: List[str] = , nodes: List[str] = )"
+ },
+ "ColumnInfo": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "data_type": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quote": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": true,
+ "description": "ColumnInfo(name: str, description: str = '', meta: Dict[str, Any] = , data_type: Union[str, NoneType] = None, quote: Union[bool, NoneType] = None, tags: List[str] = , _extra: Dict[str, Any] = )"
+ },
+ "Docs": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "show": {
+ "type": "boolean",
+ "default": true
+ }
+ },
+ "additionalProperties": false,
+ "description": "Docs(show: bool = True)"
+ },
+ "InjectedCTE": {
+ "type": "object",
+ "required": [
+ "id",
+ "sql"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "sql": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "description": "InjectedCTE(id: str, sql: str)"
+ },
+ "CompiledDataTestNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "test"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/TestConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "test",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "severity": "ERROR"
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledDataTestNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.TestConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None)"
+ },
+ "TestConfig": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true
+ },
+ "materialized": {
+ "type": "string",
+ "default": "test"
+ },
+ "persist_docs": {
+ "type": "object",
+ "default": {}
+ },
+ "post-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "pre-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "vars": {
+ "type": "object",
+ "default": {}
+ },
+ "quoting": {
+ "type": "object",
+ "default": {}
+ },
+ "column_types": {
+ "type": "object",
+ "default": {}
+ },
+ "alias": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "default": []
+ },
+ "full_refresh": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "severity": {
+ "type": "string",
+ "pattern": "^([Ww][Aa][Rr][Nn]|[Ee][Rr][Rr][Oo][Rr])$",
+ "default": "ERROR"
+ }
+ },
+ "additionalProperties": true,
+ "description": "TestConfig(*args, **kwds)"
+ },
+ "CompiledModelNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "model"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledModelNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None)"
+ },
+ "CompiledHookNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "operation"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "index": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledHookNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None, index: Union[int, NoneType] = None)"
+ },
+ "CompiledRPCNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "rpc"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledRPCNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None)"
+ },
+ "CompiledSchemaTestNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "test_metadata",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "test_metadata": {
+ "$ref": "#/definitions/TestMetadata"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "test"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/TestConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "test",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "severity": "ERROR"
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "column_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledSchemaTestNode(raw_sql: str, test_metadata: dbt.contracts.graph.parsed.TestMetadata, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.TestConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None, column_name: Union[str, NoneType] = None)"
+ },
+ "TestMetadata": {
+ "type": "object",
+ "required": [
+ "name",
+ "kwargs"
+ ],
+ "properties": {
+ "namespace": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "kwargs": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "description": "TestMetadata(namespace: Union[str, NoneType], name: str, kwargs: Dict[str, Any])"
+ },
+ "CompiledSeedNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "seed"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/SeedConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "seed",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "quote_columns": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledSeedNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.SeedConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None)"
+ },
+ "SeedConfig": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true
+ },
+ "materialized": {
+ "type": "string",
+ "default": "seed"
+ },
+ "persist_docs": {
+ "type": "object",
+ "default": {}
+ },
+ "post-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "pre-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "vars": {
+ "type": "object",
+ "default": {}
+ },
+ "quoting": {
+ "type": "object",
+ "default": {}
+ },
+ "column_types": {
+ "type": "object",
+ "default": {}
+ },
+ "alias": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "default": []
+ },
+ "full_refresh": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quote_columns": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": true,
+ "description": "SeedConfig(*args, **kwds)"
+ },
+ "CompiledSnapshotNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "snapshot"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledSnapshotNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None)"
+ },
+ "ParsedAnalysisNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "analysis"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedAnalysisNode(raw_sql: str, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = )"
+ },
+ "ParsedDataTestNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "test"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/TestConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "test",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "severity": "ERROR"
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedDataTestNode(raw_sql: str, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.TestConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = )"
+ },
+ "ParsedHookNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "operation"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "index": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedHookNode(raw_sql: str, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , index: Union[int, NoneType] = None)"
+ },
+ "ParsedModelNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "model"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedModelNode(raw_sql: str, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = )"
+ },
+ "ParsedRPCNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "rpc"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedRPCNode(raw_sql: str, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = )"
+ },
+ "ParsedSchemaTestNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "test_metadata",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "test_metadata": {
+ "$ref": "#/definitions/TestMetadata"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "test"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/TestConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "test",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "severity": "ERROR"
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "column_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedSchemaTestNode(raw_sql: str, test_metadata: dbt.contracts.graph.parsed.TestMetadata, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.TestConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , column_name: Union[str, NoneType] = None)"
+ },
+ "ParsedSeedNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "seed"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/SeedConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "seed",
+ "persist_docs": {},
+ "post-hook": [],
+ "pre-hook": [],
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "quote_columns": null
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedSeedNode(raw_sql: str, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.SeedConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = )"
+ },
+ "ParsedSnapshotNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum",
+ "config"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "snapshot"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/TimestampSnapshotConfig"
+ },
+ {
+ "$ref": "#/definitions/CheckSnapshotConfig"
+ },
+ {
+ "$ref": "#/definitions/GenericSnapshotConfig"
+ }
+ ]
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedSnapshotNode(raw_sql: str, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: Union[ForwardRef('TimestampSnapshotConfig'), ForwardRef('CheckSnapshotConfig'), ForwardRef('GenericSnapshotConfig')], tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = )"
+ },
+ "TimestampSnapshotConfig": {
+ "type": "object",
+ "required": [
+ "unique_key",
+ "target_schema",
+ "strategy",
+ "updated_at"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true
+ },
+ "materialized": {
+ "type": "string",
+ "default": "snapshot"
+ },
+ "persist_docs": {
+ "type": "object",
+ "default": {}
+ },
+ "post-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "pre-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "vars": {
+ "type": "object",
+ "default": {}
+ },
+ "quoting": {
+ "type": "object",
+ "default": {}
+ },
+ "column_types": {
+ "type": "object",
+ "default": {}
+ },
+ "alias": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "default": []
+ },
+ "full_refresh": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "unique_key": {
+ "type": "string"
+ },
+ "target_schema": {
+ "type": "string"
+ },
+ "target_database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "strategy": {
+ "type": "string",
+ "enum": [
+ "timestamp"
+ ]
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": true,
+ "description": "TimestampSnapshotConfig(*args, **kwds)"
+ },
+ "CheckSnapshotConfig": {
+ "type": "object",
+ "required": [
+ "unique_key",
+ "target_schema",
+ "strategy",
+ "check_cols"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true
+ },
+ "materialized": {
+ "type": "string",
+ "default": "snapshot"
+ },
+ "persist_docs": {
+ "type": "object",
+ "default": {}
+ },
+ "post-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "pre-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "vars": {
+ "type": "object",
+ "default": {}
+ },
+ "quoting": {
+ "type": "object",
+ "default": {}
+ },
+ "column_types": {
+ "type": "object",
+ "default": {}
+ },
+ "alias": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "default": []
+ },
+ "full_refresh": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "unique_key": {
+ "type": "string"
+ },
+ "target_schema": {
+ "type": "string"
+ },
+ "target_database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "strategy": {
+ "type": "string",
+ "enum": [
+ "check"
+ ]
+ },
+ "check_cols": {
+ "oneOf": [
+ {
+ "type": "string",
+ "enum": [
+ "all"
+ ]
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ }
+ },
+ "additionalProperties": true,
+ "description": "CheckSnapshotConfig(*args, **kwds)"
+ },
+ "GenericSnapshotConfig": {
+ "type": "object",
+ "required": [
+ "unique_key",
+ "target_schema",
+ "strategy"
+ ],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true
+ },
+ "materialized": {
+ "type": "string",
+ "default": "snapshot"
+ },
+ "persist_docs": {
+ "type": "object",
+ "default": {}
+ },
+ "post-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "pre-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "vars": {
+ "type": "object",
+ "default": {}
+ },
+ "quoting": {
+ "type": "object",
+ "default": {}
+ },
+ "column_types": {
+ "type": "object",
+ "default": {}
+ },
+ "alias": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "default": []
+ },
+ "full_refresh": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "unique_key": {
+ "type": "string"
+ },
+ "target_schema": {
+ "type": "string"
+ },
+ "target_database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "strategy": {
+ "allOf": [
+ {
+ "type": "string"
+ },
+ {
+ "not": {
+ "type": "string",
+ "enum": [
+ "timestamp"
+ ]
+ }
+ },
+ {
+ "not": {
+ "type": "string",
+ "enum": [
+ "check"
+ ]
+ }
+ }
+ ]
+ }
+ },
+ "additionalProperties": true,
+ "description": "GenericSnapshotConfig(*args, **kwds)"
+ },
+ "ParsedSourceDefinition": {
+ "type": "object",
+ "required": [
+ "fqn",
+ "schema",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "source_name",
+ "source_description",
+ "loader",
+ "identifier",
+ "resource_type"
+ ],
+ "properties": {
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "source_name": {
+ "type": "string"
+ },
+ "source_description": {
+ "type": "string"
+ },
+ "loader": {
+ "type": "string"
+ },
+ "identifier": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "source"
+ ]
+ },
+ "quoting": {
+ "$ref": "#/definitions/Quoting",
+ "default": {
+ "database": null,
+ "schema": null,
+ "identifier": null,
+ "column": null
+ }
+ },
+ "loaded_at_field": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "freshness": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/FreshnessThreshold"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "external": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/ExternalTable"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "source_meta": {
+ "type": "object",
+ "default": {}
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "config": {
+ "$ref": "#/definitions/SourceConfig",
+ "default": {
+ "enabled": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedSourceDefinition(fqn: List[str], database: Union[str, NoneType], schema: str, unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, source_name: str, source_description: str, loader: str, identifier: str, resource_type: dbt.node_types.NodeType, quoting: dbt.contracts.graph.unparsed.Quoting = , loaded_at_field: Union[str, NoneType] = None, freshness: Union[dbt.contracts.graph.unparsed.FreshnessThreshold, NoneType] = None, external: Union[dbt.contracts.graph.unparsed.ExternalTable, NoneType] = None, description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , source_meta: Dict[str, Any] = , tags: List[str] = , config: dbt.contracts.graph.model_config.SourceConfig = , patch_path: Union[pathlib.Path, NoneType] = None, unrendered_config: Dict[str, Any] = , relation_name: Union[str, NoneType] = None)"
+ },
+ "Quoting": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "database": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "identifier": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "column": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "Quoting(database: Union[bool, NoneType] = None, schema: Union[bool, NoneType] = None, identifier: Union[bool, NoneType] = None, column: Union[bool, NoneType] = None)"
+ },
+ "FreshnessThreshold": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "warn_after": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/Time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "error_after": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/Time"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "filter": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "FreshnessThreshold(warn_after: Union[dbt.contracts.graph.unparsed.Time, NoneType] = None, error_after: Union[dbt.contracts.graph.unparsed.Time, NoneType] = None, filter: Union[str, NoneType] = None)"
+ },
+ "FreshnessMetadata": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "dbt_schema_version": {
+ "type": "string",
+ "default": "https://schemas.getdbt.com/dbt/sources/v1.json"
+ },
+ "dbt_version": {
+ "type": "string",
+ "default": "0.19.0"
+ },
+ "generated_at": {
+ "type": "string",
+ "format": "date-time",
+ "default": "2021-02-10T04:42:33.675309Z"
+ },
+ "invocation_id": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "env": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "default": {}
+ }
+ },
+ "additionalProperties": false,
+ "description": "FreshnessMetadata(dbt_schema_version: str = , dbt_version: str = '0.19.0', generated_at: datetime.datetime = , invocation_id: Union[str, NoneType] = , env: Dict[str, str] = )"
+ },
+ "SourceFreshnessRuntimeError": {
+ "type": "object",
+ "required": [
+ "unique_id",
+ "status"
+ ],
+ "properties": {
+ "unique_id": {
+ "type": "string"
+ },
+ "error": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "runtime error"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "SourceFreshnessRuntimeError(unique_id: str, error: Union[str, int, NoneType], status: dbt.contracts.results.FreshnessErrorEnum)"
+ },
+ "SourceFreshnessOutput": {
+ "type": "object",
+ "required": [
+ "unique_id",
+ "max_loaded_at",
+ "snapshotted_at",
+ "max_loaded_at_time_ago_in_s",
+ "status",
+ "criteria",
+ "adapter_response"
+ ],
+ "properties": {
+ "unique_id": {
+ "type": "string"
+ },
+ "max_loaded_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "snapshotted_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "max_loaded_at_time_ago_in_s": {
+ "type": "number"
+ },
+ "status": {
+ "type": "string",
+ "enum": [
+ "pass",
+ "warn",
+ "error",
+ "runtime error"
+ ]
+ },
+ "criteria": {
+ "$ref": "#/definitions/FreshnessThreshold"
+ },
+ "adapter_response": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "description": "SourceFreshnessOutput(unique_id: str, max_loaded_at: datetime.datetime, snapshotted_at: datetime.datetime, max_loaded_at_time_ago_in_s: float, status: dbt.contracts.results.FreshnessStatus, criteria: dbt.contracts.graph.unparsed.FreshnessThreshold, adapter_response: Dict[str, Any])"
+ },
+ "Time": {
+ "type": "object",
+ "required": [
+ "count",
+ "period"
+ ],
+ "properties": {
+ "count": {
+ "type": "integer"
+ },
+ "period": {
+ "type": "string",
+ "enum": [
+ "minute",
+ "hour",
+ "day"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "Time(count: int, period: dbt.contracts.graph.unparsed.TimePeriod)"
+ },
+ "ExternalTable": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "location": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "file_format": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "row_format": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tbl_properties": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "partitions": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ExternalPartition"
+ }
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": true,
+ "description": "ExternalTable(_extra: Dict[str, Any] = , location: Union[str, NoneType] = None, file_format: Union[str, NoneType] = None, row_format: Union[str, NoneType] = None, tbl_properties: Union[str, NoneType] = None, partitions: Union[List[dbt.contracts.graph.unparsed.ExternalPartition], NoneType] = None)"
+ },
+ "ExternalPartition": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "name": {
+ "type": "string",
+ "default": ""
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "data_type": {
+ "type": "string",
+ "default": ""
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ }
+ },
+ "additionalProperties": true,
+ "description": "ExternalPartition(_extra: Dict[str, Any] = , name: str = '', description: str = '', data_type: str = '', meta: Dict[str, Any] = )"
+ },
+ "SourceConfig": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true
+ }
+ },
+ "additionalProperties": true,
+ "description": "SourceConfig(*args, **kwds)"
+ },
+ "ParsedMacro": {
+ "type": "object",
+ "required": [
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "macro_sql",
+ "resource_type"
+ ],
+ "properties": {
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "macro_sql": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "macro"
+ ]
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/MacroDependsOn",
+ "default": {
+ "macros": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "arguments": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/MacroArgument"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedMacro(unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, macro_sql: str, resource_type: dbt.node_types.NodeType, tags: List[str] = , depends_on: dbt.contracts.graph.parsed.MacroDependsOn = , description: str = '', meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, arguments: List[dbt.contracts.graph.unparsed.MacroArgument] = )"
+ },
+ "MacroDependsOn": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "macros": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": false,
+ "description": "MacroDependsOn(macros: List[str] = )"
+ },
+ "MacroArgument": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ }
+ },
+ "additionalProperties": false,
+ "description": "MacroArgument(name: str, type: Union[str, NoneType] = None, description: str = '')"
+ },
+ "ParsedDocumentation": {
+ "type": "object",
+ "required": [
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "block_contents"
+ ],
+ "properties": {
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "block_contents": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedDocumentation(unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, block_contents: str)"
+ },
+ "ParsedExposure": {
+ "type": "object",
+ "required": [
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "type",
+ "owner"
+ ],
+ "properties": {
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "enum": [
+ "dashboard",
+ "notebook",
+ "analysis",
+ "ml",
+ "application"
+ ]
+ },
+ "owner": {
+ "$ref": "#/definitions/ExposureOwner"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "model",
+ "analysis",
+ "test",
+ "snapshot",
+ "operation",
+ "seed",
+ "rpc",
+ "docs",
+ "source",
+ "macro",
+ "exposure"
+ ],
+ "default": "exposure"
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "maturity": {
+ "oneOf": [
+ {
+ "type": "string",
+ "enum": [
+ "low",
+ "medium",
+ "high"
+ ]
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "url": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": false,
+ "description": "ParsedExposure(fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, type: dbt.contracts.graph.unparsed.ExposureType, owner: dbt.contracts.graph.unparsed.ExposureOwner, resource_type: dbt.node_types.NodeType = , description: str = '', maturity: Union[dbt.contracts.graph.unparsed.MaturityType, NoneType] = None, url: Union[str, NoneType] = None, depends_on: dbt.contracts.graph.parsed.DependsOn = , refs: List[List[str]] = , sources: List[List[str]] = )"
+ },
+ "ExposureOwner": {
+ "type": "object",
+ "required": [
+ "email"
+ ],
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "ExposureOwner(email: str, name: Union[str, NoneType] = None)"
+ }
+ },
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "https://schemas.getdbt.com/dbt/manifest/v1.json"
+}
diff --git a/dbt_artifacts_parser/resources/manifest/manifest_v2.json b/dbt_artifacts_parser/resources/manifest/manifest_v2.json
new file mode 100644
index 0000000..75a51af
--- /dev/null
+++ b/dbt_artifacts_parser/resources/manifest/manifest_v2.json
@@ -0,0 +1,5128 @@
+{
+ "title": "Manifest",
+ "type": "object",
+ "required": [
+ "metadata",
+ "nodes",
+ "sources",
+ "macros",
+ "docs",
+ "exposures",
+ "selectors"
+ ],
+ "properties": {
+ "metadata": {
+ "$ref": "#/definitions/ManifestMetadata",
+ "description": "Metadata about the manifest"
+ },
+ "nodes": {
+ "type": "object",
+ "additionalProperties": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/CompiledAnalysisNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledDataTestNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledModelNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledHookNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledRPCNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSchemaTestNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSeedNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSnapshotNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedAnalysisNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedDataTestNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedHookNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedModelNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedRPCNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSchemaTestNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSeedNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSnapshotNode"
+ }
+ ]
+ },
+ "description": "The nodes defined in the dbt project and its dependencies"
+ },
+ "sources": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ParsedSourceDefinition"
+ },
+ "description": "The sources defined in the dbt project and its dependencies"
+ },
+ "macros": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ParsedMacro"
+ },
+ "description": "The macros defined in the dbt project and its dependencies"
+ },
+ "docs": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ParsedDocumentation"
+ },
+ "description": "The docs defined in the dbt project and its dependencies"
+ },
+ "exposures": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ParsedExposure"
+ },
+ "description": "The exposures defined in the dbt project and its dependencies"
+ },
+ "selectors": {
+ "type": "object",
+ "description": "The selectors defined in selectors.yml"
+ },
+ "disabled": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/definitions/CompiledAnalysisNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledDataTestNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledModelNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledHookNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledRPCNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSchemaTestNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSeedNode"
+ },
+ {
+ "$ref": "#/definitions/CompiledSnapshotNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedAnalysisNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedDataTestNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedHookNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedModelNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedRPCNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSchemaTestNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSeedNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSnapshotNode"
+ },
+ {
+ "$ref": "#/definitions/ParsedSourceDefinition"
+ }
+ ]
+ }
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A list of the disabled nodes in the target"
+ },
+ "parent_map": {
+ "oneOf": [
+ {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A mapping from\u00a0child nodes to their dependencies"
+ },
+ "child_map": {
+ "oneOf": [
+ {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A mapping from parent nodes to their dependents"
+ }
+ },
+ "additionalProperties": false,
+ "description": "WritableManifest(metadata: dbt.contracts.graph.manifest.ManifestMetadata, nodes: Mapping[str, Union[dbt.contracts.graph.compiled.CompiledAnalysisNode, dbt.contracts.graph.compiled.CompiledDataTestNode, dbt.contracts.graph.compiled.CompiledModelNode, dbt.contracts.graph.compiled.CompiledHookNode, dbt.contracts.graph.compiled.CompiledRPCNode, dbt.contracts.graph.compiled.CompiledSchemaTestNode, dbt.contracts.graph.compiled.CompiledSeedNode, dbt.contracts.graph.compiled.CompiledSnapshotNode, dbt.contracts.graph.parsed.ParsedAnalysisNode, dbt.contracts.graph.parsed.ParsedDataTestNode, dbt.contracts.graph.parsed.ParsedHookNode, dbt.contracts.graph.parsed.ParsedModelNode, dbt.contracts.graph.parsed.ParsedRPCNode, dbt.contracts.graph.parsed.ParsedSchemaTestNode, dbt.contracts.graph.parsed.ParsedSeedNode, dbt.contracts.graph.parsed.ParsedSnapshotNode]], sources: Mapping[str, dbt.contracts.graph.parsed.ParsedSourceDefinition], macros: Mapping[str, dbt.contracts.graph.parsed.ParsedMacro], docs: Mapping[str, dbt.contracts.graph.parsed.ParsedDocumentation], exposures: Mapping[str, dbt.contracts.graph.parsed.ParsedExposure], selectors: Mapping[str, Any], disabled: Union[List[Union[dbt.contracts.graph.compiled.CompiledAnalysisNode, dbt.contracts.graph.compiled.CompiledDataTestNode, dbt.contracts.graph.compiled.CompiledModelNode, dbt.contracts.graph.compiled.CompiledHookNode, dbt.contracts.graph.compiled.CompiledRPCNode, dbt.contracts.graph.compiled.CompiledSchemaTestNode, dbt.contracts.graph.compiled.CompiledSeedNode, dbt.contracts.graph.compiled.CompiledSnapshotNode, dbt.contracts.graph.parsed.ParsedAnalysisNode, dbt.contracts.graph.parsed.ParsedDataTestNode, dbt.contracts.graph.parsed.ParsedHookNode, dbt.contracts.graph.parsed.ParsedModelNode, dbt.contracts.graph.parsed.ParsedRPCNode, dbt.contracts.graph.parsed.ParsedSchemaTestNode, dbt.contracts.graph.parsed.ParsedSeedNode, dbt.contracts.graph.parsed.ParsedSnapshotNode, dbt.contracts.graph.parsed.ParsedSourceDefinition]], NoneType], parent_map: Union[Dict[str, List[str]], NoneType], child_map: Union[Dict[str, List[str]], NoneType])",
+ "definitions": {
+ "ManifestMetadata": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "dbt_schema_version": {
+ "type": "string",
+ "default": "https://schemas.getdbt.com/dbt/manifest/v2.json"
+ },
+ "dbt_version": {
+ "type": "string",
+ "default": "0.20.0rc1"
+ },
+ "generated_at": {
+ "type": "string",
+ "format": "date-time",
+ "default": "2021-06-07T14:49:01.099700Z"
+ },
+ "invocation_id": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "env": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "default": {}
+ },
+ "project_id": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A unique identifier for the project"
+ },
+ "user_id": {
+ "oneOf": [
+ {
+ "type": "string",
+ "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "A unique identifier for the user"
+ },
+ "send_anonymous_usage_stats": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Whether dbt is configured to send anonymous usage statistics"
+ },
+ "adapter_type": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The type name of the adapter"
+ }
+ },
+ "additionalProperties": false,
+ "description": "Metadata for the manifest."
+ },
+ "CompiledAnalysisNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "analysis"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "post-hook": [],
+ "pre-hook": []
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "compiled_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "created_at": {
+ "type": "integer",
+ "default": 1623077341
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledAnalysisNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, compiled_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , created_at: int = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None, _pre_injected_sql: Union[str, NoneType] = None)"
+ },
+ "FileHash": {
+ "type": "object",
+ "required": [
+ "name",
+ "checksum"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "checksum": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "description": "FileHash(name: str, checksum: str)"
+ },
+ "NodeConfig": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true
+ },
+ "materialized": {
+ "type": "string",
+ "default": "view"
+ },
+ "persist_docs": {
+ "type": "object",
+ "default": {}
+ },
+ "post-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "pre-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "vars": {
+ "type": "object",
+ "default": {}
+ },
+ "quoting": {
+ "type": "object",
+ "default": {}
+ },
+ "column_types": {
+ "type": "object",
+ "default": {}
+ },
+ "alias": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "default": []
+ },
+ "full_refresh": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": true,
+ "description": "NodeConfig(_extra: Dict[str, Any] = , enabled: bool = True, materialized: str = 'view', persist_docs: Dict[str, Any] = , post_hook: List[dbt.contracts.graph.model_config.Hook] = , pre_hook: List[dbt.contracts.graph.model_config.Hook] = , vars: Dict[str, Any] = , quoting: Dict[str, Any] = , column_types: Dict[str, Any] = , alias: Union[str, NoneType] = None, schema: Union[str, NoneType] = None, database: Union[str, NoneType] = None, tags: Union[List[str], str] = , full_refresh: Union[bool, NoneType] = None)"
+ },
+ "Hook": {
+ "type": "object",
+ "required": [
+ "sql"
+ ],
+ "properties": {
+ "sql": {
+ "type": "string"
+ },
+ "transaction": {
+ "type": "boolean",
+ "default": true
+ },
+ "index": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "Hook(sql: str, transaction: bool = True, index: Union[int, NoneType] = None)"
+ },
+ "DependsOn": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "macros": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "nodes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": false,
+ "description": "DependsOn(macros: List[str] = , nodes: List[str] = )"
+ },
+ "ColumnInfo": {
+ "type": "object",
+ "required": [
+ "name"
+ ],
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "data_type": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "quote": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ }
+ },
+ "additionalProperties": true,
+ "description": "ColumnInfo(name: str, description: str = '', meta: Dict[str, Any] = , data_type: Union[str, NoneType] = None, quote: Union[bool, NoneType] = None, tags: List[str] = , _extra: Dict[str, Any] = )"
+ },
+ "Docs": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "show": {
+ "type": "boolean",
+ "default": true
+ }
+ },
+ "additionalProperties": false,
+ "description": "Docs(show: bool = True)"
+ },
+ "InjectedCTE": {
+ "type": "object",
+ "required": [
+ "id",
+ "sql"
+ ],
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "sql": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "description": "InjectedCTE(id: str, sql: str)"
+ },
+ "CompiledDataTestNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "test"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/TestConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "test",
+ "persist_docs": {},
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": "dbt_test__audit",
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "severity": "ERROR",
+ "store_failures": null,
+ "where": null,
+ "limit": null,
+ "fail_calc": "count(*)",
+ "warn_if": "!= 0",
+ "error_if": "!= 0",
+ "post-hook": [],
+ "pre-hook": []
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "compiled_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "created_at": {
+ "type": "integer",
+ "default": 1623077341
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledDataTestNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.TestConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, compiled_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , created_at: int = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None, _pre_injected_sql: Union[str, NoneType] = None)"
+ },
+ "TestConfig": {
+ "type": "object",
+ "required": [],
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": true
+ },
+ "materialized": {
+ "type": "string",
+ "default": "test"
+ },
+ "persist_docs": {
+ "type": "object",
+ "default": {}
+ },
+ "post-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "pre-hook": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Hook"
+ },
+ "default": []
+ },
+ "vars": {
+ "type": "object",
+ "default": {}
+ },
+ "quoting": {
+ "type": "object",
+ "default": {}
+ },
+ "column_types": {
+ "type": "object",
+ "default": {}
+ },
+ "alias": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": "dbt_test__audit"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "tags": {
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ],
+ "default": []
+ },
+ "full_refresh": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "severity": {
+ "type": "string",
+ "pattern": "^([Ww][Aa][Rr][Nn]|[Ee][Rr][Rr][Oo][Rr])$",
+ "default": "ERROR"
+ },
+ "store_failures": {
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "where": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "limit": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "fail_calc": {
+ "type": "string",
+ "default": "count(*)"
+ },
+ "warn_if": {
+ "type": "string",
+ "default": "!= 0"
+ },
+ "error_if": {
+ "type": "string",
+ "default": "!= 0"
+ }
+ },
+ "additionalProperties": true,
+ "description": "TestConfig(_extra: Dict[str, Any] = , enabled: bool = True, materialized: str = 'test', persist_docs: Dict[str, Any] = , post_hook: List[dbt.contracts.graph.model_config.Hook] = , pre_hook: List[dbt.contracts.graph.model_config.Hook] = , vars: Dict[str, Any] = , quoting: Dict[str, Any] = , column_types: Dict[str, Any] = , alias: Union[str, NoneType] = None, schema: Union[str, NoneType] = 'dbt_test__audit', database: Union[str, NoneType] = None, tags: Union[List[str], str] = , full_refresh: Union[bool, NoneType] = None, severity: dbt.contracts.graph.model_config.Severity = 'ERROR', store_failures: Union[bool, NoneType] = None, where: Union[str, NoneType] = None, limit: Union[int, NoneType] = None, fail_calc: str = 'count(*)', warn_if: str = '!= 0', error_if: str = '!= 0')"
+ },
+ "CompiledModelNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "model"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "post-hook": [],
+ "pre-hook": []
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "compiled_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "created_at": {
+ "type": "integer",
+ "default": 1623077341
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledModelNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, compiled_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , created_at: int = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None, _pre_injected_sql: Union[str, NoneType] = None)"
+ },
+ "CompiledHookNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "operation"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "post-hook": [],
+ "pre-hook": []
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "compiled_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "created_at": {
+ "type": "integer",
+ "default": 1623077341
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "index": {
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledHookNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] = , meta: Dict[str, Any] = , docs: dbt.contracts.graph.unparsed.Docs = , patch_path: Union[str, NoneType] = None, compiled_path: Union[str, NoneType] = None, build_path: Union[str, NoneType] = None, deferred: bool = False, unrendered_config: Dict[str, Any] = , created_at: int = , compiled_sql: Union[str, NoneType] = None, extra_ctes_injected: bool = False, extra_ctes: List[dbt.contracts.graph.compiled.InjectedCTE] = , relation_name: Union[str, NoneType] = None, _pre_injected_sql: Union[str, NoneType] = None, index: Union[int, NoneType] = None)"
+ },
+ "CompiledRPCNode": {
+ "type": "object",
+ "required": [
+ "raw_sql",
+ "compiled",
+ "schema",
+ "fqn",
+ "unique_id",
+ "package_name",
+ "root_path",
+ "path",
+ "original_file_path",
+ "name",
+ "resource_type",
+ "alias",
+ "checksum"
+ ],
+ "properties": {
+ "raw_sql": {
+ "type": "string"
+ },
+ "compiled": {
+ "type": "boolean"
+ },
+ "database": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "schema": {
+ "type": "string"
+ },
+ "fqn": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "unique_id": {
+ "type": "string"
+ },
+ "package_name": {
+ "type": "string"
+ },
+ "root_path": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "original_file_path": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "resource_type": {
+ "type": "string",
+ "enum": [
+ "rpc"
+ ]
+ },
+ "alias": {
+ "type": "string"
+ },
+ "checksum": {
+ "$ref": "#/definitions/FileHash"
+ },
+ "config": {
+ "$ref": "#/definitions/NodeConfig",
+ "default": {
+ "enabled": true,
+ "materialized": "view",
+ "persist_docs": {},
+ "vars": {},
+ "quoting": {},
+ "column_types": {},
+ "alias": null,
+ "schema": null,
+ "database": null,
+ "tags": [],
+ "full_refresh": null,
+ "post-hook": [],
+ "pre-hook": []
+ }
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "default": []
+ },
+ "refs": {
+ "type": "array",
+ "items": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "default": []
+ },
+ "sources": {
+ "type": "array",
+ "items": {
+ "type": "array"
+ },
+ "default": []
+ },
+ "depends_on": {
+ "$ref": "#/definitions/DependsOn",
+ "default": {
+ "macros": [],
+ "nodes": []
+ }
+ },
+ "description": {
+ "type": "string",
+ "default": ""
+ },
+ "columns": {
+ "type": "object",
+ "additionalProperties": {
+ "$ref": "#/definitions/ColumnInfo"
+ },
+ "default": {}
+ },
+ "meta": {
+ "type": "object",
+ "default": {}
+ },
+ "docs": {
+ "$ref": "#/definitions/Docs",
+ "default": {
+ "show": true
+ }
+ },
+ "patch_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "compiled_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "build_path": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "deferred": {
+ "type": "boolean",
+ "default": false
+ },
+ "unrendered_config": {
+ "type": "object",
+ "default": {}
+ },
+ "created_at": {
+ "type": "integer",
+ "default": 1623077341
+ },
+ "compiled_sql": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "extra_ctes_injected": {
+ "type": "boolean",
+ "default": false
+ },
+ "extra_ctes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/InjectedCTE"
+ },
+ "default": []
+ },
+ "relation_name": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "description": "CompiledRPCNode(raw_sql: str, compiled: bool, database: Union[str, NoneType], schema: str, fqn: List[str], unique_id: str, package_name: str, root_path: str, path: str, original_file_path: str, name: str, resource_type: dbt.node_types.NodeType, alias: str, checksum: dbt.contracts.files.FileHash, config: dbt.contracts.graph.model_config.NodeConfig = , tags: List[str] = , refs: List[List[str]] = , sources: List[List[Any]] = , depends_on: dbt.contracts.graph.parsed.DependsOn = , description: str = '', columns: Dict[str, dbt.contracts.graph.parsed.ColumnInfo] =