From 7df04b0fe461dcad3c2abcb67004178efaf445ce Mon Sep 17 00:00:00 2001 From: Kshitij Aranke Date: Thu, 12 Dec 2024 15:28:34 +0000 Subject: [PATCH 1/8] Create a no-op exposure runner (#11082) --- .../Under the Hood-20241202-164715.yaml | 6 +++ core/dbt/artifacts/schemas/results.py | 2 + core/dbt/contracts/graph/nodes.py | 14 +++++- core/dbt/events/types.py | 4 +- core/dbt/graph/selector.py | 10 ++-- core/dbt/runners/__init__.py | 2 + core/dbt/runners/exposure_runner.py | 7 +++ core/dbt/runners/no_op_runner.py | 45 +++++++++++++++++ core/dbt/runners/saved_query_runner.py | 7 +++ core/dbt/task/build.py | 50 +++---------------- core/dbt/task/printer.py | 3 ++ core/dbt/task/runnable.py | 2 + .../adapter/concurrency/test_concurrency.py | 4 +- .../adapter/hooks/test_on_run_hooks.py | 12 +---- .../defer_state/test_run_results_state.py | 6 ++- tests/functional/exposures/test_exposures.py | 36 +++++++++++-- .../saved_queries/test_saved_query_build.py | 10 +++- tests/unit/task/test_build.py | 2 +- tests/unit/test_events.py | 4 +- 19 files changed, 153 insertions(+), 73 deletions(-) create mode 100644 .changes/unreleased/Under the Hood-20241202-164715.yaml create mode 100644 core/dbt/runners/__init__.py create mode 100644 core/dbt/runners/exposure_runner.py create mode 100644 core/dbt/runners/no_op_runner.py create mode 100644 core/dbt/runners/saved_query_runner.py diff --git a/.changes/unreleased/Under the Hood-20241202-164715.yaml b/.changes/unreleased/Under the Hood-20241202-164715.yaml new file mode 100644 index 00000000000..1eb0646f32d --- /dev/null +++ b/.changes/unreleased/Under the Hood-20241202-164715.yaml @@ -0,0 +1,6 @@ +kind: Under the Hood +body: Create a no-op exposure runner +time: 2024-12-02T16:47:15.766574Z +custom: + Author: aranke + Issue: ' ' diff --git a/core/dbt/artifacts/schemas/results.py b/core/dbt/artifacts/schemas/results.py index dd455f309b8..9211d713310 100644 --- a/core/dbt/artifacts/schemas/results.py +++ b/core/dbt/artifacts/schemas/results.py @@ -64,6 +64,7 @@ class NodeStatus(StrEnum): PartialSuccess = "partial success" Pass = "pass" RuntimeErr = "runtime error" + NoOp = "no-op" class RunStatus(StrEnum): @@ -71,6 +72,7 @@ class RunStatus(StrEnum): Error = NodeStatus.Error Skipped = NodeStatus.Skipped PartialSuccess = NodeStatus.PartialSuccess + NoOp = NodeStatus.NoOp class TestStatus(StrEnum): diff --git a/core/dbt/contracts/graph/nodes.py b/core/dbt/contracts/graph/nodes.py index 8fc39c7621b..4bb70db5d9c 100644 --- a/core/dbt/contracts/graph/nodes.py +++ b/core/dbt/contracts/graph/nodes.py @@ -1378,7 +1378,7 @@ def group(self): @dataclass -class Exposure(GraphNode, ExposureResource): +class Exposure(NodeInfoMixin, GraphNode, ExposureResource): @property def depends_on_nodes(self): return self.depends_on.nodes @@ -1441,6 +1441,12 @@ def same_contents(self, old: Optional["Exposure"]) -> bool: def group(self): return None + def __post_serialize__(self, dct: Dict, context: Optional[Dict] = None): + dct = super().__post_serialize__(dct, context) + if "_event_status" in dct: + del dct["_event_status"] + return dct + # ==================================== # Metric node @@ -1659,6 +1665,12 @@ def same_contents(self, old: Optional["SavedQuery"]) -> bool: and True ) + def __post_serialize__(self, dct: Dict, context: Optional[Dict] = None): + dct = super().__post_serialize__(dct, context) + if "_event_status" in dct: + del dct["_event_status"] + return dct + # ==================================== # Patches diff --git a/core/dbt/events/types.py b/core/dbt/events/types.py index 5770a6518ad..daad51e7451 100644 --- a/core/dbt/events/types.py +++ b/core/dbt/events/types.py @@ -1937,7 +1937,9 @@ def code(self) -> str: return "Z023" def message(self) -> str: - stats_line = "Done. PASS={pass} WARN={warn} ERROR={error} SKIP={skip} TOTAL={total}" + stats_line = ( + "Done. PASS={pass} WARN={warn} ERROR={error} SKIP={skip} NO-OP={noop} TOTAL={total}" + ) return stats_line.format(**self.stats) diff --git a/core/dbt/graph/selector.py b/core/dbt/graph/selector.py index bf586851fb8..b9786b4ddeb 100644 --- a/core/dbt/graph/selector.py +++ b/core/dbt/graph/selector.py @@ -178,10 +178,12 @@ def _is_graph_member(self, unique_id: UniqueId) -> bool: elif unique_id in self.manifest.saved_queries: saved_query = self.manifest.saved_queries[unique_id] return saved_query.config.enabled - - node = self.manifest.nodes[unique_id] - - return node.config.enabled + elif unique_id in self.manifest.exposures: + exposure = self.manifest.exposures[unique_id] + return exposure.config.enabled + else: + node = self.manifest.nodes[unique_id] + return node.config.enabled def _is_empty_node(self, unique_id: UniqueId) -> bool: if unique_id in self.manifest.nodes: diff --git a/core/dbt/runners/__init__.py b/core/dbt/runners/__init__.py new file mode 100644 index 00000000000..78b38ac55ac --- /dev/null +++ b/core/dbt/runners/__init__.py @@ -0,0 +1,2 @@ +from .exposure_runner import ExposureRunner +from .saved_query_runner import SavedQueryRunner diff --git a/core/dbt/runners/exposure_runner.py b/core/dbt/runners/exposure_runner.py new file mode 100644 index 00000000000..8392106b920 --- /dev/null +++ b/core/dbt/runners/exposure_runner.py @@ -0,0 +1,7 @@ +from dbt.runners.no_op_runner import NoOpRunner + + +class ExposureRunner(NoOpRunner): + @property + def description(self) -> str: + return f"exposure {self.node.name}" diff --git a/core/dbt/runners/no_op_runner.py b/core/dbt/runners/no_op_runner.py new file mode 100644 index 00000000000..2789c1fa9a6 --- /dev/null +++ b/core/dbt/runners/no_op_runner.py @@ -0,0 +1,45 @@ +import threading + +from dbt.artifacts.schemas.results import RunStatus +from dbt.artifacts.schemas.run import RunResult +from dbt.contracts.graph.manifest import Manifest +from dbt.events.types import LogNodeNoOpResult +from dbt.task.base import BaseRunner +from dbt_common.events.functions import fire_event + + +class NoOpRunner(BaseRunner): + @property + def description(self) -> str: + raise NotImplementedError("description not implemented") + + def before_execute(self) -> None: + pass + + def compile(self, manifest: Manifest): + return self.node + + def after_execute(self, result) -> None: + fire_event( + LogNodeNoOpResult( + description=self.description, + index=self.node_index, + total=self.num_nodes, + node_info=self.node.node_info, + ) + ) + + def execute(self, compiled_node, manifest): + # no-op + return RunResult( + node=compiled_node, + status=RunStatus.NoOp, + timing=[], + thread_id=threading.current_thread().name, + execution_time=0, + message="NO-OP", + adapter_response={}, + failures=0, + batch_results=None, + agate_table=None, + ) diff --git a/core/dbt/runners/saved_query_runner.py b/core/dbt/runners/saved_query_runner.py new file mode 100644 index 00000000000..234aeeef970 --- /dev/null +++ b/core/dbt/runners/saved_query_runner.py @@ -0,0 +1,7 @@ +from dbt.runners.no_op_runner import NoOpRunner + + +class SavedQueryRunner(NoOpRunner): + @property + def description(self) -> str: + return f"saved query {self.node.name}" diff --git a/core/dbt/task/build.py b/core/dbt/task/build.py index ff68d976744..1fc0e390a59 100644 --- a/core/dbt/task/build.py +++ b/core/dbt/task/build.py @@ -1,18 +1,17 @@ -import threading from typing import Dict, List, Optional, Set, Type -from dbt.artifacts.schemas.results import NodeStatus, RunStatus +from dbt.artifacts.schemas.results import NodeStatus from dbt.artifacts.schemas.run import RunResult from dbt.cli.flags import Flags from dbt.config.runtime import RuntimeConfig from dbt.contracts.graph.manifest import Manifest -from dbt.events.types import LogNodeNoOpResult from dbt.exceptions import DbtInternalError from dbt.graph import Graph, GraphQueue, ResourceTypeSelector from dbt.node_types import NodeType +from dbt.runners import ExposureRunner as exposure_runner +from dbt.runners import SavedQueryRunner as saved_query_runner from dbt.task.base import BaseRunner, resource_types_from_args from dbt.task.run import MicrobatchModelRunner -from dbt_common.events.functions import fire_event from .run import ModelRunner as run_model_runner from .run import RunTask @@ -21,48 +20,10 @@ from .test import TestRunner as test_runner -class SavedQueryRunner(BaseRunner): - # Stub. No-op Runner for Saved Queries, which require MetricFlow for execution. - @property - def description(self) -> str: - return f"saved query {self.node.name}" - - def before_execute(self) -> None: - pass - - def compile(self, manifest: Manifest): - return self.node - - def after_execute(self, result) -> None: - fire_event( - LogNodeNoOpResult( - description=self.description, - index=self.node_index, - total=self.num_nodes, - node_info=self.node.node_info, - ) - ) - - def execute(self, compiled_node, manifest): - # no-op - return RunResult( - node=compiled_node, - status=RunStatus.Success, - timing=[], - thread_id=threading.current_thread().name, - execution_time=0, - message="NO-OP", - adapter_response={}, - failures=0, - batch_results=None, - agate_table=None, - ) - - class BuildTask(RunTask): """The Build task processes all assets of a given process and attempts to 'build' them in an opinionated fashion. Every resource type outlined in - RUNNER_MAP will be processed by the mapped runner class. + RUNNER_MAP will be processed by the mapped runners class. I.E. a resource of type Model is handled by the ModelRunner which is imported as run_model_runner.""" @@ -80,7 +41,8 @@ class BuildTask(RunTask): NodeType.Seed: seed_runner, NodeType.Test: test_runner, NodeType.Unit: test_runner, - NodeType.SavedQuery: SavedQueryRunner, + NodeType.SavedQuery: saved_query_runner, + NodeType.Exposure: exposure_runner, } ALL_RESOURCE_VALUES = frozenset({x for x in RUNNER_MAP.keys()}) diff --git a/core/dbt/task/printer.py b/core/dbt/task/printer.py index 58a39552450..01ccd75a586 100644 --- a/core/dbt/task/printer.py +++ b/core/dbt/task/printer.py @@ -48,6 +48,8 @@ def interpret_run_result(result) -> str: return "warn" elif result.status in (NodeStatus.Pass, NodeStatus.Success): return "pass" + elif result.status == NodeStatus.NoOp: + return "noop" else: raise RuntimeError(f"unhandled result {result}") @@ -58,6 +60,7 @@ def print_run_status_line(results) -> None: "skip": 0, "pass": 0, "warn": 0, + "noop": 0, "total": 0, } diff --git a/core/dbt/task/runnable.py b/core/dbt/task/runnable.py index 55342cafbbc..20dd2d7879d 100644 --- a/core/dbt/task/runnable.py +++ b/core/dbt/task/runnable.py @@ -184,6 +184,8 @@ def _runtime_initialize(self): self._flattened_nodes.append(self.manifest.saved_queries[uid]) elif uid in self.manifest.unit_tests: self._flattened_nodes.append(self.manifest.unit_tests[uid]) + elif uid in self.manifest.exposures: + self._flattened_nodes.append(self.manifest.exposures[uid]) else: raise DbtInternalError( f"Node selection returned {uid}, expected a node, a source, or a unit test" diff --git a/tests/functional/adapter/concurrency/test_concurrency.py b/tests/functional/adapter/concurrency/test_concurrency.py index 65932f95ea7..41433bfb23e 100644 --- a/tests/functional/adapter/concurrency/test_concurrency.py +++ b/tests/functional/adapter/concurrency/test_concurrency.py @@ -303,7 +303,7 @@ def models(self): } -class TestConcurenncy(BaseConcurrency): +class TestConcurrency(BaseConcurrency): def test_concurrency(self, project): run_dbt(["seed", "--select", "seed"]) results = run_dbt(["run"], expect_pass=False) @@ -326,5 +326,3 @@ def test_concurrency(self, project): check_relations_equal(project.adapter, ["seed", "table_b"]) check_table_does_not_exist(project.adapter, "invalid") check_table_does_not_exist(project.adapter, "skip") - - assert "PASS=5 WARN=0 ERROR=1 SKIP=1 TOTAL=7" in output diff --git a/tests/functional/adapter/hooks/test_on_run_hooks.py b/tests/functional/adapter/hooks/test_on_run_hooks.py index 5547f570967..2bad3e0f45d 100644 --- a/tests/functional/adapter/hooks/test_on_run_hooks.py +++ b/tests/functional/adapter/hooks/test_on_run_hooks.py @@ -31,15 +31,11 @@ def models(self): "select * from {{ target.schema }}.my_end_table" } - @pytest.fixture(scope="class") - def log_counts(self): - return "PASS=2 WARN=0 ERROR=2 SKIP=1 TOTAL=5" - @pytest.fixture(scope="class") def my_model_run_status(self): return RunStatus.Error - def test_results(self, project, log_counts, my_model_run_status): + def test_results(self, project, my_model_run_status): results, log_output = run_dbt_and_capture(["run"], expect_pass=False) expected_results = [ @@ -64,7 +60,6 @@ def test_results(self, project, log_counts, my_model_run_status): timing_keys = [timing.name for timing in result.timing] assert timing_keys == ["compile", "execute"] - assert log_counts in log_output assert "4 project hooks, 1 view model" in log_output run_results = get_artifact(project.project_root, "target", "run_results.json") @@ -88,10 +83,6 @@ class Test__StartHookFail__FlagIsTrue__ModelSkipped(Test__StartHookFail__FlagIsN def flags(self): return {"skip_nodes_if_on_run_start_fails": True} - @pytest.fixture(scope="class") - def log_counts(self): - return "PASS=2 WARN=0 ERROR=1 SKIP=2 TOTAL=5" - @pytest.fixture(scope="class") def my_model_run_status(self): return RunStatus.Skipped @@ -125,7 +116,6 @@ def test_results(self, project): ] assert [(result.node.unique_id, result.status) for result in results] == expected_results - assert "PASS=3 WARN=0 ERROR=1 SKIP=1 TOTAL=5" in log_output assert "4 project hooks, 1 view model" in log_output run_results = get_artifact(project.project_root, "target", "run_results.json") diff --git a/tests/functional/defer_state/test_run_results_state.py b/tests/functional/defer_state/test_run_results_state.py index e4b467d8e37..6d7e5ae3d61 100644 --- a/tests/functional/defer_state/test_run_results_state.py +++ b/tests/functional/defer_state/test_run_results_state.py @@ -179,13 +179,14 @@ def test_build_run_results_state(self, project): results = run_dbt( ["build", "--select", "result:error+", "--state", "./state"], expect_pass=False ) - assert len(results) == 4 + assert len(results) == 5 nodes = set([elem.node.name for elem in results]) assert nodes == { "table_model", "view_model", "not_null_view_model_id", "unique_view_model_id", + "my_exposure", } results = run_dbt(["ls", "--select", "result:error+", "--state", "./state"]) @@ -443,7 +444,7 @@ def test_concurrent_selectors_build_run_results_state(self, project): ["build", "--select", "state:modified+", "result:error+", "--state", "./state"], expect_pass=False, ) - assert len(results) == 5 + assert len(results) == 6 nodes = set([elem.node.name for elem in results]) assert nodes == { "table_model_modified_example", @@ -451,6 +452,7 @@ def test_concurrent_selectors_build_run_results_state(self, project): "table_model", "not_null_view_model_id", "unique_view_model_id", + "my_exposure", } self.update_view_model_failing_tests() diff --git a/tests/functional/exposures/test_exposures.py b/tests/functional/exposures/test_exposures.py index be42ffd26c0..efe3e492a83 100644 --- a/tests/functional/exposures/test_exposures.py +++ b/tests/functional/exposures/test_exposures.py @@ -1,5 +1,7 @@ import pytest +from dbt.artifacts.schemas.results import RunStatus +from dbt.contracts.graph.nodes import Exposure from dbt.tests.util import get_manifest, run_dbt from tests.functional.exposures.fixtures import ( metricflow_time_spine_sql, @@ -25,8 +27,8 @@ def models(self): "metrics.yml": metrics_schema_yml, } - def test_names_with_spaces(self, project): - run_dbt(["run"]) + def test_compilation_names_with_spaces(self, project): + run_dbt(["compile"]) manifest = get_manifest(project.project_root) exposure_ids = list(manifest.exposures.keys()) expected_exposure_ids = [ @@ -36,8 +38,8 @@ def test_names_with_spaces(self, project): assert exposure_ids == expected_exposure_ids assert manifest.exposures["exposure.test.simple_exposure"].label == "simple exposure label" - def test_depends_on(self, project): - run_dbt(["run"]) + def test_compilation_depends_on(self, project): + run_dbt(["compile"]) manifest = get_manifest(project.project_root) exposure_depends_on = manifest.exposures["exposure.test.simple_exposure"].depends_on.nodes expected_exposure_depends_on = [ @@ -46,3 +48,29 @@ def test_depends_on(self, project): "metric.test.metric", ] assert sorted(exposure_depends_on) == sorted(expected_exposure_depends_on) + + def test_execution_default(self, project): + results = run_dbt(["build"]) + exposure_results = ( + result for result in results.results if isinstance(result.node, Exposure) + ) + assert {result.node.name for result in exposure_results} == { + "simple_exposure", + "notebook_exposure", + } + assert all(result.status == RunStatus.NoOp for result in exposure_results) + assert all("NO-OP" in result.message for result in exposure_results) + + def test_execution_exclude(self, project): + results = run_dbt(["build", "--exclude", "simple_exposure"]) + exposure_results = ( + result for result in results.results if isinstance(result.node, Exposure) + ) + assert {result.node.name for result in exposure_results} == {"notebook_exposure"} + + def test_execution_select(self, project): + results = run_dbt(["build", "--select", "simple_exposure"]) + exposure_results = ( + result for result in results.results if isinstance(result.node, Exposure) + ) + assert {result.node.name for result in exposure_results} == {"simple_exposure"} diff --git a/tests/functional/saved_queries/test_saved_query_build.py b/tests/functional/saved_queries/test_saved_query_build.py index e9c2bbda3f8..1e976eb9e76 100644 --- a/tests/functional/saved_queries/test_saved_query_build.py +++ b/tests/functional/saved_queries/test_saved_query_build.py @@ -1,5 +1,7 @@ import pytest +from dbt.artifacts.schemas.results import RunStatus +from dbt.contracts.graph.nodes import SavedQuery from dbt.tests.util import run_dbt from tests.functional.saved_queries.fixtures import ( saved_queries_yml, @@ -36,4 +38,10 @@ def test_build_saved_queries_no_op(self, project) -> None: run_dbt(["deps"]) result = run_dbt(["build"]) assert len(result.results) == 3 - assert "NO-OP" in [r.message for r in result.results] + + saved_query_results = ( + result for result in result.results if isinstance(result.node, SavedQuery) + ) + assert {result.node.name for result in saved_query_results} == {"test_saved_query"} + assert all("NO-OP" in result.message for result in saved_query_results) + assert all(result.status == RunStatus.NoOp for result in saved_query_results) diff --git a/tests/unit/task/test_build.py b/tests/unit/task/test_build.py index 87d7b081ae8..c4fb235ae0e 100644 --- a/tests/unit/task/test_build.py +++ b/tests/unit/task/test_build.py @@ -1,5 +1,5 @@ from dbt.contracts.graph.nodes import SavedQuery -from dbt.task.build import SavedQueryRunner +from dbt.runners import SavedQueryRunner def test_saved_query_runner_on_skip(saved_query: SavedQuery): diff --git a/tests/unit/test_events.py b/tests/unit/test_events.py index 3d8dfb76916..de078c45494 100644 --- a/tests/unit/test_events.py +++ b/tests/unit/test_events.py @@ -453,7 +453,9 @@ def test_event_codes(self): core_types.OpenCommand(open_cmd="", profiles_dir=""), core_types.RunResultWarning(resource_type="", node_name="", path=""), core_types.RunResultFailure(resource_type="", node_name="", path=""), - core_types.StatsLine(stats={"error": 0, "skip": 0, "pass": 0, "warn": 0, "total": 0}), + core_types.StatsLine( + stats={"error": 0, "skip": 0, "pass": 0, "warn": 0, "noop": 0, "total": 0} + ), core_types.RunResultError(msg=""), core_types.RunResultErrorNoMessage(status=""), core_types.SQLCompiledPath(path=""), From 4b1f1c4029ed775a83e19bc9d8d4690bad365c17 Mon Sep 17 00:00:00 2001 From: Chenyu Li Date: Sun, 15 Dec 2024 23:30:48 -0800 Subject: [PATCH 2/8] add allow additional property for Model and SourceDefinition (#11138) --- .../schemas/manifest/v12/manifest.py | 11 ++ schemas/dbt/manifest/v12.json | 156 +++++++++++++++--- tests/functional/artifacts/test_artifacts.py | 16 ++ tests/unit/contracts/graph/test_nodes.py | 10 +- .../unit/contracts/graph/test_nodes_parsed.py | 8 + 5 files changed, 170 insertions(+), 31 deletions(-) diff --git a/core/dbt/artifacts/schemas/manifest/v12/manifest.py b/core/dbt/artifacts/schemas/manifest/v12/manifest.py index cc13fca43f5..b3b2ac82f21 100644 --- a/core/dbt/artifacts/schemas/manifest/v12/manifest.py +++ b/core/dbt/artifacts/schemas/manifest/v12/manifest.py @@ -28,6 +28,7 @@ schema_version, ) from dbt.artifacts.schemas.upgrades import upgrade_manifest_json +from dbt_common.exceptions import DbtInternalError NodeEdgeMap = Dict[str, List[str]] UniqueID = str @@ -180,3 +181,13 @@ def upgrade_schema_version(cls, data): if manifest_schema_version < cls.dbt_schema_version.version: data = upgrade_manifest_json(data, manifest_schema_version) return cls.from_dict(data) + + @classmethod + def validate(cls, _): + # When dbt try to load an artifact with additional optional fields + # that are not present in the schema, from_dict will work fine. + # As long as validate is not called, the schema will not be enforced. + # This is intentional, as it allows for safer schema upgrades. + raise DbtInternalError( + "The WritableManifest should never be validated directly to allow for schema upgrades." + ) diff --git a/schemas/dbt/manifest/v12.json b/schemas/dbt/manifest/v12.json index 5e9198b07f6..d0466e4852c 100644 --- a/schemas/dbt/manifest/v12.json +++ b/schemas/dbt/manifest/v12.json @@ -13,7 +13,7 @@ }, "dbt_version": { "type": "string", - "default": "1.9.0b4" + "default": "1.10.0a1" }, "generated_at": { "type": "string" @@ -9121,19 +9121,7 @@ "type": "integer" }, "granularity": { - "enum": [ - "nanosecond", - "microsecond", - "millisecond", - "second", - "minute", - "hour", - "day", - "week", - "month", - "quarter", - "year" - ] + "type": "string" } }, "additionalProperties": false, @@ -18712,19 +18700,7 @@ "type": "integer" }, "granularity": { - "enum": [ - "nanosecond", - "microsecond", - "millisecond", - "second", - "minute", - "hour", - "day", - "week", - "month", - "quarter", - "year" - ] + "type": "string" } }, "additionalProperties": false, @@ -20024,6 +20000,27 @@ } ], "default": null + }, + "config": { + "anyOf": [ + { + "type": "object", + "title": "SemanticLayerElementConfig", + "properties": { + "meta": { + "type": "object", + "propertyNames": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + { + "type": "null" + } + ], + "default": null } }, "additionalProperties": false, @@ -20178,6 +20175,27 @@ } ], "default": null + }, + "config": { + "anyOf": [ + { + "type": "object", + "title": "SemanticLayerElementConfig", + "properties": { + "meta": { + "type": "object", + "propertyNames": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + { + "type": "null" + } + ], + "default": null } }, "additionalProperties": false, @@ -20341,6 +20359,27 @@ } ], "default": null + }, + "config": { + "anyOf": [ + { + "type": "object", + "title": "SemanticLayerElementConfig", + "properties": { + "meta": { + "type": "object", + "propertyNames": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + { + "type": "null" + } + ], + "default": null } }, "additionalProperties": false, @@ -21586,6 +21625,27 @@ } ], "default": null + }, + "config": { + "anyOf": [ + { + "type": "object", + "title": "SemanticLayerElementConfig", + "properties": { + "meta": { + "type": "object", + "propertyNames": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + { + "type": "null" + } + ], + "default": null } }, "additionalProperties": false, @@ -21740,6 +21800,27 @@ } ], "default": null + }, + "config": { + "anyOf": [ + { + "type": "object", + "title": "SemanticLayerElementConfig", + "properties": { + "meta": { + "type": "object", + "propertyNames": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + { + "type": "null" + } + ], + "default": null } }, "additionalProperties": false, @@ -21903,6 +21984,27 @@ } ], "default": null + }, + "config": { + "anyOf": [ + { + "type": "object", + "title": "SemanticLayerElementConfig", + "properties": { + "meta": { + "type": "object", + "propertyNames": { + "type": "string" + } + } + }, + "additionalProperties": false + }, + { + "type": "null" + } + ], + "default": null } }, "additionalProperties": false, diff --git a/tests/functional/artifacts/test_artifacts.py b/tests/functional/artifacts/test_artifacts.py index 92ec8abe196..52cd0605524 100644 --- a/tests/functional/artifacts/test_artifacts.py +++ b/tests/functional/artifacts/test_artifacts.py @@ -663,6 +663,22 @@ def test_run_and_generate(self, project, manifest_schema_path, run_results_schem > 0 ) + # Test artifact with additional fields load fine + def test_load_artifact(self, project, manifest_schema_path, run_results_schema_path): + catcher = EventCatcher(ArtifactWritten) + results = run_dbt(args=["compile"], callbacks=[catcher.catch]) + assert len(results) == 7 + manifest_dct = get_artifact(os.path.join(project.project_root, "target", "manifest.json")) + # add a field that is not in the schema + for _, node in manifest_dct["nodes"].items(): + node["something_else"] = "something_else" + # load the manifest with the additional field + loaded_manifest = WritableManifest.from_dict(manifest_dct) + + # successfully loaded the manifest with the additional field, but the field should not be present + for _, node in loaded_manifest.nodes.items(): + assert not hasattr(node, "something_else") + class TestVerifyArtifactsReferences(BaseVerifyProject): @pytest.fixture(scope="class") diff --git a/tests/unit/contracts/graph/test_nodes.py b/tests/unit/contracts/graph/test_nodes.py index 3b509d0d20d..0648fe1174d 100644 --- a/tests/unit/contracts/graph/test_nodes.py +++ b/tests/unit/contracts/graph/test_nodes.py @@ -236,10 +236,12 @@ def test_basic_compiled_model(basic_compiled_dict, basic_compiled_model): assert node.is_ephemeral is False -def test_invalid_extra_fields_model(minimal_uncompiled_dict): - bad_extra = minimal_uncompiled_dict - bad_extra["notvalid"] = "nope" - assert_fails_validation(bad_extra, ModelNode) +def test_extra_fields_model_okay(minimal_uncompiled_dict): + extra = minimal_uncompiled_dict + extra["notvalid"] = "nope" + # Model still load fine with extra fields + loaded_model = ModelNode.from_dict(extra) + assert not hasattr(loaded_model, "notvalid") def test_invalid_bad_type_model(minimal_uncompiled_dict): diff --git a/tests/unit/contracts/graph/test_nodes_parsed.py b/tests/unit/contracts/graph/test_nodes_parsed.py index dc5a326f4d9..75d451b9956 100644 --- a/tests/unit/contracts/graph/test_nodes_parsed.py +++ b/tests/unit/contracts/graph/test_nodes_parsed.py @@ -1961,6 +1961,14 @@ def test_basic_source_definition( pickle.loads(pickle.dumps(node)) +def test_extra_fields_source_definition_okay(minimum_parsed_source_definition_dict): + extra = minimum_parsed_source_definition_dict + extra["notvalid"] = "nope" + # Model still load fine with extra fields + loaded_source = SourceDefinition.from_dict(extra) + assert not hasattr(loaded_source, "notvalid") + + def test_invalid_missing(minimum_parsed_source_definition_dict): bad_missing_name = minimum_parsed_source_definition_dict del bad_missing_name["name"] From 6c61cb7f7adbdce8edec35a887d6c766a401e403 Mon Sep 17 00:00:00 2001 From: Quigley Malcolm Date: Mon, 16 Dec 2024 10:35:08 -0600 Subject: [PATCH 3/8] Warn if `concurrent_batches` config is set to `True`, but the available adapter doesn't support it (#11145) * Begin producing warning when attempting to force concurrent batches without adapter support Batches of microbatch models can be executed sequentially or concurrently. We try to figure out which to do intelligently. As part of that, we implemented an override, the model config `concurrent_batches`, to allow the user to bypass _some_ of our automatic detection. However, a user _cannot_ for batches to run concurrently if the adapter doesn't support concurrent batches (declaring support is opt in). Thus, if an adapter _doesn't_ support running batches concurrently, and a user tries to force concurrent execution via `concurrent_batches`, then we need to warn the user that that isn't happening. * Add custom event type for warning about invalid `concurrent_batches` config * Fire `InvalidConcurrentBatchesConfig` warning via `warn_or_error` so it can be silenced --- .../unreleased/Fixes-20241212-113611.yaml | 6 + core/dbt/events/core_types.proto | 12 + core/dbt/events/core_types_pb2.py | 898 +++++++++--------- core/dbt/events/types.py | 10 + core/dbt/parser/manifest.py | 24 + .../functional/microbatch/test_microbatch.py | 45 + tests/unit/parser/test_manifest.py | 60 +- tests/unit/test_events.py | 1 + 8 files changed, 608 insertions(+), 448 deletions(-) create mode 100644 .changes/unreleased/Fixes-20241212-113611.yaml diff --git a/.changes/unreleased/Fixes-20241212-113611.yaml b/.changes/unreleased/Fixes-20241212-113611.yaml new file mode 100644 index 00000000000..43b207b5f65 --- /dev/null +++ b/.changes/unreleased/Fixes-20241212-113611.yaml @@ -0,0 +1,6 @@ +kind: Fixes +body: Warn about invalid usages of `concurrent_batches` config +time: 2024-12-12T11:36:11.451962-06:00 +custom: + Author: QMalcolm + Issue: "11122" diff --git a/core/dbt/events/core_types.proto b/core/dbt/events/core_types.proto index 817d5623350..386a1348272 100644 --- a/core/dbt/events/core_types.proto +++ b/core/dbt/events/core_types.proto @@ -928,6 +928,18 @@ message MicrobatchModelNoEventTimeInputsMsg { } +// I075 +message InvalidConcurrentBatchesConfig { + int32 num_models = 1; + string adapter_type = 2; +} + +message InvalidConcurrentBatchesConfigMsg { + CoreEventInfo info = 1; + InvalidConcurrentBatchesConfig data = 2; +} + + // M - Deps generation diff --git a/core/dbt/events/core_types_pb2.py b/core/dbt/events/core_types_pb2.py index b744a4b8662..c204e22234b 100644 --- a/core/dbt/events/core_types_pb2.py +++ b/core/dbt/events/core_types_pb2.py @@ -26,7 +26,7 @@ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x63ore_types.proto\x12\x0bproto_types\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x99\x02\n\rCoreEventInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\x0b\n\x03msg\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\t\x12\x15\n\rinvocation_id\x18\x05 \x01(\t\x12\x0b\n\x03pid\x18\x06 \x01(\x05\x12\x0e\n\x06thread\x18\x07 \x01(\t\x12&\n\x02ts\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x05\x65xtra\x18\t \x03(\x0b\x32%.proto_types.CoreEventInfo.ExtraEntry\x12\x10\n\x08\x63\x61tegory\x18\n \x01(\t\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"V\n\x0cNodeRelation\x12\x10\n\x08\x64\x61tabase\x18\n \x01(\t\x12\x0e\n\x06schema\x18\x0b \x01(\t\x12\r\n\x05\x61lias\x18\x0c \x01(\t\x12\x15\n\rrelation_name\x18\r \x01(\t\"\x91\x02\n\x08NodeInfo\x12\x11\n\tnode_path\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x11\n\tunique_id\x18\x03 \x01(\t\x12\x15\n\rresource_type\x18\x04 \x01(\t\x12\x14\n\x0cmaterialized\x18\x05 \x01(\t\x12\x13\n\x0bnode_status\x18\x06 \x01(\t\x12\x17\n\x0fnode_started_at\x18\x07 \x01(\t\x12\x18\n\x10node_finished_at\x18\x08 \x01(\t\x12%\n\x04meta\x18\t \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x30\n\rnode_relation\x18\n \x01(\x0b\x32\x19.proto_types.NodeRelation\"\x7f\n\rTimingInfoMsg\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\nstarted_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0c\x63ompleted_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xd1\x01\n\x0cRunResultMsg\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12/\n\x0btiming_info\x18\x03 \x03(\x0b\x32\x1a.proto_types.TimingInfoMsg\x12\x0e\n\x06thread\x18\x04 \x01(\t\x12\x16\n\x0e\x65xecution_time\x18\x05 \x01(\x02\x12\x31\n\x10\x61\x64\x61pter_response\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x14\n\x0cnum_failures\x18\x07 \x01(\x05\"\\\n\nColumnType\x12\x13\n\x0b\x63olumn_name\x18\x01 \x01(\t\x12\x1c\n\x14previous_column_type\x18\x02 \x01(\t\x12\x1b\n\x13\x63urrent_column_type\x18\x03 \x01(\t\"Y\n\x10\x43olumnConstraint\x12\x13\n\x0b\x63olumn_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63onstraint_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63onstraint_type\x18\x03 \x01(\t\"T\n\x0fModelConstraint\x12\x17\n\x0f\x63onstraint_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63onstraint_type\x18\x02 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x03 \x03(\t\"9\n\x11MainReportVersion\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x13\n\x0blog_version\x18\x02 \x01(\x05\"n\n\x14MainReportVersionMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.MainReportVersion\"r\n\x0eMainReportArgs\x12\x33\n\x04\x61rgs\x18\x01 \x03(\x0b\x32%.proto_types.MainReportArgs.ArgsEntry\x1a+\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"h\n\x11MainReportArgsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.MainReportArgs\"+\n\x15MainTrackingUserState\x12\x12\n\nuser_state\x18\x01 \x01(\t\"v\n\x18MainTrackingUserStateMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MainTrackingUserState\"5\n\x0fMergedFromState\x12\x12\n\nnum_merged\x18\x01 \x01(\x05\x12\x0e\n\x06sample\x18\x02 \x03(\t\"j\n\x12MergedFromStateMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.MergedFromState\"A\n\x14MissingProfileTarget\x12\x14\n\x0cprofile_name\x18\x01 \x01(\t\x12\x13\n\x0btarget_name\x18\x02 \x01(\t\"t\n\x17MissingProfileTargetMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.MissingProfileTarget\"(\n\x11InvalidOptionYAML\x12\x13\n\x0boption_name\x18\x01 \x01(\t\"n\n\x14InvalidOptionYAMLMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.InvalidOptionYAML\"!\n\x12LogDbtProjectError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"p\n\x15LogDbtProjectErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDbtProjectError\"3\n\x12LogDbtProfileError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\x12\x10\n\x08profiles\x18\x02 \x03(\t\"p\n\x15LogDbtProfileErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDbtProfileError\"!\n\x12StarterProjectPath\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"p\n\x15StarterProjectPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.StarterProjectPath\"$\n\x15\x43onfigFolderDirectory\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"v\n\x18\x43onfigFolderDirectoryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ConfigFolderDirectory\"\'\n\x14NoSampleProfileFound\x12\x0f\n\x07\x61\x64\x61pter\x18\x01 \x01(\t\"t\n\x17NoSampleProfileFoundMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.NoSampleProfileFound\"6\n\x18ProfileWrittenWithSample\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"|\n\x1bProfileWrittenWithSampleMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ProfileWrittenWithSample\"B\n$ProfileWrittenWithTargetTemplateYAML\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x94\x01\n\'ProfileWrittenWithTargetTemplateYAMLMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12?\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x31.proto_types.ProfileWrittenWithTargetTemplateYAML\"C\n%ProfileWrittenWithProjectTemplateYAML\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x96\x01\n(ProfileWrittenWithProjectTemplateYAMLMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12@\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x32.proto_types.ProfileWrittenWithProjectTemplateYAML\"\x12\n\x10SettingUpProfile\"l\n\x13SettingUpProfileMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.SettingUpProfile\"\x1c\n\x1aInvalidProfileTemplateYAML\"\x80\x01\n\x1dInvalidProfileTemplateYAMLMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.InvalidProfileTemplateYAML\"(\n\x18ProjectNameAlreadyExists\x12\x0c\n\x04name\x18\x01 \x01(\t\"|\n\x1bProjectNameAlreadyExistsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ProjectNameAlreadyExists\"K\n\x0eProjectCreated\x12\x14\n\x0cproject_name\x18\x01 \x01(\t\x12\x10\n\x08\x64ocs_url\x18\x02 \x01(\t\x12\x11\n\tslack_url\x18\x03 \x01(\t\"h\n\x11ProjectCreatedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ProjectCreated\"@\n\x1aPackageRedirectDeprecation\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"\x80\x01\n\x1dPackageRedirectDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.PackageRedirectDeprecation\"\x1f\n\x1dPackageInstallPathDeprecation\"\x86\x01\n PackageInstallPathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.PackageInstallPathDeprecation\"H\n\x1b\x43onfigSourcePathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"\x82\x01\n\x1e\x43onfigSourcePathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConfigSourcePathDeprecation\"F\n\x19\x43onfigDataPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"~\n\x1c\x43onfigDataPathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.ConfigDataPathDeprecation\".\n\x17MetricAttributesRenamed\x12\x13\n\x0bmetric_name\x18\x01 \x01(\t\"z\n\x1aMetricAttributesRenamedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.MetricAttributesRenamed\"+\n\x17\x45xposureNameDeprecation\x12\x10\n\x08\x65xposure\x18\x01 \x01(\t\"z\n\x1a\x45xposureNameDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.ExposureNameDeprecation\"^\n\x13InternalDeprecation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x18\n\x10suggested_action\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\"r\n\x16InternalDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.InternalDeprecation\"@\n\x1a\x45nvironmentVariableRenamed\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"\x80\x01\n\x1d\x45nvironmentVariableRenamedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.EnvironmentVariableRenamed\"3\n\x18\x43onfigLogPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\"|\n\x1b\x43onfigLogPathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ConfigLogPathDeprecation\"6\n\x1b\x43onfigTargetPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\"\x82\x01\n\x1e\x43onfigTargetPathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConfigTargetPathDeprecation\"C\n\x16TestsConfigDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"x\n\x19TestsConfigDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.TestsConfigDeprecation\"\x1e\n\x1cProjectFlagsMovedDeprecation\"\x84\x01\n\x1fProjectFlagsMovedDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x37\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32).proto_types.ProjectFlagsMovedDeprecation\"C\n\x1fSpacesInResourceNameDeprecation\x12\x11\n\tunique_id\x18\x01 \x01(\t\x12\r\n\x05level\x18\x02 \x01(\t\"\x8a\x01\n\"SpacesInResourceNameDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.SpacesInResourceNameDeprecation\"i\n\"ResourceNamesWithSpacesDeprecation\x12\x1b\n\x13\x63ount_invalid_names\x18\x01 \x01(\x05\x12\x17\n\x0fshow_debug_hint\x18\x02 \x01(\x08\x12\r\n\x05level\x18\x03 \x01(\t\"\x90\x01\n%ResourceNamesWithSpacesDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12=\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32/.proto_types.ResourceNamesWithSpacesDeprecation\"_\n)PackageMaterializationOverrideDeprecation\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x1c\n\x14materialization_name\x18\x02 \x01(\t\"\x9e\x01\n,PackageMaterializationOverrideDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x44\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x36.proto_types.PackageMaterializationOverrideDeprecation\"#\n!SourceFreshnessProjectHooksNotRun\"\x8e\x01\n$SourceFreshnessProjectHooksNotRunMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.SourceFreshnessProjectHooksNotRun\"0\n.MFTimespineWithoutYamlConfigurationDeprecation\"\xa8\x01\n1MFTimespineWithoutYamlConfigurationDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12I\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32;.proto_types.MFTimespineWithoutYamlConfigurationDeprecation\"#\n!MFCumulativeTypeParamsDeprecation\"\x8e\x01\n$MFCumulativeTypeParamsDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.MFCumulativeTypeParamsDeprecation\",\n*MicrobatchMacroOutsideOfBatchesDeprecation\"\xa0\x01\n-MicrobatchMacroOutsideOfBatchesDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x45\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x37.proto_types.MicrobatchMacroOutsideOfBatchesDeprecation\"V\n\x0f\x44\x65precatedModel\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x15\n\rmodel_version\x18\x02 \x01(\t\x12\x18\n\x10\x64\x65precation_date\x18\x03 \x01(\t\"j\n\x12\x44\x65precatedModelMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DeprecatedModel\"7\n\x12InputFileDiffError\x12\x10\n\x08\x63\x61tegory\x18\x01 \x01(\t\x12\x0f\n\x07\x66ile_id\x18\x02 \x01(\t\"p\n\x15InputFileDiffErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.InputFileDiffError\"?\n\x14InvalidValueForField\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x13\n\x0b\x66ield_value\x18\x02 \x01(\t\"t\n\x17InvalidValueForFieldMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.InvalidValueForField\"Q\n\x11ValidationWarning\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x12\n\nfield_name\x18\x02 \x01(\t\x12\x11\n\tnode_name\x18\x03 \x01(\t\"n\n\x14ValidationWarningMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.ValidationWarning\"!\n\x11ParsePerfInfoPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"n\n\x14ParsePerfInfoPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.ParsePerfInfoPath\"1\n!PartialParsingErrorProcessingFile\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\"\x8e\x01\n$PartialParsingErrorProcessingFileMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.PartialParsingErrorProcessingFile\"\x86\x01\n\x13PartialParsingError\x12?\n\x08\x65xc_info\x18\x01 \x03(\x0b\x32-.proto_types.PartialParsingError.ExcInfoEntry\x1a.\n\x0c\x45xcInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"r\n\x16PartialParsingErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.PartialParsingError\"\x1b\n\x19PartialParsingSkipParsing\"~\n\x1cPartialParsingSkipParsingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.PartialParsingSkipParsing\"&\n\x14UnableToPartialParse\x12\x0e\n\x06reason\x18\x01 \x01(\t\"t\n\x17UnableToPartialParseMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.UnableToPartialParse\"f\n\x12StateCheckVarsHash\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\x12\x0c\n\x04vars\x18\x02 \x01(\t\x12\x0f\n\x07profile\x18\x03 \x01(\t\x12\x0e\n\x06target\x18\x04 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\"p\n\x15StateCheckVarsHashMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.StateCheckVarsHash\"\x1a\n\x18PartialParsingNotEnabled\"|\n\x1bPartialParsingNotEnabledMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.PartialParsingNotEnabled\"C\n\x14ParsedFileLoadFailed\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"t\n\x17ParsedFileLoadFailedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.ParsedFileLoadFailed\"H\n\x15PartialParsingEnabled\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x05\x12\r\n\x05\x61\x64\x64\x65\x64\x18\x02 \x01(\x05\x12\x0f\n\x07\x63hanged\x18\x03 \x01(\x05\"v\n\x18PartialParsingEnabledMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.PartialParsingEnabled\"8\n\x12PartialParsingFile\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\"p\n\x15PartialParsingFileMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.PartialParsingFile\"\xaf\x01\n\x1fInvalidDisabledTargetInTestNode\x12\x1b\n\x13resource_type_title\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x1a\n\x12original_file_path\x18\x03 \x01(\t\x12\x13\n\x0btarget_kind\x18\x04 \x01(\t\x12\x13\n\x0btarget_name\x18\x05 \x01(\t\x12\x16\n\x0etarget_package\x18\x06 \x01(\t\"\x8a\x01\n\"InvalidDisabledTargetInTestNodeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.InvalidDisabledTargetInTestNode\"7\n\x18UnusedResourceConfigPath\x12\x1b\n\x13unused_config_paths\x18\x01 \x03(\t\"|\n\x1bUnusedResourceConfigPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.UnusedResourceConfigPath\"3\n\rSeedIncreased\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"f\n\x10SeedIncreasedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.SeedIncreased\">\n\x18SeedExceedsLimitSamePath\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"|\n\x1bSeedExceedsLimitSamePathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.SeedExceedsLimitSamePath\"D\n\x1eSeedExceedsLimitAndPathChanged\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x88\x01\n!SeedExceedsLimitAndPathChangedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.SeedExceedsLimitAndPathChanged\"\\\n\x1fSeedExceedsLimitChecksumChanged\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x15\n\rchecksum_name\x18\x03 \x01(\t\"\x8a\x01\n\"SeedExceedsLimitChecksumChangedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.SeedExceedsLimitChecksumChanged\"%\n\x0cUnusedTables\x12\x15\n\runused_tables\x18\x01 \x03(\t\"d\n\x0fUnusedTablesMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.UnusedTables\"\x87\x01\n\x17WrongResourceSchemaFile\x12\x12\n\npatch_name\x18\x01 \x01(\t\x12\x15\n\rresource_type\x18\x02 \x01(\t\x12\x1c\n\x14plural_resource_type\x18\x03 \x01(\t\x12\x10\n\x08yaml_key\x18\x04 \x01(\t\x12\x11\n\tfile_path\x18\x05 \x01(\t\"z\n\x1aWrongResourceSchemaFileMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.WrongResourceSchemaFile\"K\n\x10NoNodeForYamlKey\x12\x12\n\npatch_name\x18\x01 \x01(\t\x12\x10\n\x08yaml_key\x18\x02 \x01(\t\x12\x11\n\tfile_path\x18\x03 \x01(\t\"l\n\x13NoNodeForYamlKeyMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.NoNodeForYamlKey\"+\n\x15MacroNotFoundForPatch\x12\x12\n\npatch_name\x18\x01 \x01(\t\"v\n\x18MacroNotFoundForPatchMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MacroNotFoundForPatch\"\xb8\x01\n\x16NodeNotFoundOrDisabled\x12\x1a\n\x12original_file_path\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x1b\n\x13resource_type_title\x18\x03 \x01(\t\x12\x13\n\x0btarget_name\x18\x04 \x01(\t\x12\x13\n\x0btarget_kind\x18\x05 \x01(\t\x12\x16\n\x0etarget_package\x18\x06 \x01(\t\x12\x10\n\x08\x64isabled\x18\x07 \x01(\t\"x\n\x19NodeNotFoundOrDisabledMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.NodeNotFoundOrDisabled\"H\n\x0fJinjaLogWarning\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"j\n\x12JinjaLogWarningMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.JinjaLogWarning\"E\n\x0cJinjaLogInfo\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"d\n\x0fJinjaLogInfoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.JinjaLogInfo\"F\n\rJinjaLogDebug\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"f\n\x10JinjaLogDebugMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.JinjaLogDebug\"\xae\x01\n\x1eUnpinnedRefNewVersionAvailable\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x15\n\rref_node_name\x18\x02 \x01(\t\x12\x18\n\x10ref_node_package\x18\x03 \x01(\t\x12\x18\n\x10ref_node_version\x18\x04 \x01(\t\x12\x17\n\x0fref_max_version\x18\x05 \x01(\t\"\x88\x01\n!UnpinnedRefNewVersionAvailableMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.UnpinnedRefNewVersionAvailable\"\xc6\x01\n\x1cUpcomingReferenceDeprecation\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x19\n\x11ref_model_package\x18\x02 \x01(\t\x12\x16\n\x0eref_model_name\x18\x03 \x01(\t\x12\x19\n\x11ref_model_version\x18\x04 \x01(\t\x12 \n\x18ref_model_latest_version\x18\x05 \x01(\t\x12\"\n\x1aref_model_deprecation_date\x18\x06 \x01(\t\"\x84\x01\n\x1fUpcomingReferenceDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x37\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32).proto_types.UpcomingReferenceDeprecation\"\xbd\x01\n\x13\x44\x65precatedReference\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x19\n\x11ref_model_package\x18\x02 \x01(\t\x12\x16\n\x0eref_model_name\x18\x03 \x01(\t\x12\x19\n\x11ref_model_version\x18\x04 \x01(\t\x12 \n\x18ref_model_latest_version\x18\x05 \x01(\t\x12\"\n\x1aref_model_deprecation_date\x18\x06 \x01(\t\"r\n\x16\x44\x65precatedReferenceMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DeprecatedReference\"<\n$UnsupportedConstraintMaterialization\x12\x14\n\x0cmaterialized\x18\x01 \x01(\t\"\x94\x01\n\'UnsupportedConstraintMaterializationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12?\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x31.proto_types.UnsupportedConstraintMaterialization\"M\n\x14ParseInlineNodeError\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\"t\n\x17ParseInlineNodeErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.ParseInlineNodeError\"(\n\x19SemanticValidationFailure\x12\x0b\n\x03msg\x18\x02 \x01(\t\"~\n\x1cSemanticValidationFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.SemanticValidationFailure\"\x8a\x03\n\x19UnversionedBreakingChange\x12\x18\n\x10\x62reaking_changes\x18\x01 \x03(\t\x12\x12\n\nmodel_name\x18\x02 \x01(\t\x12\x17\n\x0fmodel_file_path\x18\x03 \x01(\t\x12\"\n\x1a\x63ontract_enforced_disabled\x18\x04 \x01(\x08\x12\x17\n\x0f\x63olumns_removed\x18\x05 \x03(\t\x12\x34\n\x13\x63olumn_type_changes\x18\x06 \x03(\x0b\x32\x17.proto_types.ColumnType\x12I\n\"enforced_column_constraint_removed\x18\x07 \x03(\x0b\x32\x1d.proto_types.ColumnConstraint\x12G\n!enforced_model_constraint_removed\x18\x08 \x03(\x0b\x32\x1c.proto_types.ModelConstraint\x12\x1f\n\x17materialization_changed\x18\t \x03(\t\"~\n\x1cUnversionedBreakingChangeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.UnversionedBreakingChange\"*\n\x14WarnStateTargetEqual\x12\x12\n\nstate_path\x18\x01 \x01(\t\"t\n\x17WarnStateTargetEqualMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.WarnStateTargetEqual\"%\n\x16\x46reshnessConfigProblem\x12\x0b\n\x03msg\x18\x01 \x01(\t\"x\n\x19\x46reshnessConfigProblemMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.FreshnessConfigProblem\"6\n MicrobatchModelNoEventTimeInputs\x12\x12\n\nmodel_name\x18\x01 \x01(\t\"\x8c\x01\n#MicrobatchModelNoEventTimeInputsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12;\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32-.proto_types.MicrobatchModelNoEventTimeInputs\"/\n\x1dGitSparseCheckoutSubdirectory\x12\x0e\n\x06subdir\x18\x01 \x01(\t\"\x86\x01\n GitSparseCheckoutSubdirectoryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.GitSparseCheckoutSubdirectory\"/\n\x1bGitProgressCheckoutRevision\x12\x10\n\x08revision\x18\x01 \x01(\t\"\x82\x01\n\x1eGitProgressCheckoutRevisionMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.GitProgressCheckoutRevision\"4\n%GitProgressUpdatingExistingDependency\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"\x96\x01\n(GitProgressUpdatingExistingDependencyMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12@\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x32.proto_types.GitProgressUpdatingExistingDependency\".\n\x1fGitProgressPullingNewDependency\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"\x8a\x01\n\"GitProgressPullingNewDependencyMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.GitProgressPullingNewDependency\"\x1d\n\x0eGitNothingToDo\x12\x0b\n\x03sha\x18\x01 \x01(\t\"h\n\x11GitNothingToDoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.GitNothingToDo\"E\n\x1fGitProgressUpdatedCheckoutRange\x12\x11\n\tstart_sha\x18\x01 \x01(\t\x12\x0f\n\x07\x65nd_sha\x18\x02 \x01(\t\"\x8a\x01\n\"GitProgressUpdatedCheckoutRangeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.GitProgressUpdatedCheckoutRange\"*\n\x17GitProgressCheckedOutAt\x12\x0f\n\x07\x65nd_sha\x18\x01 \x01(\t\"z\n\x1aGitProgressCheckedOutAtMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.GitProgressCheckedOutAt\")\n\x1aRegistryProgressGETRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\"\x80\x01\n\x1dRegistryProgressGETRequestMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.RegistryProgressGETRequest\"=\n\x1bRegistryProgressGETResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x11\n\tresp_code\x18\x02 \x01(\x05\"\x82\x01\n\x1eRegistryProgressGETResponseMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.RegistryProgressGETResponse\"_\n\x1dSelectorReportInvalidSelector\x12\x17\n\x0fvalid_selectors\x18\x01 \x01(\t\x12\x13\n\x0bspec_method\x18\x02 \x01(\t\x12\x10\n\x08raw_spec\x18\x03 \x01(\t\"\x86\x01\n SelectorReportInvalidSelectorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.SelectorReportInvalidSelector\"\x15\n\x13\x44\x65psNoPackagesFound\"r\n\x16\x44\x65psNoPackagesFoundMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DepsNoPackagesFound\"/\n\x17\x44\x65psStartPackageInstall\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\"z\n\x1a\x44\x65psStartPackageInstallMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsStartPackageInstall\"\'\n\x0f\x44\x65psInstallInfo\x12\x14\n\x0cversion_name\x18\x01 \x01(\t\"j\n\x12\x44\x65psInstallInfoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DepsInstallInfo\"-\n\x13\x44\x65psUpdateAvailable\x12\x16\n\x0eversion_latest\x18\x01 \x01(\t\"r\n\x16\x44\x65psUpdateAvailableMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DepsUpdateAvailable\"\x0e\n\x0c\x44\x65psUpToDate\"d\n\x0f\x44\x65psUpToDateMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.DepsUpToDate\",\n\x14\x44\x65psListSubdirectory\x12\x14\n\x0csubdirectory\x18\x01 \x01(\t\"t\n\x17\x44\x65psListSubdirectoryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.DepsListSubdirectory\".\n\x1a\x44\x65psNotifyUpdatesAvailable\x12\x10\n\x08packages\x18\x01 \x03(\t\"\x80\x01\n\x1d\x44\x65psNotifyUpdatesAvailableMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.DepsNotifyUpdatesAvailable\".\n\x1fRegistryIndexProgressGETRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\"\x8a\x01\n\"RegistryIndexProgressGETRequestMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.RegistryIndexProgressGETRequest\"B\n RegistryIndexProgressGETResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x11\n\tresp_code\x18\x02 \x01(\x05\"\x8c\x01\n#RegistryIndexProgressGETResponseMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12;\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32-.proto_types.RegistryIndexProgressGETResponse\"2\n\x1eRegistryResponseUnexpectedType\x12\x10\n\x08response\x18\x01 \x01(\t\"\x88\x01\n!RegistryResponseUnexpectedTypeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.RegistryResponseUnexpectedType\"2\n\x1eRegistryResponseMissingTopKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x88\x01\n!RegistryResponseMissingTopKeysMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.RegistryResponseMissingTopKeys\"5\n!RegistryResponseMissingNestedKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x8e\x01\n$RegistryResponseMissingNestedKeysMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.RegistryResponseMissingNestedKeys\"3\n\x1fRegistryResponseExtraNestedKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x8a\x01\n\"RegistryResponseExtraNestedKeysMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.RegistryResponseExtraNestedKeys\"(\n\x18\x44\x65psSetDownloadDirectory\x12\x0c\n\x04path\x18\x01 \x01(\t\"|\n\x1b\x44\x65psSetDownloadDirectoryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DepsSetDownloadDirectory\"-\n\x0c\x44\x65psUnpinned\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0b\n\x03git\x18\x02 \x01(\t\"d\n\x0f\x44\x65psUnpinnedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.DepsUnpinned\"/\n\x1bNoNodesForSelectionCriteria\x12\x10\n\x08spec_raw\x18\x01 \x01(\t\"\x82\x01\n\x1eNoNodesForSelectionCriteriaMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.NoNodesForSelectionCriteria\")\n\x10\x44\x65psLockUpdating\x12\x15\n\rlock_filepath\x18\x01 \x01(\t\"l\n\x13\x44\x65psLockUpdatingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.DepsLockUpdating\"R\n\x0e\x44\x65psAddPackage\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x19\n\x11packages_filepath\x18\x03 \x01(\t\"h\n\x11\x44\x65psAddPackageMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.DepsAddPackage\"\xa7\x01\n\x19\x44\x65psFoundDuplicatePackage\x12S\n\x0fremoved_package\x18\x01 \x03(\x0b\x32:.proto_types.DepsFoundDuplicatePackage.RemovedPackageEntry\x1a\x35\n\x13RemovedPackageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"~\n\x1c\x44\x65psFoundDuplicatePackageMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.DepsFoundDuplicatePackage\"$\n\x12\x44\x65psVersionMissing\x12\x0e\n\x06source\x18\x01 \x01(\t\"p\n\x15\x44\x65psVersionMissingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.DepsVersionMissing\"/\n\x17\x44\x65psScrubbedPackageName\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\"z\n\x1a\x44\x65psScrubbedPackageNameMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsScrubbedPackageName\"?\n\x0f\x41rtifactWritten\x12\x15\n\rartifact_type\x18\x01 \x01(\t\x12\x15\n\rartifact_path\x18\x02 \x01(\t\"j\n\x12\x41rtifactWrittenMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ArtifactWritten\"*\n\x1bRunningOperationCaughtError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"\x82\x01\n\x1eRunningOperationCaughtErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.RunningOperationCaughtError\"\x11\n\x0f\x43ompileComplete\"j\n\x12\x43ompileCompleteMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.CompileComplete\"\x18\n\x16\x46reshnessCheckComplete\"x\n\x19\x46reshnessCheckCompleteMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.FreshnessCheckComplete\"\x1c\n\nSeedHeader\x12\x0e\n\x06header\x18\x01 \x01(\t\"`\n\rSeedHeaderMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.SeedHeader\"]\n\x12SQLRunnerException\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x02 \x01(\t\x12(\n\tnode_info\x18\x03 \x01(\x0b\x32\x15.proto_types.NodeInfo\"p\n\x15SQLRunnerExceptionMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.SQLRunnerException\"\x87\x01\n\x05Group\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cpackage_name\x18\x03 \x01(\t\x12,\n\x05owner\x18\x07 \x03(\x0b\x32\x1d.proto_types.Group.OwnerEntry\x1a,\n\nOwnerEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xe2\x01\n\rLogTestResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\x12\n\nnum_models\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x14\n\x0cnum_failures\x18\x07 \x01(\x05\x12!\n\x05group\x18\x08 \x01(\x0b\x32\x12.proto_types.Group\x12\x15\n\rattached_node\x18\t \x01(\t\"f\n\x10LogTestResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogTestResult\"k\n\x0cLogStartLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"d\n\x0fLogStartLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.LogStartLine\"\xb8\x01\n\x0eLogModelResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12!\n\x05group\x18\x07 \x01(\x0b\x32\x12.proto_types.Group\"h\n\x11LogModelResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogModelResult\"\x92\x02\n\x11LogSnapshotResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x34\n\x03\x63\x66g\x18\x07 \x03(\x0b\x32\'.proto_types.LogSnapshotResult.CfgEntry\x12\x16\n\x0eresult_message\x18\x08 \x01(\t\x1a*\n\x08\x43\x66gEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"n\n\x14LogSnapshotResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.LogSnapshotResult\"\xb9\x01\n\rLogSeedResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x16\n\x0eresult_message\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x0e\n\x06schema\x18\x07 \x01(\t\x12\x10\n\x08relation\x18\x08 \x01(\t\"f\n\x10LogSeedResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogSeedResult\"\xad\x01\n\x12LogFreshnessResult\x12\x0e\n\x06status\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x05 \x01(\x02\x12\x13\n\x0bsource_name\x18\x06 \x01(\t\x12\x12\n\ntable_name\x18\x07 \x01(\t\"p\n\x15LogFreshnessResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogFreshnessResult\"\x98\x01\n\x11LogNodeNoOpResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\"n\n\x14LogNodeNoOpResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.LogNodeNoOpResult\"\"\n\rLogCancelLine\x12\x11\n\tconn_name\x18\x01 \x01(\t\"f\n\x10LogCancelLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogCancelLine\"\x1f\n\x0f\x44\x65\x66\x61ultSelector\x12\x0c\n\x04name\x18\x01 \x01(\t\"j\n\x12\x44\x65\x66\x61ultSelectorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DefaultSelector\"5\n\tNodeStart\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"^\n\x0cNodeStartMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.NodeStart\"g\n\x0cNodeFinished\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12-\n\nrun_result\x18\x02 \x01(\x0b\x32\x19.proto_types.RunResultMsg\"d\n\x0fNodeFinishedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.NodeFinished\"+\n\x1bQueryCancelationUnsupported\x12\x0c\n\x04type\x18\x01 \x01(\t\"\x82\x01\n\x1eQueryCancelationUnsupportedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.QueryCancelationUnsupported\"O\n\x0f\x43oncurrencyLine\x12\x13\n\x0bnum_threads\x18\x01 \x01(\x05\x12\x13\n\x0btarget_name\x18\x02 \x01(\t\x12\x12\n\nnode_count\x18\x03 \x01(\x05\"j\n\x12\x43oncurrencyLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ConcurrencyLine\"E\n\x19WritingInjectedSQLForNode\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"~\n\x1cWritingInjectedSQLForNodeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.WritingInjectedSQLForNode\"9\n\rNodeCompiling\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"f\n\x10NodeCompilingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NodeCompiling\"9\n\rNodeExecuting\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"f\n\x10NodeExecutingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NodeExecuting\"m\n\x10LogHookStartLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tstatement\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"l\n\x13LogHookStartLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.LogHookStartLine\"\x93\x01\n\x0eLogHookEndLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tstatement\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\"h\n\x11LogHookEndLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogHookEndLine\"\x93\x01\n\x0fSkippingDetails\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x15\n\rresource_type\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x11\n\tnode_name\x18\x04 \x01(\t\x12\r\n\x05index\x18\x05 \x01(\x05\x12\r\n\x05total\x18\x06 \x01(\x05\"j\n\x12SkippingDetailsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.SkippingDetails\"\r\n\x0bNothingToDo\"b\n\x0eNothingToDoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.NothingToDo\",\n\x1dRunningOperationUncaughtError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"\x86\x01\n RunningOperationUncaughtErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.RunningOperationUncaughtError\"\x93\x01\n\x0c\x45ndRunResult\x12*\n\x07results\x18\x01 \x03(\x0b\x32\x19.proto_types.RunResultMsg\x12\x14\n\x0c\x65lapsed_time\x18\x02 \x01(\x02\x12\x30\n\x0cgenerated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07success\x18\x04 \x01(\x08\"d\n\x0f\x45ndRunResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.EndRunResult\"\x11\n\x0fNoNodesSelected\"j\n\x12NoNodesSelectedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.NoNodesSelected\"w\n\x10\x43ommandCompleted\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x30\n\x0c\x63ompleted_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x65lapsed\x18\x04 \x01(\x02\"l\n\x13\x43ommandCompletedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.CommandCompleted\"z\n\x08ShowNode\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x0f\n\x07preview\x18\x02 \x01(\t\x12\x11\n\tis_inline\x18\x03 \x01(\x08\x12\x15\n\routput_format\x18\x04 \x01(\t\x12\x11\n\tunique_id\x18\x05 \x01(\t\x12\r\n\x05quiet\x18\x06 \x01(\x08\"\\\n\x0bShowNodeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.ShowNode\"\x7f\n\x0c\x43ompiledNode\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x10\n\x08\x63ompiled\x18\x02 \x01(\t\x12\x11\n\tis_inline\x18\x03 \x01(\x08\x12\x15\n\routput_format\x18\x04 \x01(\t\x12\x11\n\tunique_id\x18\x05 \x01(\t\x12\r\n\x05quiet\x18\x06 \x01(\x08\"d\n\x0f\x43ompiledNodeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.CompiledNode\"Y\n\x18SnapshotTimestampWarning\x12\x1f\n\x17snapshot_time_data_type\x18\x01 \x01(\t\x12\x1c\n\x14updated_at_data_type\x18\x02 \x01(\t\"|\n\x1bSnapshotTimestampWarningMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.SnapshotTimestampWarning\"\'\n\x18MicrobatchExecutionDebug\x12\x0b\n\x03msg\x18\x01 \x01(\t\"|\n\x1bMicrobatchExecutionDebugMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.MicrobatchExecutionDebug\"z\n\rLogStartBatch\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x0b\x62\x61tch_index\x18\x03 \x01(\x05\x12\x15\n\rtotal_batches\x18\x04 \x01(\x05\"f\n\x10LogStartBatchMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogStartBatch\"\xc6\x01\n\x0eLogBatchResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x13\n\x0b\x62\x61tch_index\x18\x04 \x01(\x05\x12\x15\n\rtotal_batches\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12!\n\x05group\x18\x07 \x01(\x0b\x32\x12.proto_types.Group\"h\n\x11LogBatchResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogBatchResult\"b\n\x17\x43\x61tchableExceptionOnRun\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"z\n\x1a\x43\x61tchableExceptionOnRunMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.CatchableExceptionOnRun\"_\n\x12InternalErrorOnRun\x12\x12\n\nbuild_path\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12(\n\tnode_info\x18\x03 \x01(\x0b\x32\x15.proto_types.NodeInfo\"p\n\x15InternalErrorOnRunMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.InternalErrorOnRun\"u\n\x15GenericExceptionOnRun\x12\x12\n\nbuild_path\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x0b\n\x03\x65xc\x18\x03 \x01(\t\x12(\n\tnode_info\x18\x04 \x01(\x0b\x32\x15.proto_types.NodeInfo\"v\n\x18GenericExceptionOnRunMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.GenericExceptionOnRun\"N\n\x1aNodeConnectionReleaseError\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"\x80\x01\n\x1dNodeConnectionReleaseErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.NodeConnectionReleaseError\"\x1f\n\nFoundStats\x12\x11\n\tstat_line\x18\x01 \x01(\t\"`\n\rFoundStatsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.FoundStats\"\x17\n\x15MainKeyboardInterrupt\"v\n\x18MainKeyboardInterruptMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MainKeyboardInterrupt\"#\n\x14MainEncounteredError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"t\n\x17MainEncounteredErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.MainEncounteredError\"%\n\x0eMainStackTrace\x12\x13\n\x0bstack_trace\x18\x01 \x01(\t\"h\n\x11MainStackTraceMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.MainStackTrace\"p\n\x13TimingInfoCollected\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12/\n\x0btiming_info\x18\x02 \x01(\x0b\x32\x1a.proto_types.TimingInfoMsg\"r\n\x16TimingInfoCollectedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.TimingInfoCollected\"&\n\x12LogDebugStackTrace\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"p\n\x15LogDebugStackTraceMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDebugStackTrace\"\x1e\n\x0e\x43heckCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"h\n\x11\x43heckCleanPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CheckCleanPath\" \n\x10\x43onfirmCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"l\n\x13\x43onfirmCleanPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConfirmCleanPath\"\"\n\x12ProtectedCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"p\n\x15ProtectedCleanPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.ProtectedCleanPath\"\x14\n\x12\x46inishedCleanPaths\"p\n\x15\x46inishedCleanPathsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.FinishedCleanPaths\"5\n\x0bOpenCommand\x12\x10\n\x08open_cmd\x18\x01 \x01(\t\x12\x14\n\x0cprofiles_dir\x18\x02 \x01(\t\"b\n\x0eOpenCommandMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.OpenCommand\"0\n\x0fServingDocsPort\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"j\n\x12ServingDocsPortMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ServingDocsPort\"%\n\x15ServingDocsAccessInfo\x12\x0c\n\x04port\x18\x01 \x01(\t\"v\n\x18ServingDocsAccessInfoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ServingDocsAccessInfo\"\x15\n\x13ServingDocsExitInfo\"r\n\x16ServingDocsExitInfoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.ServingDocsExitInfo\"\x97\x01\n\x10RunResultWarning\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12(\n\tnode_info\x18\x04 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12!\n\x05group\x18\x05 \x01(\x0b\x32\x12.proto_types.Group\"l\n\x13RunResultWarningMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.RunResultWarning\"\x97\x01\n\x10RunResultFailure\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12(\n\tnode_info\x18\x04 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12!\n\x05group\x18\x05 \x01(\x0b\x32\x12.proto_types.Group\"l\n\x13RunResultFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.RunResultFailure\"k\n\tStatsLine\x12\x30\n\x05stats\x18\x01 \x03(\x0b\x32!.proto_types.StatsLine.StatsEntry\x1a,\n\nStatsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"^\n\x0cStatsLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.StatsLine\"j\n\x0eRunResultError\x12\x0b\n\x03msg\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12!\n\x05group\x18\x03 \x01(\x0b\x32\x12.proto_types.Group\"h\n\x11RunResultErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.RunResultError\"S\n\x17RunResultErrorNoMessage\x12\x0e\n\x06status\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\"z\n\x1aRunResultErrorNoMessageMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.RunResultErrorNoMessage\"I\n\x0fSQLCompiledPath\x12\x0c\n\x04path\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\"j\n\x12SQLCompiledPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.SQLCompiledPath\"W\n\x14\x43heckNodeTestFailure\x12\x15\n\rrelation_name\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\"t\n\x17\x43heckNodeTestFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.CheckNodeTestFailure\"t\n\x0f\x45ndOfRunSummary\x12\x12\n\nnum_errors\x18\x01 \x01(\x05\x12\x14\n\x0cnum_warnings\x18\x02 \x01(\x05\x12\x1a\n\x12keyboard_interrupt\x18\x03 \x01(\x08\x12\x1b\n\x13num_partial_success\x18\x04 \x01(\x05\"j\n\x12\x45ndOfRunSummaryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.EndOfRunSummary\"g\n\x13MarkSkippedChildren\x12\x11\n\tunique_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12-\n\nrun_result\x18\x03 \x01(\x0b\x32\x19.proto_types.RunResultMsg\"r\n\x16MarkSkippedChildrenMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.MarkSkippedChildren\"e\n\x13LogSkipBecauseError\x12\x0e\n\x06schema\x18\x01 \x01(\t\x12\x10\n\x08relation\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\x12\x0e\n\x06status\x18\x05 \x01(\t\"r\n\x16LogSkipBecauseErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.LogSkipBecauseError\"\x14\n\x12\x45nsureGitInstalled\"p\n\x15\x45nsureGitInstalledMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.EnsureGitInstalled\"\x1a\n\x18\x44\x65psCreatingLocalSymlink\"|\n\x1b\x44\x65psCreatingLocalSymlinkMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DepsCreatingLocalSymlink\"\x19\n\x17\x44\x65psSymlinkNotAvailable\"z\n\x1a\x44\x65psSymlinkNotAvailableMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsSymlinkNotAvailable\"\x11\n\x0f\x44isableTracking\"j\n\x12\x44isableTrackingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DisableTracking\"\x1e\n\x0cSendingEvent\x12\x0e\n\x06kwargs\x18\x01 \x01(\t\"d\n\x0fSendingEventMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.SendingEvent\"\x12\n\x10SendEventFailure\"l\n\x13SendEventFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.SendEventFailure\"\r\n\x0b\x46lushEvents\"b\n\x0e\x46lushEventsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.FlushEvents\"\x14\n\x12\x46lushEventsFailure\"p\n\x15\x46lushEventsFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.FlushEventsFailure\"-\n\x19TrackingInitializeFailure\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"~\n\x1cTrackingInitializeFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.TrackingInitializeFailure\"P\n\x17RunResultWarningMessage\x12\x0b\n\x03msg\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\"z\n\x1aRunResultWarningMessageMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.RunResultWarningMessage\"\x1a\n\x0b\x44\x65\x62ugCmdOut\x12\x0b\n\x03msg\x18\x01 \x01(\t\"b\n\x0e\x44\x65\x62ugCmdOutMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.DebugCmdOut\"\x1d\n\x0e\x44\x65\x62ugCmdResult\x12\x0b\n\x03msg\x18\x01 \x01(\t\"h\n\x11\x44\x65\x62ugCmdResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.DebugCmdResult\"\x19\n\nListCmdOut\x12\x0b\n\x03msg\x18\x01 \x01(\t\"`\n\rListCmdOutMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.ListCmdOut\"\xec\x01\n\x0eResourceReport\x12\x14\n\x0c\x63ommand_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63ommand_success\x18\x03 \x01(\x08\x12\x1f\n\x17\x63ommand_wall_clock_time\x18\x04 \x01(\x02\x12\x19\n\x11process_user_time\x18\x05 \x01(\x02\x12\x1b\n\x13process_kernel_time\x18\x06 \x01(\x02\x12\x1b\n\x13process_mem_max_rss\x18\x07 \x01(\x03\x12\x19\n\x11process_in_blocks\x18\x08 \x01(\x03\x12\x1a\n\x12process_out_blocks\x18\t \x01(\x03\"h\n\x11ResourceReportMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ResourceReportb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10\x63ore_types.proto\x12\x0bproto_types\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\x99\x02\n\rCoreEventInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\x0b\n\x03msg\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\t\x12\x15\n\rinvocation_id\x18\x05 \x01(\t\x12\x0b\n\x03pid\x18\x06 \x01(\x05\x12\x0e\n\x06thread\x18\x07 \x01(\t\x12&\n\x02ts\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x34\n\x05\x65xtra\x18\t \x03(\x0b\x32%.proto_types.CoreEventInfo.ExtraEntry\x12\x10\n\x08\x63\x61tegory\x18\n \x01(\t\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"V\n\x0cNodeRelation\x12\x10\n\x08\x64\x61tabase\x18\n \x01(\t\x12\x0e\n\x06schema\x18\x0b \x01(\t\x12\r\n\x05\x61lias\x18\x0c \x01(\t\x12\x15\n\rrelation_name\x18\r \x01(\t\"\x91\x02\n\x08NodeInfo\x12\x11\n\tnode_path\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x11\n\tunique_id\x18\x03 \x01(\t\x12\x15\n\rresource_type\x18\x04 \x01(\t\x12\x14\n\x0cmaterialized\x18\x05 \x01(\t\x12\x13\n\x0bnode_status\x18\x06 \x01(\t\x12\x17\n\x0fnode_started_at\x18\x07 \x01(\t\x12\x18\n\x10node_finished_at\x18\x08 \x01(\t\x12%\n\x04meta\x18\t \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x30\n\rnode_relation\x18\n \x01(\x0b\x32\x19.proto_types.NodeRelation\"\x7f\n\rTimingInfoMsg\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\nstarted_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x30\n\x0c\x63ompleted_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xd1\x01\n\x0cRunResultMsg\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12/\n\x0btiming_info\x18\x03 \x03(\x0b\x32\x1a.proto_types.TimingInfoMsg\x12\x0e\n\x06thread\x18\x04 \x01(\t\x12\x16\n\x0e\x65xecution_time\x18\x05 \x01(\x02\x12\x31\n\x10\x61\x64\x61pter_response\x18\x06 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x14\n\x0cnum_failures\x18\x07 \x01(\x05\"\\\n\nColumnType\x12\x13\n\x0b\x63olumn_name\x18\x01 \x01(\t\x12\x1c\n\x14previous_column_type\x18\x02 \x01(\t\x12\x1b\n\x13\x63urrent_column_type\x18\x03 \x01(\t\"Y\n\x10\x43olumnConstraint\x12\x13\n\x0b\x63olumn_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63onstraint_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63onstraint_type\x18\x03 \x01(\t\"T\n\x0fModelConstraint\x12\x17\n\x0f\x63onstraint_name\x18\x01 \x01(\t\x12\x17\n\x0f\x63onstraint_type\x18\x02 \x01(\t\x12\x0f\n\x07\x63olumns\x18\x03 \x03(\t\"9\n\x11MainReportVersion\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x13\n\x0blog_version\x18\x02 \x01(\x05\"n\n\x14MainReportVersionMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.MainReportVersion\"r\n\x0eMainReportArgs\x12\x33\n\x04\x61rgs\x18\x01 \x03(\x0b\x32%.proto_types.MainReportArgs.ArgsEntry\x1a+\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"h\n\x11MainReportArgsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.MainReportArgs\"+\n\x15MainTrackingUserState\x12\x12\n\nuser_state\x18\x01 \x01(\t\"v\n\x18MainTrackingUserStateMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MainTrackingUserState\"5\n\x0fMergedFromState\x12\x12\n\nnum_merged\x18\x01 \x01(\x05\x12\x0e\n\x06sample\x18\x02 \x03(\t\"j\n\x12MergedFromStateMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.MergedFromState\"A\n\x14MissingProfileTarget\x12\x14\n\x0cprofile_name\x18\x01 \x01(\t\x12\x13\n\x0btarget_name\x18\x02 \x01(\t\"t\n\x17MissingProfileTargetMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.MissingProfileTarget\"(\n\x11InvalidOptionYAML\x12\x13\n\x0boption_name\x18\x01 \x01(\t\"n\n\x14InvalidOptionYAMLMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.InvalidOptionYAML\"!\n\x12LogDbtProjectError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"p\n\x15LogDbtProjectErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDbtProjectError\"3\n\x12LogDbtProfileError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\x12\x10\n\x08profiles\x18\x02 \x03(\t\"p\n\x15LogDbtProfileErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDbtProfileError\"!\n\x12StarterProjectPath\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"p\n\x15StarterProjectPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.StarterProjectPath\"$\n\x15\x43onfigFolderDirectory\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"v\n\x18\x43onfigFolderDirectoryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ConfigFolderDirectory\"\'\n\x14NoSampleProfileFound\x12\x0f\n\x07\x61\x64\x61pter\x18\x01 \x01(\t\"t\n\x17NoSampleProfileFoundMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.NoSampleProfileFound\"6\n\x18ProfileWrittenWithSample\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"|\n\x1bProfileWrittenWithSampleMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ProfileWrittenWithSample\"B\n$ProfileWrittenWithTargetTemplateYAML\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x94\x01\n\'ProfileWrittenWithTargetTemplateYAMLMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12?\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x31.proto_types.ProfileWrittenWithTargetTemplateYAML\"C\n%ProfileWrittenWithProjectTemplateYAML\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\"\x96\x01\n(ProfileWrittenWithProjectTemplateYAMLMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12@\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x32.proto_types.ProfileWrittenWithProjectTemplateYAML\"\x12\n\x10SettingUpProfile\"l\n\x13SettingUpProfileMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.SettingUpProfile\"\x1c\n\x1aInvalidProfileTemplateYAML\"\x80\x01\n\x1dInvalidProfileTemplateYAMLMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.InvalidProfileTemplateYAML\"(\n\x18ProjectNameAlreadyExists\x12\x0c\n\x04name\x18\x01 \x01(\t\"|\n\x1bProjectNameAlreadyExistsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ProjectNameAlreadyExists\"K\n\x0eProjectCreated\x12\x14\n\x0cproject_name\x18\x01 \x01(\t\x12\x10\n\x08\x64ocs_url\x18\x02 \x01(\t\x12\x11\n\tslack_url\x18\x03 \x01(\t\"h\n\x11ProjectCreatedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ProjectCreated\"@\n\x1aPackageRedirectDeprecation\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"\x80\x01\n\x1dPackageRedirectDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.PackageRedirectDeprecation\"\x1f\n\x1dPackageInstallPathDeprecation\"\x86\x01\n PackageInstallPathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.PackageInstallPathDeprecation\"H\n\x1b\x43onfigSourcePathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"\x82\x01\n\x1e\x43onfigSourcePathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConfigSourcePathDeprecation\"F\n\x19\x43onfigDataPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"~\n\x1c\x43onfigDataPathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.ConfigDataPathDeprecation\".\n\x17MetricAttributesRenamed\x12\x13\n\x0bmetric_name\x18\x01 \x01(\t\"z\n\x1aMetricAttributesRenamedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.MetricAttributesRenamed\"+\n\x17\x45xposureNameDeprecation\x12\x10\n\x08\x65xposure\x18\x01 \x01(\t\"z\n\x1a\x45xposureNameDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.ExposureNameDeprecation\"^\n\x13InternalDeprecation\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12\x18\n\x10suggested_action\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\"r\n\x16InternalDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.InternalDeprecation\"@\n\x1a\x45nvironmentVariableRenamed\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"\x80\x01\n\x1d\x45nvironmentVariableRenamedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.EnvironmentVariableRenamed\"3\n\x18\x43onfigLogPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\"|\n\x1b\x43onfigLogPathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.ConfigLogPathDeprecation\"6\n\x1b\x43onfigTargetPathDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\"\x82\x01\n\x1e\x43onfigTargetPathDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConfigTargetPathDeprecation\"C\n\x16TestsConfigDeprecation\x12\x17\n\x0f\x64\x65precated_path\x18\x01 \x01(\t\x12\x10\n\x08\x65xp_path\x18\x02 \x01(\t\"x\n\x19TestsConfigDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.TestsConfigDeprecation\"\x1e\n\x1cProjectFlagsMovedDeprecation\"\x84\x01\n\x1fProjectFlagsMovedDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x37\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32).proto_types.ProjectFlagsMovedDeprecation\"C\n\x1fSpacesInResourceNameDeprecation\x12\x11\n\tunique_id\x18\x01 \x01(\t\x12\r\n\x05level\x18\x02 \x01(\t\"\x8a\x01\n\"SpacesInResourceNameDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.SpacesInResourceNameDeprecation\"i\n\"ResourceNamesWithSpacesDeprecation\x12\x1b\n\x13\x63ount_invalid_names\x18\x01 \x01(\x05\x12\x17\n\x0fshow_debug_hint\x18\x02 \x01(\x08\x12\r\n\x05level\x18\x03 \x01(\t\"\x90\x01\n%ResourceNamesWithSpacesDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12=\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32/.proto_types.ResourceNamesWithSpacesDeprecation\"_\n)PackageMaterializationOverrideDeprecation\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x1c\n\x14materialization_name\x18\x02 \x01(\t\"\x9e\x01\n,PackageMaterializationOverrideDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x44\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x36.proto_types.PackageMaterializationOverrideDeprecation\"#\n!SourceFreshnessProjectHooksNotRun\"\x8e\x01\n$SourceFreshnessProjectHooksNotRunMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.SourceFreshnessProjectHooksNotRun\"0\n.MFTimespineWithoutYamlConfigurationDeprecation\"\xa8\x01\n1MFTimespineWithoutYamlConfigurationDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12I\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32;.proto_types.MFTimespineWithoutYamlConfigurationDeprecation\"#\n!MFCumulativeTypeParamsDeprecation\"\x8e\x01\n$MFCumulativeTypeParamsDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.MFCumulativeTypeParamsDeprecation\",\n*MicrobatchMacroOutsideOfBatchesDeprecation\"\xa0\x01\n-MicrobatchMacroOutsideOfBatchesDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x45\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x37.proto_types.MicrobatchMacroOutsideOfBatchesDeprecation\"V\n\x0f\x44\x65precatedModel\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x15\n\rmodel_version\x18\x02 \x01(\t\x12\x18\n\x10\x64\x65precation_date\x18\x03 \x01(\t\"j\n\x12\x44\x65precatedModelMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DeprecatedModel\"7\n\x12InputFileDiffError\x12\x10\n\x08\x63\x61tegory\x18\x01 \x01(\t\x12\x0f\n\x07\x66ile_id\x18\x02 \x01(\t\"p\n\x15InputFileDiffErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.InputFileDiffError\"?\n\x14InvalidValueForField\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x13\n\x0b\x66ield_value\x18\x02 \x01(\t\"t\n\x17InvalidValueForFieldMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.InvalidValueForField\"Q\n\x11ValidationWarning\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x12\n\nfield_name\x18\x02 \x01(\t\x12\x11\n\tnode_name\x18\x03 \x01(\t\"n\n\x14ValidationWarningMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.ValidationWarning\"!\n\x11ParsePerfInfoPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"n\n\x14ParsePerfInfoPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.ParsePerfInfoPath\"1\n!PartialParsingErrorProcessingFile\x12\x0c\n\x04\x66ile\x18\x01 \x01(\t\"\x8e\x01\n$PartialParsingErrorProcessingFileMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.PartialParsingErrorProcessingFile\"\x86\x01\n\x13PartialParsingError\x12?\n\x08\x65xc_info\x18\x01 \x03(\x0b\x32-.proto_types.PartialParsingError.ExcInfoEntry\x1a.\n\x0c\x45xcInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"r\n\x16PartialParsingErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.PartialParsingError\"\x1b\n\x19PartialParsingSkipParsing\"~\n\x1cPartialParsingSkipParsingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.PartialParsingSkipParsing\"&\n\x14UnableToPartialParse\x12\x0e\n\x06reason\x18\x01 \x01(\t\"t\n\x17UnableToPartialParseMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.UnableToPartialParse\"f\n\x12StateCheckVarsHash\x12\x10\n\x08\x63hecksum\x18\x01 \x01(\t\x12\x0c\n\x04vars\x18\x02 \x01(\t\x12\x0f\n\x07profile\x18\x03 \x01(\t\x12\x0e\n\x06target\x18\x04 \x01(\t\x12\x0f\n\x07version\x18\x05 \x01(\t\"p\n\x15StateCheckVarsHashMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.StateCheckVarsHash\"\x1a\n\x18PartialParsingNotEnabled\"|\n\x1bPartialParsingNotEnabledMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.PartialParsingNotEnabled\"C\n\x14ParsedFileLoadFailed\x12\x0c\n\x04path\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"t\n\x17ParsedFileLoadFailedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.ParsedFileLoadFailed\"H\n\x15PartialParsingEnabled\x12\x0f\n\x07\x64\x65leted\x18\x01 \x01(\x05\x12\r\n\x05\x61\x64\x64\x65\x64\x18\x02 \x01(\x05\x12\x0f\n\x07\x63hanged\x18\x03 \x01(\x05\"v\n\x18PartialParsingEnabledMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.PartialParsingEnabled\"8\n\x12PartialParsingFile\x12\x0f\n\x07\x66ile_id\x18\x01 \x01(\t\x12\x11\n\toperation\x18\x02 \x01(\t\"p\n\x15PartialParsingFileMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.PartialParsingFile\"\xaf\x01\n\x1fInvalidDisabledTargetInTestNode\x12\x1b\n\x13resource_type_title\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x1a\n\x12original_file_path\x18\x03 \x01(\t\x12\x13\n\x0btarget_kind\x18\x04 \x01(\t\x12\x13\n\x0btarget_name\x18\x05 \x01(\t\x12\x16\n\x0etarget_package\x18\x06 \x01(\t\"\x8a\x01\n\"InvalidDisabledTargetInTestNodeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.InvalidDisabledTargetInTestNode\"7\n\x18UnusedResourceConfigPath\x12\x1b\n\x13unused_config_paths\x18\x01 \x03(\t\"|\n\x1bUnusedResourceConfigPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.UnusedResourceConfigPath\"3\n\rSeedIncreased\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"f\n\x10SeedIncreasedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.SeedIncreased\">\n\x18SeedExceedsLimitSamePath\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"|\n\x1bSeedExceedsLimitSamePathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.SeedExceedsLimitSamePath\"D\n\x1eSeedExceedsLimitAndPathChanged\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"\x88\x01\n!SeedExceedsLimitAndPathChangedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.SeedExceedsLimitAndPathChanged\"\\\n\x1fSeedExceedsLimitChecksumChanged\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x15\n\rchecksum_name\x18\x03 \x01(\t\"\x8a\x01\n\"SeedExceedsLimitChecksumChangedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.SeedExceedsLimitChecksumChanged\"%\n\x0cUnusedTables\x12\x15\n\runused_tables\x18\x01 \x03(\t\"d\n\x0fUnusedTablesMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.UnusedTables\"\x87\x01\n\x17WrongResourceSchemaFile\x12\x12\n\npatch_name\x18\x01 \x01(\t\x12\x15\n\rresource_type\x18\x02 \x01(\t\x12\x1c\n\x14plural_resource_type\x18\x03 \x01(\t\x12\x10\n\x08yaml_key\x18\x04 \x01(\t\x12\x11\n\tfile_path\x18\x05 \x01(\t\"z\n\x1aWrongResourceSchemaFileMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.WrongResourceSchemaFile\"K\n\x10NoNodeForYamlKey\x12\x12\n\npatch_name\x18\x01 \x01(\t\x12\x10\n\x08yaml_key\x18\x02 \x01(\t\x12\x11\n\tfile_path\x18\x03 \x01(\t\"l\n\x13NoNodeForYamlKeyMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.NoNodeForYamlKey\"+\n\x15MacroNotFoundForPatch\x12\x12\n\npatch_name\x18\x01 \x01(\t\"v\n\x18MacroNotFoundForPatchMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MacroNotFoundForPatch\"\xb8\x01\n\x16NodeNotFoundOrDisabled\x12\x1a\n\x12original_file_path\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x1b\n\x13resource_type_title\x18\x03 \x01(\t\x12\x13\n\x0btarget_name\x18\x04 \x01(\t\x12\x13\n\x0btarget_kind\x18\x05 \x01(\t\x12\x16\n\x0etarget_package\x18\x06 \x01(\t\x12\x10\n\x08\x64isabled\x18\x07 \x01(\t\"x\n\x19NodeNotFoundOrDisabledMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.NodeNotFoundOrDisabled\"H\n\x0fJinjaLogWarning\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"j\n\x12JinjaLogWarningMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.JinjaLogWarning\"E\n\x0cJinjaLogInfo\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"d\n\x0fJinjaLogInfoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.JinjaLogInfo\"F\n\rJinjaLogDebug\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03msg\x18\x02 \x01(\t\"f\n\x10JinjaLogDebugMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.JinjaLogDebug\"\xae\x01\n\x1eUnpinnedRefNewVersionAvailable\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x15\n\rref_node_name\x18\x02 \x01(\t\x12\x18\n\x10ref_node_package\x18\x03 \x01(\t\x12\x18\n\x10ref_node_version\x18\x04 \x01(\t\x12\x17\n\x0fref_max_version\x18\x05 \x01(\t\"\x88\x01\n!UnpinnedRefNewVersionAvailableMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.UnpinnedRefNewVersionAvailable\"\xc6\x01\n\x1cUpcomingReferenceDeprecation\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x19\n\x11ref_model_package\x18\x02 \x01(\t\x12\x16\n\x0eref_model_name\x18\x03 \x01(\t\x12\x19\n\x11ref_model_version\x18\x04 \x01(\t\x12 \n\x18ref_model_latest_version\x18\x05 \x01(\t\x12\"\n\x1aref_model_deprecation_date\x18\x06 \x01(\t\"\x84\x01\n\x1fUpcomingReferenceDeprecationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x37\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32).proto_types.UpcomingReferenceDeprecation\"\xbd\x01\n\x13\x44\x65precatedReference\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x19\n\x11ref_model_package\x18\x02 \x01(\t\x12\x16\n\x0eref_model_name\x18\x03 \x01(\t\x12\x19\n\x11ref_model_version\x18\x04 \x01(\t\x12 \n\x18ref_model_latest_version\x18\x05 \x01(\t\x12\"\n\x1aref_model_deprecation_date\x18\x06 \x01(\t\"r\n\x16\x44\x65precatedReferenceMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DeprecatedReference\"<\n$UnsupportedConstraintMaterialization\x12\x14\n\x0cmaterialized\x18\x01 \x01(\t\"\x94\x01\n\'UnsupportedConstraintMaterializationMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12?\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x31.proto_types.UnsupportedConstraintMaterialization\"M\n\x14ParseInlineNodeError\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\"t\n\x17ParseInlineNodeErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.ParseInlineNodeError\"(\n\x19SemanticValidationFailure\x12\x0b\n\x03msg\x18\x02 \x01(\t\"~\n\x1cSemanticValidationFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.SemanticValidationFailure\"\x8a\x03\n\x19UnversionedBreakingChange\x12\x18\n\x10\x62reaking_changes\x18\x01 \x03(\t\x12\x12\n\nmodel_name\x18\x02 \x01(\t\x12\x17\n\x0fmodel_file_path\x18\x03 \x01(\t\x12\"\n\x1a\x63ontract_enforced_disabled\x18\x04 \x01(\x08\x12\x17\n\x0f\x63olumns_removed\x18\x05 \x03(\t\x12\x34\n\x13\x63olumn_type_changes\x18\x06 \x03(\x0b\x32\x17.proto_types.ColumnType\x12I\n\"enforced_column_constraint_removed\x18\x07 \x03(\x0b\x32\x1d.proto_types.ColumnConstraint\x12G\n!enforced_model_constraint_removed\x18\x08 \x03(\x0b\x32\x1c.proto_types.ModelConstraint\x12\x1f\n\x17materialization_changed\x18\t \x03(\t\"~\n\x1cUnversionedBreakingChangeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.UnversionedBreakingChange\"*\n\x14WarnStateTargetEqual\x12\x12\n\nstate_path\x18\x01 \x01(\t\"t\n\x17WarnStateTargetEqualMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.WarnStateTargetEqual\"%\n\x16\x46reshnessConfigProblem\x12\x0b\n\x03msg\x18\x01 \x01(\t\"x\n\x19\x46reshnessConfigProblemMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.FreshnessConfigProblem\"6\n MicrobatchModelNoEventTimeInputs\x12\x12\n\nmodel_name\x18\x01 \x01(\t\"\x8c\x01\n#MicrobatchModelNoEventTimeInputsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12;\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32-.proto_types.MicrobatchModelNoEventTimeInputs\"J\n\x1eInvalidConcurrentBatchesConfig\x12\x12\n\nnum_models\x18\x01 \x01(\x05\x12\x14\n\x0c\x61\x64\x61pter_type\x18\x02 \x01(\t\"\x88\x01\n!InvalidConcurrentBatchesConfigMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.InvalidConcurrentBatchesConfig\"/\n\x1dGitSparseCheckoutSubdirectory\x12\x0e\n\x06subdir\x18\x01 \x01(\t\"\x86\x01\n GitSparseCheckoutSubdirectoryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.GitSparseCheckoutSubdirectory\"/\n\x1bGitProgressCheckoutRevision\x12\x10\n\x08revision\x18\x01 \x01(\t\"\x82\x01\n\x1eGitProgressCheckoutRevisionMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.GitProgressCheckoutRevision\"4\n%GitProgressUpdatingExistingDependency\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"\x96\x01\n(GitProgressUpdatingExistingDependencyMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12@\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x32.proto_types.GitProgressUpdatingExistingDependency\".\n\x1fGitProgressPullingNewDependency\x12\x0b\n\x03\x64ir\x18\x01 \x01(\t\"\x8a\x01\n\"GitProgressPullingNewDependencyMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.GitProgressPullingNewDependency\"\x1d\n\x0eGitNothingToDo\x12\x0b\n\x03sha\x18\x01 \x01(\t\"h\n\x11GitNothingToDoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.GitNothingToDo\"E\n\x1fGitProgressUpdatedCheckoutRange\x12\x11\n\tstart_sha\x18\x01 \x01(\t\x12\x0f\n\x07\x65nd_sha\x18\x02 \x01(\t\"\x8a\x01\n\"GitProgressUpdatedCheckoutRangeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.GitProgressUpdatedCheckoutRange\"*\n\x17GitProgressCheckedOutAt\x12\x0f\n\x07\x65nd_sha\x18\x01 \x01(\t\"z\n\x1aGitProgressCheckedOutAtMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.GitProgressCheckedOutAt\")\n\x1aRegistryProgressGETRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\"\x80\x01\n\x1dRegistryProgressGETRequestMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.RegistryProgressGETRequest\"=\n\x1bRegistryProgressGETResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x11\n\tresp_code\x18\x02 \x01(\x05\"\x82\x01\n\x1eRegistryProgressGETResponseMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.RegistryProgressGETResponse\"_\n\x1dSelectorReportInvalidSelector\x12\x17\n\x0fvalid_selectors\x18\x01 \x01(\t\x12\x13\n\x0bspec_method\x18\x02 \x01(\t\x12\x10\n\x08raw_spec\x18\x03 \x01(\t\"\x86\x01\n SelectorReportInvalidSelectorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.SelectorReportInvalidSelector\"\x15\n\x13\x44\x65psNoPackagesFound\"r\n\x16\x44\x65psNoPackagesFoundMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DepsNoPackagesFound\"/\n\x17\x44\x65psStartPackageInstall\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\"z\n\x1a\x44\x65psStartPackageInstallMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsStartPackageInstall\"\'\n\x0f\x44\x65psInstallInfo\x12\x14\n\x0cversion_name\x18\x01 \x01(\t\"j\n\x12\x44\x65psInstallInfoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DepsInstallInfo\"-\n\x13\x44\x65psUpdateAvailable\x12\x16\n\x0eversion_latest\x18\x01 \x01(\t\"r\n\x16\x44\x65psUpdateAvailableMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.DepsUpdateAvailable\"\x0e\n\x0c\x44\x65psUpToDate\"d\n\x0f\x44\x65psUpToDateMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.DepsUpToDate\",\n\x14\x44\x65psListSubdirectory\x12\x14\n\x0csubdirectory\x18\x01 \x01(\t\"t\n\x17\x44\x65psListSubdirectoryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.DepsListSubdirectory\".\n\x1a\x44\x65psNotifyUpdatesAvailable\x12\x10\n\x08packages\x18\x01 \x03(\t\"\x80\x01\n\x1d\x44\x65psNotifyUpdatesAvailableMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.DepsNotifyUpdatesAvailable\".\n\x1fRegistryIndexProgressGETRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\"\x8a\x01\n\"RegistryIndexProgressGETRequestMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.RegistryIndexProgressGETRequest\"B\n RegistryIndexProgressGETResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x11\n\tresp_code\x18\x02 \x01(\x05\"\x8c\x01\n#RegistryIndexProgressGETResponseMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12;\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32-.proto_types.RegistryIndexProgressGETResponse\"2\n\x1eRegistryResponseUnexpectedType\x12\x10\n\x08response\x18\x01 \x01(\t\"\x88\x01\n!RegistryResponseUnexpectedTypeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.RegistryResponseUnexpectedType\"2\n\x1eRegistryResponseMissingTopKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x88\x01\n!RegistryResponseMissingTopKeysMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x39\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32+.proto_types.RegistryResponseMissingTopKeys\"5\n!RegistryResponseMissingNestedKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x8e\x01\n$RegistryResponseMissingNestedKeysMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12<\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32..proto_types.RegistryResponseMissingNestedKeys\"3\n\x1fRegistryResponseExtraNestedKeys\x12\x10\n\x08response\x18\x01 \x01(\t\"\x8a\x01\n\"RegistryResponseExtraNestedKeysMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.RegistryResponseExtraNestedKeys\"(\n\x18\x44\x65psSetDownloadDirectory\x12\x0c\n\x04path\x18\x01 \x01(\t\"|\n\x1b\x44\x65psSetDownloadDirectoryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DepsSetDownloadDirectory\"-\n\x0c\x44\x65psUnpinned\x12\x10\n\x08revision\x18\x01 \x01(\t\x12\x0b\n\x03git\x18\x02 \x01(\t\"d\n\x0f\x44\x65psUnpinnedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.DepsUnpinned\"/\n\x1bNoNodesForSelectionCriteria\x12\x10\n\x08spec_raw\x18\x01 \x01(\t\"\x82\x01\n\x1eNoNodesForSelectionCriteriaMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.NoNodesForSelectionCriteria\")\n\x10\x44\x65psLockUpdating\x12\x15\n\rlock_filepath\x18\x01 \x01(\t\"l\n\x13\x44\x65psLockUpdatingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.DepsLockUpdating\"R\n\x0e\x44\x65psAddPackage\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x19\n\x11packages_filepath\x18\x03 \x01(\t\"h\n\x11\x44\x65psAddPackageMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.DepsAddPackage\"\xa7\x01\n\x19\x44\x65psFoundDuplicatePackage\x12S\n\x0fremoved_package\x18\x01 \x03(\x0b\x32:.proto_types.DepsFoundDuplicatePackage.RemovedPackageEntry\x1a\x35\n\x13RemovedPackageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"~\n\x1c\x44\x65psFoundDuplicatePackageMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.DepsFoundDuplicatePackage\"$\n\x12\x44\x65psVersionMissing\x12\x0e\n\x06source\x18\x01 \x01(\t\"p\n\x15\x44\x65psVersionMissingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.DepsVersionMissing\"/\n\x17\x44\x65psScrubbedPackageName\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\"z\n\x1a\x44\x65psScrubbedPackageNameMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsScrubbedPackageName\"?\n\x0f\x41rtifactWritten\x12\x15\n\rartifact_type\x18\x01 \x01(\t\x12\x15\n\rartifact_path\x18\x02 \x01(\t\"j\n\x12\x41rtifactWrittenMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ArtifactWritten\"*\n\x1bRunningOperationCaughtError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"\x82\x01\n\x1eRunningOperationCaughtErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.RunningOperationCaughtError\"\x11\n\x0f\x43ompileComplete\"j\n\x12\x43ompileCompleteMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.CompileComplete\"\x18\n\x16\x46reshnessCheckComplete\"x\n\x19\x46reshnessCheckCompleteMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.FreshnessCheckComplete\"\x1c\n\nSeedHeader\x12\x0e\n\x06header\x18\x01 \x01(\t\"`\n\rSeedHeaderMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.SeedHeader\"]\n\x12SQLRunnerException\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x02 \x01(\t\x12(\n\tnode_info\x18\x03 \x01(\x0b\x32\x15.proto_types.NodeInfo\"p\n\x15SQLRunnerExceptionMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.SQLRunnerException\"\x87\x01\n\x05Group\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0cpackage_name\x18\x03 \x01(\t\x12,\n\x05owner\x18\x07 \x03(\x0b\x32\x1d.proto_types.Group.OwnerEntry\x1a,\n\nOwnerEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xe2\x01\n\rLogTestResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\x12\n\nnum_models\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x14\n\x0cnum_failures\x18\x07 \x01(\x05\x12!\n\x05group\x18\x08 \x01(\x0b\x32\x12.proto_types.Group\x12\x15\n\rattached_node\x18\t \x01(\t\"f\n\x10LogTestResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogTestResult\"k\n\x0cLogStartLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"d\n\x0fLogStartLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.LogStartLine\"\xb8\x01\n\x0eLogModelResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12!\n\x05group\x18\x07 \x01(\x0b\x32\x12.proto_types.Group\"h\n\x11LogModelResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogModelResult\"\x92\x02\n\x11LogSnapshotResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x34\n\x03\x63\x66g\x18\x07 \x03(\x0b\x32\'.proto_types.LogSnapshotResult.CfgEntry\x12\x16\n\x0eresult_message\x18\x08 \x01(\t\x1a*\n\x08\x43\x66gEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"n\n\x14LogSnapshotResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.LogSnapshotResult\"\xb9\x01\n\rLogSeedResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x16\n\x0eresult_message\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12\x0e\n\x06schema\x18\x07 \x01(\t\x12\x10\n\x08relation\x18\x08 \x01(\t\"f\n\x10LogSeedResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogSeedResult\"\xad\x01\n\x12LogFreshnessResult\x12\x0e\n\x06status\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x05 \x01(\x02\x12\x13\n\x0bsource_name\x18\x06 \x01(\t\x12\x12\n\ntable_name\x18\x07 \x01(\t\"p\n\x15LogFreshnessResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogFreshnessResult\"\x98\x01\n\x11LogNodeNoOpResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\"n\n\x14LogNodeNoOpResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.LogNodeNoOpResult\"\"\n\rLogCancelLine\x12\x11\n\tconn_name\x18\x01 \x01(\t\"f\n\x10LogCancelLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogCancelLine\"\x1f\n\x0f\x44\x65\x66\x61ultSelector\x12\x0c\n\x04name\x18\x01 \x01(\t\"j\n\x12\x44\x65\x66\x61ultSelectorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DefaultSelector\"5\n\tNodeStart\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"^\n\x0cNodeStartMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.NodeStart\"g\n\x0cNodeFinished\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12-\n\nrun_result\x18\x02 \x01(\x0b\x32\x19.proto_types.RunResultMsg\"d\n\x0fNodeFinishedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.NodeFinished\"+\n\x1bQueryCancelationUnsupported\x12\x0c\n\x04type\x18\x01 \x01(\t\"\x82\x01\n\x1eQueryCancelationUnsupportedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.QueryCancelationUnsupported\"O\n\x0f\x43oncurrencyLine\x12\x13\n\x0bnum_threads\x18\x01 \x01(\x05\x12\x13\n\x0btarget_name\x18\x02 \x01(\t\x12\x12\n\nnode_count\x18\x03 \x01(\x05\"j\n\x12\x43oncurrencyLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ConcurrencyLine\"E\n\x19WritingInjectedSQLForNode\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"~\n\x1cWritingInjectedSQLForNodeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.WritingInjectedSQLForNode\"9\n\rNodeCompiling\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"f\n\x10NodeCompilingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NodeCompiling\"9\n\rNodeExecuting\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\"f\n\x10NodeExecutingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NodeExecuting\"m\n\x10LogHookStartLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tstatement\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\"l\n\x13LogHookStartLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.LogHookStartLine\"\x93\x01\n\x0eLogHookEndLine\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x11\n\tstatement\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\r\n\x05index\x18\x04 \x01(\x05\x12\r\n\x05total\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\"h\n\x11LogHookEndLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogHookEndLine\"\x93\x01\n\x0fSkippingDetails\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x15\n\rresource_type\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\x12\x11\n\tnode_name\x18\x04 \x01(\t\x12\r\n\x05index\x18\x05 \x01(\x05\x12\r\n\x05total\x18\x06 \x01(\x05\"j\n\x12SkippingDetailsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.SkippingDetails\"\r\n\x0bNothingToDo\"b\n\x0eNothingToDoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.NothingToDo\",\n\x1dRunningOperationUncaughtError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"\x86\x01\n RunningOperationUncaughtErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x38\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32*.proto_types.RunningOperationUncaughtError\"\x93\x01\n\x0c\x45ndRunResult\x12*\n\x07results\x18\x01 \x03(\x0b\x32\x19.proto_types.RunResultMsg\x12\x14\n\x0c\x65lapsed_time\x18\x02 \x01(\x02\x12\x30\n\x0cgenerated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07success\x18\x04 \x01(\x08\"d\n\x0f\x45ndRunResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.EndRunResult\"\x11\n\x0fNoNodesSelected\"j\n\x12NoNodesSelectedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.NoNodesSelected\"w\n\x10\x43ommandCompleted\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x30\n\x0c\x63ompleted_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07\x65lapsed\x18\x04 \x01(\x02\"l\n\x13\x43ommandCompletedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.CommandCompleted\"z\n\x08ShowNode\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x0f\n\x07preview\x18\x02 \x01(\t\x12\x11\n\tis_inline\x18\x03 \x01(\x08\x12\x15\n\routput_format\x18\x04 \x01(\t\x12\x11\n\tunique_id\x18\x05 \x01(\t\x12\r\n\x05quiet\x18\x06 \x01(\x08\"\\\n\x0bShowNodeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.ShowNode\"\x7f\n\x0c\x43ompiledNode\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x10\n\x08\x63ompiled\x18\x02 \x01(\t\x12\x11\n\tis_inline\x18\x03 \x01(\x08\x12\x15\n\routput_format\x18\x04 \x01(\t\x12\x11\n\tunique_id\x18\x05 \x01(\t\x12\r\n\x05quiet\x18\x06 \x01(\x08\"d\n\x0f\x43ompiledNodeMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.CompiledNode\"Y\n\x18SnapshotTimestampWarning\x12\x1f\n\x17snapshot_time_data_type\x18\x01 \x01(\t\x12\x1c\n\x14updated_at_data_type\x18\x02 \x01(\t\"|\n\x1bSnapshotTimestampWarningMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.SnapshotTimestampWarning\"\'\n\x18MicrobatchExecutionDebug\x12\x0b\n\x03msg\x18\x01 \x01(\t\"|\n\x1bMicrobatchExecutionDebugMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.MicrobatchExecutionDebug\"z\n\rLogStartBatch\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x13\n\x0b\x62\x61tch_index\x18\x03 \x01(\x05\x12\x15\n\rtotal_batches\x18\x04 \x01(\x05\"f\n\x10LogStartBatchMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.LogStartBatch\"\xc6\x01\n\x0eLogBatchResult\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x13\n\x0b\x62\x61tch_index\x18\x04 \x01(\x05\x12\x15\n\rtotal_batches\x18\x05 \x01(\x05\x12\x16\n\x0e\x65xecution_time\x18\x06 \x01(\x02\x12!\n\x05group\x18\x07 \x01(\x0b\x32\x12.proto_types.Group\"h\n\x11LogBatchResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.LogBatchResult\"b\n\x17\x43\x61tchableExceptionOnRun\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"z\n\x1a\x43\x61tchableExceptionOnRunMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.CatchableExceptionOnRun\"_\n\x12InternalErrorOnRun\x12\x12\n\nbuild_path\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12(\n\tnode_info\x18\x03 \x01(\x0b\x32\x15.proto_types.NodeInfo\"p\n\x15InternalErrorOnRunMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.InternalErrorOnRun\"u\n\x15GenericExceptionOnRun\x12\x12\n\nbuild_path\x18\x01 \x01(\t\x12\x11\n\tunique_id\x18\x02 \x01(\t\x12\x0b\n\x03\x65xc\x18\x03 \x01(\t\x12(\n\tnode_info\x18\x04 \x01(\x0b\x32\x15.proto_types.NodeInfo\"v\n\x18GenericExceptionOnRunMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.GenericExceptionOnRun\"N\n\x1aNodeConnectionReleaseError\x12\x11\n\tnode_name\x18\x01 \x01(\t\x12\x0b\n\x03\x65xc\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"\x80\x01\n\x1dNodeConnectionReleaseErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x35\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\'.proto_types.NodeConnectionReleaseError\"\x1f\n\nFoundStats\x12\x11\n\tstat_line\x18\x01 \x01(\t\"`\n\rFoundStatsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.FoundStats\"\x17\n\x15MainKeyboardInterrupt\"v\n\x18MainKeyboardInterruptMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.MainKeyboardInterrupt\"#\n\x14MainEncounteredError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"t\n\x17MainEncounteredErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.MainEncounteredError\"%\n\x0eMainStackTrace\x12\x13\n\x0bstack_trace\x18\x01 \x01(\t\"h\n\x11MainStackTraceMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.MainStackTrace\"p\n\x13TimingInfoCollected\x12(\n\tnode_info\x18\x01 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12/\n\x0btiming_info\x18\x02 \x01(\x0b\x32\x1a.proto_types.TimingInfoMsg\"r\n\x16TimingInfoCollectedMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.TimingInfoCollected\"&\n\x12LogDebugStackTrace\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"p\n\x15LogDebugStackTraceMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.LogDebugStackTrace\"\x1e\n\x0e\x43heckCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"h\n\x11\x43heckCleanPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CheckCleanPath\" \n\x10\x43onfirmCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"l\n\x13\x43onfirmCleanPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConfirmCleanPath\"\"\n\x12ProtectedCleanPath\x12\x0c\n\x04path\x18\x01 \x01(\t\"p\n\x15ProtectedCleanPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.ProtectedCleanPath\"\x14\n\x12\x46inishedCleanPaths\"p\n\x15\x46inishedCleanPathsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.FinishedCleanPaths\"5\n\x0bOpenCommand\x12\x10\n\x08open_cmd\x18\x01 \x01(\t\x12\x14\n\x0cprofiles_dir\x18\x02 \x01(\t\"b\n\x0eOpenCommandMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.OpenCommand\"0\n\x0fServingDocsPort\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x0c\n\x04port\x18\x02 \x01(\x05\"j\n\x12ServingDocsPortMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.ServingDocsPort\"%\n\x15ServingDocsAccessInfo\x12\x0c\n\x04port\x18\x01 \x01(\t\"v\n\x18ServingDocsAccessInfoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ServingDocsAccessInfo\"\x15\n\x13ServingDocsExitInfo\"r\n\x16ServingDocsExitInfoMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.ServingDocsExitInfo\"\x97\x01\n\x10RunResultWarning\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12(\n\tnode_info\x18\x04 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12!\n\x05group\x18\x05 \x01(\x0b\x32\x12.proto_types.Group\"l\n\x13RunResultWarningMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.RunResultWarning\"\x97\x01\n\x10RunResultFailure\x12\x15\n\rresource_type\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12(\n\tnode_info\x18\x04 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12!\n\x05group\x18\x05 \x01(\x0b\x32\x12.proto_types.Group\"l\n\x13RunResultFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.RunResultFailure\"k\n\tStatsLine\x12\x30\n\x05stats\x18\x01 \x03(\x0b\x32!.proto_types.StatsLine.StatsEntry\x1a,\n\nStatsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"^\n\x0cStatsLineMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.StatsLine\"j\n\x0eRunResultError\x12\x0b\n\x03msg\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\x12!\n\x05group\x18\x03 \x01(\x0b\x32\x12.proto_types.Group\"h\n\x11RunResultErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.RunResultError\"S\n\x17RunResultErrorNoMessage\x12\x0e\n\x06status\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\"z\n\x1aRunResultErrorNoMessageMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.RunResultErrorNoMessage\"I\n\x0fSQLCompiledPath\x12\x0c\n\x04path\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\"j\n\x12SQLCompiledPathMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.SQLCompiledPath\"W\n\x14\x43heckNodeTestFailure\x12\x15\n\rrelation_name\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\"t\n\x17\x43heckNodeTestFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.CheckNodeTestFailure\"t\n\x0f\x45ndOfRunSummary\x12\x12\n\nnum_errors\x18\x01 \x01(\x05\x12\x14\n\x0cnum_warnings\x18\x02 \x01(\x05\x12\x1a\n\x12keyboard_interrupt\x18\x03 \x01(\x08\x12\x1b\n\x13num_partial_success\x18\x04 \x01(\x05\"j\n\x12\x45ndOfRunSummaryMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.EndOfRunSummary\"g\n\x13MarkSkippedChildren\x12\x11\n\tunique_id\x18\x01 \x01(\t\x12\x0e\n\x06status\x18\x02 \x01(\t\x12-\n\nrun_result\x18\x03 \x01(\x0b\x32\x19.proto_types.RunResultMsg\"r\n\x16MarkSkippedChildrenMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.MarkSkippedChildren\"e\n\x13LogSkipBecauseError\x12\x0e\n\x06schema\x18\x01 \x01(\t\x12\x10\n\x08relation\x18\x02 \x01(\t\x12\r\n\x05index\x18\x03 \x01(\x05\x12\r\n\x05total\x18\x04 \x01(\x05\x12\x0e\n\x06status\x18\x05 \x01(\t\"r\n\x16LogSkipBecauseErrorMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.LogSkipBecauseError\"\x14\n\x12\x45nsureGitInstalled\"p\n\x15\x45nsureGitInstalledMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.EnsureGitInstalled\"\x1a\n\x18\x44\x65psCreatingLocalSymlink\"|\n\x1b\x44\x65psCreatingLocalSymlinkMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DepsCreatingLocalSymlink\"\x19\n\x17\x44\x65psSymlinkNotAvailable\"z\n\x1a\x44\x65psSymlinkNotAvailableMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.DepsSymlinkNotAvailable\"\x11\n\x0f\x44isableTracking\"j\n\x12\x44isableTrackingMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.DisableTracking\"\x1e\n\x0cSendingEvent\x12\x0e\n\x06kwargs\x18\x01 \x01(\t\"d\n\x0fSendingEventMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.SendingEvent\"\x12\n\x10SendEventFailure\"l\n\x13SendEventFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.SendEventFailure\"\r\n\x0b\x46lushEvents\"b\n\x0e\x46lushEventsMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.FlushEvents\"\x14\n\x12\x46lushEventsFailure\"p\n\x15\x46lushEventsFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.FlushEventsFailure\"-\n\x19TrackingInitializeFailure\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"~\n\x1cTrackingInitializeFailureMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.TrackingInitializeFailure\"P\n\x17RunResultWarningMessage\x12\x0b\n\x03msg\x18\x01 \x01(\t\x12(\n\tnode_info\x18\x02 \x01(\x0b\x32\x15.proto_types.NodeInfo\"z\n\x1aRunResultWarningMessageMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12\x32\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32$.proto_types.RunResultWarningMessage\"\x1a\n\x0b\x44\x65\x62ugCmdOut\x12\x0b\n\x03msg\x18\x01 \x01(\t\"b\n\x0e\x44\x65\x62ugCmdOutMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.DebugCmdOut\"\x1d\n\x0e\x44\x65\x62ugCmdResult\x12\x0b\n\x03msg\x18\x01 \x01(\t\"h\n\x11\x44\x65\x62ugCmdResultMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.DebugCmdResult\"\x19\n\nListCmdOut\x12\x0b\n\x03msg\x18\x01 \x01(\t\"`\n\rListCmdOutMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.ListCmdOut\"\xec\x01\n\x0eResourceReport\x12\x14\n\x0c\x63ommand_name\x18\x02 \x01(\t\x12\x17\n\x0f\x63ommand_success\x18\x03 \x01(\x08\x12\x1f\n\x17\x63ommand_wall_clock_time\x18\x04 \x01(\x02\x12\x19\n\x11process_user_time\x18\x05 \x01(\x02\x12\x1b\n\x13process_kernel_time\x18\x06 \x01(\x02\x12\x1b\n\x13process_mem_max_rss\x18\x07 \x01(\x03\x12\x19\n\x11process_in_blocks\x18\x08 \x01(\x03\x12\x1a\n\x12process_out_blocks\x18\t \x01(\x03\"h\n\x11ResourceReportMsg\x12(\n\x04info\x18\x01 \x01(\x0b\x32\x1a.proto_types.CoreEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ResourceReportb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -369,450 +369,454 @@ _globals['_MICROBATCHMODELNOEVENTTIMEINPUTS']._serialized_end=16140 _globals['_MICROBATCHMODELNOEVENTTIMEINPUTSMSG']._serialized_start=16143 _globals['_MICROBATCHMODELNOEVENTTIMEINPUTSMSG']._serialized_end=16283 - _globals['_GITSPARSECHECKOUTSUBDIRECTORY']._serialized_start=16285 - _globals['_GITSPARSECHECKOUTSUBDIRECTORY']._serialized_end=16332 - _globals['_GITSPARSECHECKOUTSUBDIRECTORYMSG']._serialized_start=16335 - _globals['_GITSPARSECHECKOUTSUBDIRECTORYMSG']._serialized_end=16469 - _globals['_GITPROGRESSCHECKOUTREVISION']._serialized_start=16471 - _globals['_GITPROGRESSCHECKOUTREVISION']._serialized_end=16518 - _globals['_GITPROGRESSCHECKOUTREVISIONMSG']._serialized_start=16521 - _globals['_GITPROGRESSCHECKOUTREVISIONMSG']._serialized_end=16651 - _globals['_GITPROGRESSUPDATINGEXISTINGDEPENDENCY']._serialized_start=16653 - _globals['_GITPROGRESSUPDATINGEXISTINGDEPENDENCY']._serialized_end=16705 - _globals['_GITPROGRESSUPDATINGEXISTINGDEPENDENCYMSG']._serialized_start=16708 - _globals['_GITPROGRESSUPDATINGEXISTINGDEPENDENCYMSG']._serialized_end=16858 - _globals['_GITPROGRESSPULLINGNEWDEPENDENCY']._serialized_start=16860 - _globals['_GITPROGRESSPULLINGNEWDEPENDENCY']._serialized_end=16906 - _globals['_GITPROGRESSPULLINGNEWDEPENDENCYMSG']._serialized_start=16909 - _globals['_GITPROGRESSPULLINGNEWDEPENDENCYMSG']._serialized_end=17047 - _globals['_GITNOTHINGTODO']._serialized_start=17049 - _globals['_GITNOTHINGTODO']._serialized_end=17078 - _globals['_GITNOTHINGTODOMSG']._serialized_start=17080 - _globals['_GITNOTHINGTODOMSG']._serialized_end=17184 - _globals['_GITPROGRESSUPDATEDCHECKOUTRANGE']._serialized_start=17186 - _globals['_GITPROGRESSUPDATEDCHECKOUTRANGE']._serialized_end=17255 - _globals['_GITPROGRESSUPDATEDCHECKOUTRANGEMSG']._serialized_start=17258 - _globals['_GITPROGRESSUPDATEDCHECKOUTRANGEMSG']._serialized_end=17396 - _globals['_GITPROGRESSCHECKEDOUTAT']._serialized_start=17398 - _globals['_GITPROGRESSCHECKEDOUTAT']._serialized_end=17440 - _globals['_GITPROGRESSCHECKEDOUTATMSG']._serialized_start=17442 - _globals['_GITPROGRESSCHECKEDOUTATMSG']._serialized_end=17564 - _globals['_REGISTRYPROGRESSGETREQUEST']._serialized_start=17566 - _globals['_REGISTRYPROGRESSGETREQUEST']._serialized_end=17607 - _globals['_REGISTRYPROGRESSGETREQUESTMSG']._serialized_start=17610 - _globals['_REGISTRYPROGRESSGETREQUESTMSG']._serialized_end=17738 - _globals['_REGISTRYPROGRESSGETRESPONSE']._serialized_start=17740 - _globals['_REGISTRYPROGRESSGETRESPONSE']._serialized_end=17801 - _globals['_REGISTRYPROGRESSGETRESPONSEMSG']._serialized_start=17804 - _globals['_REGISTRYPROGRESSGETRESPONSEMSG']._serialized_end=17934 - _globals['_SELECTORREPORTINVALIDSELECTOR']._serialized_start=17936 - _globals['_SELECTORREPORTINVALIDSELECTOR']._serialized_end=18031 - _globals['_SELECTORREPORTINVALIDSELECTORMSG']._serialized_start=18034 - _globals['_SELECTORREPORTINVALIDSELECTORMSG']._serialized_end=18168 - _globals['_DEPSNOPACKAGESFOUND']._serialized_start=18170 - _globals['_DEPSNOPACKAGESFOUND']._serialized_end=18191 - _globals['_DEPSNOPACKAGESFOUNDMSG']._serialized_start=18193 - _globals['_DEPSNOPACKAGESFOUNDMSG']._serialized_end=18307 - _globals['_DEPSSTARTPACKAGEINSTALL']._serialized_start=18309 - _globals['_DEPSSTARTPACKAGEINSTALL']._serialized_end=18356 - _globals['_DEPSSTARTPACKAGEINSTALLMSG']._serialized_start=18358 - _globals['_DEPSSTARTPACKAGEINSTALLMSG']._serialized_end=18480 - _globals['_DEPSINSTALLINFO']._serialized_start=18482 - _globals['_DEPSINSTALLINFO']._serialized_end=18521 - _globals['_DEPSINSTALLINFOMSG']._serialized_start=18523 - _globals['_DEPSINSTALLINFOMSG']._serialized_end=18629 - _globals['_DEPSUPDATEAVAILABLE']._serialized_start=18631 - _globals['_DEPSUPDATEAVAILABLE']._serialized_end=18676 - _globals['_DEPSUPDATEAVAILABLEMSG']._serialized_start=18678 - _globals['_DEPSUPDATEAVAILABLEMSG']._serialized_end=18792 - _globals['_DEPSUPTODATE']._serialized_start=18794 - _globals['_DEPSUPTODATE']._serialized_end=18808 - _globals['_DEPSUPTODATEMSG']._serialized_start=18810 - _globals['_DEPSUPTODATEMSG']._serialized_end=18910 - _globals['_DEPSLISTSUBDIRECTORY']._serialized_start=18912 - _globals['_DEPSLISTSUBDIRECTORY']._serialized_end=18956 - _globals['_DEPSLISTSUBDIRECTORYMSG']._serialized_start=18958 - _globals['_DEPSLISTSUBDIRECTORYMSG']._serialized_end=19074 - _globals['_DEPSNOTIFYUPDATESAVAILABLE']._serialized_start=19076 - _globals['_DEPSNOTIFYUPDATESAVAILABLE']._serialized_end=19122 - _globals['_DEPSNOTIFYUPDATESAVAILABLEMSG']._serialized_start=19125 - _globals['_DEPSNOTIFYUPDATESAVAILABLEMSG']._serialized_end=19253 - _globals['_REGISTRYINDEXPROGRESSGETREQUEST']._serialized_start=19255 - _globals['_REGISTRYINDEXPROGRESSGETREQUEST']._serialized_end=19301 - _globals['_REGISTRYINDEXPROGRESSGETREQUESTMSG']._serialized_start=19304 - _globals['_REGISTRYINDEXPROGRESSGETREQUESTMSG']._serialized_end=19442 - _globals['_REGISTRYINDEXPROGRESSGETRESPONSE']._serialized_start=19444 - _globals['_REGISTRYINDEXPROGRESSGETRESPONSE']._serialized_end=19510 - _globals['_REGISTRYINDEXPROGRESSGETRESPONSEMSG']._serialized_start=19513 - _globals['_REGISTRYINDEXPROGRESSGETRESPONSEMSG']._serialized_end=19653 - _globals['_REGISTRYRESPONSEUNEXPECTEDTYPE']._serialized_start=19655 - _globals['_REGISTRYRESPONSEUNEXPECTEDTYPE']._serialized_end=19705 - _globals['_REGISTRYRESPONSEUNEXPECTEDTYPEMSG']._serialized_start=19708 - _globals['_REGISTRYRESPONSEUNEXPECTEDTYPEMSG']._serialized_end=19844 - _globals['_REGISTRYRESPONSEMISSINGTOPKEYS']._serialized_start=19846 - _globals['_REGISTRYRESPONSEMISSINGTOPKEYS']._serialized_end=19896 - _globals['_REGISTRYRESPONSEMISSINGTOPKEYSMSG']._serialized_start=19899 - _globals['_REGISTRYRESPONSEMISSINGTOPKEYSMSG']._serialized_end=20035 - _globals['_REGISTRYRESPONSEMISSINGNESTEDKEYS']._serialized_start=20037 - _globals['_REGISTRYRESPONSEMISSINGNESTEDKEYS']._serialized_end=20090 - _globals['_REGISTRYRESPONSEMISSINGNESTEDKEYSMSG']._serialized_start=20093 - _globals['_REGISTRYRESPONSEMISSINGNESTEDKEYSMSG']._serialized_end=20235 - _globals['_REGISTRYRESPONSEEXTRANESTEDKEYS']._serialized_start=20237 - _globals['_REGISTRYRESPONSEEXTRANESTEDKEYS']._serialized_end=20288 - _globals['_REGISTRYRESPONSEEXTRANESTEDKEYSMSG']._serialized_start=20291 - _globals['_REGISTRYRESPONSEEXTRANESTEDKEYSMSG']._serialized_end=20429 - _globals['_DEPSSETDOWNLOADDIRECTORY']._serialized_start=20431 - _globals['_DEPSSETDOWNLOADDIRECTORY']._serialized_end=20471 - _globals['_DEPSSETDOWNLOADDIRECTORYMSG']._serialized_start=20473 - _globals['_DEPSSETDOWNLOADDIRECTORYMSG']._serialized_end=20597 - _globals['_DEPSUNPINNED']._serialized_start=20599 - _globals['_DEPSUNPINNED']._serialized_end=20644 - _globals['_DEPSUNPINNEDMSG']._serialized_start=20646 - _globals['_DEPSUNPINNEDMSG']._serialized_end=20746 - _globals['_NONODESFORSELECTIONCRITERIA']._serialized_start=20748 - _globals['_NONODESFORSELECTIONCRITERIA']._serialized_end=20795 - _globals['_NONODESFORSELECTIONCRITERIAMSG']._serialized_start=20798 - _globals['_NONODESFORSELECTIONCRITERIAMSG']._serialized_end=20928 - _globals['_DEPSLOCKUPDATING']._serialized_start=20930 - _globals['_DEPSLOCKUPDATING']._serialized_end=20971 - _globals['_DEPSLOCKUPDATINGMSG']._serialized_start=20973 - _globals['_DEPSLOCKUPDATINGMSG']._serialized_end=21081 - _globals['_DEPSADDPACKAGE']._serialized_start=21083 - _globals['_DEPSADDPACKAGE']._serialized_end=21165 - _globals['_DEPSADDPACKAGEMSG']._serialized_start=21167 - _globals['_DEPSADDPACKAGEMSG']._serialized_end=21271 - _globals['_DEPSFOUNDDUPLICATEPACKAGE']._serialized_start=21274 - _globals['_DEPSFOUNDDUPLICATEPACKAGE']._serialized_end=21441 - _globals['_DEPSFOUNDDUPLICATEPACKAGE_REMOVEDPACKAGEENTRY']._serialized_start=21388 - _globals['_DEPSFOUNDDUPLICATEPACKAGE_REMOVEDPACKAGEENTRY']._serialized_end=21441 - _globals['_DEPSFOUNDDUPLICATEPACKAGEMSG']._serialized_start=21443 - _globals['_DEPSFOUNDDUPLICATEPACKAGEMSG']._serialized_end=21569 - _globals['_DEPSVERSIONMISSING']._serialized_start=21571 - _globals['_DEPSVERSIONMISSING']._serialized_end=21607 - _globals['_DEPSVERSIONMISSINGMSG']._serialized_start=21609 - _globals['_DEPSVERSIONMISSINGMSG']._serialized_end=21721 - _globals['_DEPSSCRUBBEDPACKAGENAME']._serialized_start=21723 - _globals['_DEPSSCRUBBEDPACKAGENAME']._serialized_end=21770 - _globals['_DEPSSCRUBBEDPACKAGENAMEMSG']._serialized_start=21772 - _globals['_DEPSSCRUBBEDPACKAGENAMEMSG']._serialized_end=21894 - _globals['_ARTIFACTWRITTEN']._serialized_start=21896 - _globals['_ARTIFACTWRITTEN']._serialized_end=21959 - _globals['_ARTIFACTWRITTENMSG']._serialized_start=21961 - _globals['_ARTIFACTWRITTENMSG']._serialized_end=22067 - _globals['_RUNNINGOPERATIONCAUGHTERROR']._serialized_start=22069 - _globals['_RUNNINGOPERATIONCAUGHTERROR']._serialized_end=22111 - _globals['_RUNNINGOPERATIONCAUGHTERRORMSG']._serialized_start=22114 - _globals['_RUNNINGOPERATIONCAUGHTERRORMSG']._serialized_end=22244 - _globals['_COMPILECOMPLETE']._serialized_start=22246 - _globals['_COMPILECOMPLETE']._serialized_end=22263 - _globals['_COMPILECOMPLETEMSG']._serialized_start=22265 - _globals['_COMPILECOMPLETEMSG']._serialized_end=22371 - _globals['_FRESHNESSCHECKCOMPLETE']._serialized_start=22373 - _globals['_FRESHNESSCHECKCOMPLETE']._serialized_end=22397 - _globals['_FRESHNESSCHECKCOMPLETEMSG']._serialized_start=22399 - _globals['_FRESHNESSCHECKCOMPLETEMSG']._serialized_end=22519 - _globals['_SEEDHEADER']._serialized_start=22521 - _globals['_SEEDHEADER']._serialized_end=22549 - _globals['_SEEDHEADERMSG']._serialized_start=22551 - _globals['_SEEDHEADERMSG']._serialized_end=22647 - _globals['_SQLRUNNEREXCEPTION']._serialized_start=22649 - _globals['_SQLRUNNEREXCEPTION']._serialized_end=22742 - _globals['_SQLRUNNEREXCEPTIONMSG']._serialized_start=22744 - _globals['_SQLRUNNEREXCEPTIONMSG']._serialized_end=22856 - _globals['_GROUP']._serialized_start=22859 - _globals['_GROUP']._serialized_end=22994 - _globals['_GROUP_OWNERENTRY']._serialized_start=22950 - _globals['_GROUP_OWNERENTRY']._serialized_end=22994 - _globals['_LOGTESTRESULT']._serialized_start=22997 - _globals['_LOGTESTRESULT']._serialized_end=23223 - _globals['_LOGTESTRESULTMSG']._serialized_start=23225 - _globals['_LOGTESTRESULTMSG']._serialized_end=23327 - _globals['_LOGSTARTLINE']._serialized_start=23329 - _globals['_LOGSTARTLINE']._serialized_end=23436 - _globals['_LOGSTARTLINEMSG']._serialized_start=23438 - _globals['_LOGSTARTLINEMSG']._serialized_end=23538 - _globals['_LOGMODELRESULT']._serialized_start=23541 - _globals['_LOGMODELRESULT']._serialized_end=23725 - _globals['_LOGMODELRESULTMSG']._serialized_start=23727 - _globals['_LOGMODELRESULTMSG']._serialized_end=23831 - _globals['_LOGSNAPSHOTRESULT']._serialized_start=23834 - _globals['_LOGSNAPSHOTRESULT']._serialized_end=24108 - _globals['_LOGSNAPSHOTRESULT_CFGENTRY']._serialized_start=24066 - _globals['_LOGSNAPSHOTRESULT_CFGENTRY']._serialized_end=24108 - _globals['_LOGSNAPSHOTRESULTMSG']._serialized_start=24110 - _globals['_LOGSNAPSHOTRESULTMSG']._serialized_end=24220 - _globals['_LOGSEEDRESULT']._serialized_start=24223 - _globals['_LOGSEEDRESULT']._serialized_end=24408 - _globals['_LOGSEEDRESULTMSG']._serialized_start=24410 - _globals['_LOGSEEDRESULTMSG']._serialized_end=24512 - _globals['_LOGFRESHNESSRESULT']._serialized_start=24515 - _globals['_LOGFRESHNESSRESULT']._serialized_end=24688 - _globals['_LOGFRESHNESSRESULTMSG']._serialized_start=24690 - _globals['_LOGFRESHNESSRESULTMSG']._serialized_end=24802 - _globals['_LOGNODENOOPRESULT']._serialized_start=24805 - _globals['_LOGNODENOOPRESULT']._serialized_end=24957 - _globals['_LOGNODENOOPRESULTMSG']._serialized_start=24959 - _globals['_LOGNODENOOPRESULTMSG']._serialized_end=25069 - _globals['_LOGCANCELLINE']._serialized_start=25071 - _globals['_LOGCANCELLINE']._serialized_end=25105 - _globals['_LOGCANCELLINEMSG']._serialized_start=25107 - _globals['_LOGCANCELLINEMSG']._serialized_end=25209 - _globals['_DEFAULTSELECTOR']._serialized_start=25211 - _globals['_DEFAULTSELECTOR']._serialized_end=25242 - _globals['_DEFAULTSELECTORMSG']._serialized_start=25244 - _globals['_DEFAULTSELECTORMSG']._serialized_end=25350 - _globals['_NODESTART']._serialized_start=25352 - _globals['_NODESTART']._serialized_end=25405 - _globals['_NODESTARTMSG']._serialized_start=25407 - _globals['_NODESTARTMSG']._serialized_end=25501 - _globals['_NODEFINISHED']._serialized_start=25503 - _globals['_NODEFINISHED']._serialized_end=25606 - _globals['_NODEFINISHEDMSG']._serialized_start=25608 - _globals['_NODEFINISHEDMSG']._serialized_end=25708 - _globals['_QUERYCANCELATIONUNSUPPORTED']._serialized_start=25710 - _globals['_QUERYCANCELATIONUNSUPPORTED']._serialized_end=25753 - _globals['_QUERYCANCELATIONUNSUPPORTEDMSG']._serialized_start=25756 - _globals['_QUERYCANCELATIONUNSUPPORTEDMSG']._serialized_end=25886 - _globals['_CONCURRENCYLINE']._serialized_start=25888 - _globals['_CONCURRENCYLINE']._serialized_end=25967 - _globals['_CONCURRENCYLINEMSG']._serialized_start=25969 - _globals['_CONCURRENCYLINEMSG']._serialized_end=26075 - _globals['_WRITINGINJECTEDSQLFORNODE']._serialized_start=26077 - _globals['_WRITINGINJECTEDSQLFORNODE']._serialized_end=26146 - _globals['_WRITINGINJECTEDSQLFORNODEMSG']._serialized_start=26148 - _globals['_WRITINGINJECTEDSQLFORNODEMSG']._serialized_end=26274 - _globals['_NODECOMPILING']._serialized_start=26276 - _globals['_NODECOMPILING']._serialized_end=26333 - _globals['_NODECOMPILINGMSG']._serialized_start=26335 - _globals['_NODECOMPILINGMSG']._serialized_end=26437 - _globals['_NODEEXECUTING']._serialized_start=26439 - _globals['_NODEEXECUTING']._serialized_end=26496 - _globals['_NODEEXECUTINGMSG']._serialized_start=26498 - _globals['_NODEEXECUTINGMSG']._serialized_end=26600 - _globals['_LOGHOOKSTARTLINE']._serialized_start=26602 - _globals['_LOGHOOKSTARTLINE']._serialized_end=26711 - _globals['_LOGHOOKSTARTLINEMSG']._serialized_start=26713 - _globals['_LOGHOOKSTARTLINEMSG']._serialized_end=26821 - _globals['_LOGHOOKENDLINE']._serialized_start=26824 - _globals['_LOGHOOKENDLINE']._serialized_end=26971 - _globals['_LOGHOOKENDLINEMSG']._serialized_start=26973 - _globals['_LOGHOOKENDLINEMSG']._serialized_end=27077 - _globals['_SKIPPINGDETAILS']._serialized_start=27080 - _globals['_SKIPPINGDETAILS']._serialized_end=27227 - _globals['_SKIPPINGDETAILSMSG']._serialized_start=27229 - _globals['_SKIPPINGDETAILSMSG']._serialized_end=27335 - _globals['_NOTHINGTODO']._serialized_start=27337 - _globals['_NOTHINGTODO']._serialized_end=27350 - _globals['_NOTHINGTODOMSG']._serialized_start=27352 - _globals['_NOTHINGTODOMSG']._serialized_end=27450 - _globals['_RUNNINGOPERATIONUNCAUGHTERROR']._serialized_start=27452 - _globals['_RUNNINGOPERATIONUNCAUGHTERROR']._serialized_end=27496 - _globals['_RUNNINGOPERATIONUNCAUGHTERRORMSG']._serialized_start=27499 - _globals['_RUNNINGOPERATIONUNCAUGHTERRORMSG']._serialized_end=27633 - _globals['_ENDRUNRESULT']._serialized_start=27636 - _globals['_ENDRUNRESULT']._serialized_end=27783 - _globals['_ENDRUNRESULTMSG']._serialized_start=27785 - _globals['_ENDRUNRESULTMSG']._serialized_end=27885 - _globals['_NONODESSELECTED']._serialized_start=27887 - _globals['_NONODESSELECTED']._serialized_end=27904 - _globals['_NONODESSELECTEDMSG']._serialized_start=27906 - _globals['_NONODESSELECTEDMSG']._serialized_end=28012 - _globals['_COMMANDCOMPLETED']._serialized_start=28014 - _globals['_COMMANDCOMPLETED']._serialized_end=28133 - _globals['_COMMANDCOMPLETEDMSG']._serialized_start=28135 - _globals['_COMMANDCOMPLETEDMSG']._serialized_end=28243 - _globals['_SHOWNODE']._serialized_start=28245 - _globals['_SHOWNODE']._serialized_end=28367 - _globals['_SHOWNODEMSG']._serialized_start=28369 - _globals['_SHOWNODEMSG']._serialized_end=28461 - _globals['_COMPILEDNODE']._serialized_start=28463 - _globals['_COMPILEDNODE']._serialized_end=28590 - _globals['_COMPILEDNODEMSG']._serialized_start=28592 - _globals['_COMPILEDNODEMSG']._serialized_end=28692 - _globals['_SNAPSHOTTIMESTAMPWARNING']._serialized_start=28694 - _globals['_SNAPSHOTTIMESTAMPWARNING']._serialized_end=28783 - _globals['_SNAPSHOTTIMESTAMPWARNINGMSG']._serialized_start=28785 - _globals['_SNAPSHOTTIMESTAMPWARNINGMSG']._serialized_end=28909 - _globals['_MICROBATCHEXECUTIONDEBUG']._serialized_start=28911 - _globals['_MICROBATCHEXECUTIONDEBUG']._serialized_end=28950 - _globals['_MICROBATCHEXECUTIONDEBUGMSG']._serialized_start=28952 - _globals['_MICROBATCHEXECUTIONDEBUGMSG']._serialized_end=29076 - _globals['_LOGSTARTBATCH']._serialized_start=29078 - _globals['_LOGSTARTBATCH']._serialized_end=29200 - _globals['_LOGSTARTBATCHMSG']._serialized_start=29202 - _globals['_LOGSTARTBATCHMSG']._serialized_end=29304 - _globals['_LOGBATCHRESULT']._serialized_start=29307 - _globals['_LOGBATCHRESULT']._serialized_end=29505 - _globals['_LOGBATCHRESULTMSG']._serialized_start=29507 - _globals['_LOGBATCHRESULTMSG']._serialized_end=29611 - _globals['_CATCHABLEEXCEPTIONONRUN']._serialized_start=29613 - _globals['_CATCHABLEEXCEPTIONONRUN']._serialized_end=29711 - _globals['_CATCHABLEEXCEPTIONONRUNMSG']._serialized_start=29713 - _globals['_CATCHABLEEXCEPTIONONRUNMSG']._serialized_end=29835 - _globals['_INTERNALERRORONRUN']._serialized_start=29837 - _globals['_INTERNALERRORONRUN']._serialized_end=29932 - _globals['_INTERNALERRORONRUNMSG']._serialized_start=29934 - _globals['_INTERNALERRORONRUNMSG']._serialized_end=30046 - _globals['_GENERICEXCEPTIONONRUN']._serialized_start=30048 - _globals['_GENERICEXCEPTIONONRUN']._serialized_end=30165 - _globals['_GENERICEXCEPTIONONRUNMSG']._serialized_start=30167 - _globals['_GENERICEXCEPTIONONRUNMSG']._serialized_end=30285 - _globals['_NODECONNECTIONRELEASEERROR']._serialized_start=30287 - _globals['_NODECONNECTIONRELEASEERROR']._serialized_end=30365 - _globals['_NODECONNECTIONRELEASEERRORMSG']._serialized_start=30368 - _globals['_NODECONNECTIONRELEASEERRORMSG']._serialized_end=30496 - _globals['_FOUNDSTATS']._serialized_start=30498 - _globals['_FOUNDSTATS']._serialized_end=30529 - _globals['_FOUNDSTATSMSG']._serialized_start=30531 - _globals['_FOUNDSTATSMSG']._serialized_end=30627 - _globals['_MAINKEYBOARDINTERRUPT']._serialized_start=30629 - _globals['_MAINKEYBOARDINTERRUPT']._serialized_end=30652 - _globals['_MAINKEYBOARDINTERRUPTMSG']._serialized_start=30654 - _globals['_MAINKEYBOARDINTERRUPTMSG']._serialized_end=30772 - _globals['_MAINENCOUNTEREDERROR']._serialized_start=30774 - _globals['_MAINENCOUNTEREDERROR']._serialized_end=30809 - _globals['_MAINENCOUNTEREDERRORMSG']._serialized_start=30811 - _globals['_MAINENCOUNTEREDERRORMSG']._serialized_end=30927 - _globals['_MAINSTACKTRACE']._serialized_start=30929 - _globals['_MAINSTACKTRACE']._serialized_end=30966 - _globals['_MAINSTACKTRACEMSG']._serialized_start=30968 - _globals['_MAINSTACKTRACEMSG']._serialized_end=31072 - _globals['_TIMINGINFOCOLLECTED']._serialized_start=31074 - _globals['_TIMINGINFOCOLLECTED']._serialized_end=31186 - _globals['_TIMINGINFOCOLLECTEDMSG']._serialized_start=31188 - _globals['_TIMINGINFOCOLLECTEDMSG']._serialized_end=31302 - _globals['_LOGDEBUGSTACKTRACE']._serialized_start=31304 - _globals['_LOGDEBUGSTACKTRACE']._serialized_end=31342 - _globals['_LOGDEBUGSTACKTRACEMSG']._serialized_start=31344 - _globals['_LOGDEBUGSTACKTRACEMSG']._serialized_end=31456 - _globals['_CHECKCLEANPATH']._serialized_start=31458 - _globals['_CHECKCLEANPATH']._serialized_end=31488 - _globals['_CHECKCLEANPATHMSG']._serialized_start=31490 - _globals['_CHECKCLEANPATHMSG']._serialized_end=31594 - _globals['_CONFIRMCLEANPATH']._serialized_start=31596 - _globals['_CONFIRMCLEANPATH']._serialized_end=31628 - _globals['_CONFIRMCLEANPATHMSG']._serialized_start=31630 - _globals['_CONFIRMCLEANPATHMSG']._serialized_end=31738 - _globals['_PROTECTEDCLEANPATH']._serialized_start=31740 - _globals['_PROTECTEDCLEANPATH']._serialized_end=31774 - _globals['_PROTECTEDCLEANPATHMSG']._serialized_start=31776 - _globals['_PROTECTEDCLEANPATHMSG']._serialized_end=31888 - _globals['_FINISHEDCLEANPATHS']._serialized_start=31890 - _globals['_FINISHEDCLEANPATHS']._serialized_end=31910 - _globals['_FINISHEDCLEANPATHSMSG']._serialized_start=31912 - _globals['_FINISHEDCLEANPATHSMSG']._serialized_end=32024 - _globals['_OPENCOMMAND']._serialized_start=32026 - _globals['_OPENCOMMAND']._serialized_end=32079 - _globals['_OPENCOMMANDMSG']._serialized_start=32081 - _globals['_OPENCOMMANDMSG']._serialized_end=32179 - _globals['_SERVINGDOCSPORT']._serialized_start=32181 - _globals['_SERVINGDOCSPORT']._serialized_end=32229 - _globals['_SERVINGDOCSPORTMSG']._serialized_start=32231 - _globals['_SERVINGDOCSPORTMSG']._serialized_end=32337 - _globals['_SERVINGDOCSACCESSINFO']._serialized_start=32339 - _globals['_SERVINGDOCSACCESSINFO']._serialized_end=32376 - _globals['_SERVINGDOCSACCESSINFOMSG']._serialized_start=32378 - _globals['_SERVINGDOCSACCESSINFOMSG']._serialized_end=32496 - _globals['_SERVINGDOCSEXITINFO']._serialized_start=32498 - _globals['_SERVINGDOCSEXITINFO']._serialized_end=32519 - _globals['_SERVINGDOCSEXITINFOMSG']._serialized_start=32521 - _globals['_SERVINGDOCSEXITINFOMSG']._serialized_end=32635 - _globals['_RUNRESULTWARNING']._serialized_start=32638 - _globals['_RUNRESULTWARNING']._serialized_end=32789 - _globals['_RUNRESULTWARNINGMSG']._serialized_start=32791 - _globals['_RUNRESULTWARNINGMSG']._serialized_end=32899 - _globals['_RUNRESULTFAILURE']._serialized_start=32902 - _globals['_RUNRESULTFAILURE']._serialized_end=33053 - _globals['_RUNRESULTFAILUREMSG']._serialized_start=33055 - _globals['_RUNRESULTFAILUREMSG']._serialized_end=33163 - _globals['_STATSLINE']._serialized_start=33165 - _globals['_STATSLINE']._serialized_end=33272 - _globals['_STATSLINE_STATSENTRY']._serialized_start=33228 - _globals['_STATSLINE_STATSENTRY']._serialized_end=33272 - _globals['_STATSLINEMSG']._serialized_start=33274 - _globals['_STATSLINEMSG']._serialized_end=33368 - _globals['_RUNRESULTERROR']._serialized_start=33370 - _globals['_RUNRESULTERROR']._serialized_end=33476 - _globals['_RUNRESULTERRORMSG']._serialized_start=33478 - _globals['_RUNRESULTERRORMSG']._serialized_end=33582 - _globals['_RUNRESULTERRORNOMESSAGE']._serialized_start=33584 - _globals['_RUNRESULTERRORNOMESSAGE']._serialized_end=33667 - _globals['_RUNRESULTERRORNOMESSAGEMSG']._serialized_start=33669 - _globals['_RUNRESULTERRORNOMESSAGEMSG']._serialized_end=33791 - _globals['_SQLCOMPILEDPATH']._serialized_start=33793 - _globals['_SQLCOMPILEDPATH']._serialized_end=33866 - _globals['_SQLCOMPILEDPATHMSG']._serialized_start=33868 - _globals['_SQLCOMPILEDPATHMSG']._serialized_end=33974 - _globals['_CHECKNODETESTFAILURE']._serialized_start=33976 - _globals['_CHECKNODETESTFAILURE']._serialized_end=34063 - _globals['_CHECKNODETESTFAILUREMSG']._serialized_start=34065 - _globals['_CHECKNODETESTFAILUREMSG']._serialized_end=34181 - _globals['_ENDOFRUNSUMMARY']._serialized_start=34183 - _globals['_ENDOFRUNSUMMARY']._serialized_end=34299 - _globals['_ENDOFRUNSUMMARYMSG']._serialized_start=34301 - _globals['_ENDOFRUNSUMMARYMSG']._serialized_end=34407 - _globals['_MARKSKIPPEDCHILDREN']._serialized_start=34409 - _globals['_MARKSKIPPEDCHILDREN']._serialized_end=34512 - _globals['_MARKSKIPPEDCHILDRENMSG']._serialized_start=34514 - _globals['_MARKSKIPPEDCHILDRENMSG']._serialized_end=34628 - _globals['_LOGSKIPBECAUSEERROR']._serialized_start=34630 - _globals['_LOGSKIPBECAUSEERROR']._serialized_end=34731 - _globals['_LOGSKIPBECAUSEERRORMSG']._serialized_start=34733 - _globals['_LOGSKIPBECAUSEERRORMSG']._serialized_end=34847 - _globals['_ENSUREGITINSTALLED']._serialized_start=34849 - _globals['_ENSUREGITINSTALLED']._serialized_end=34869 - _globals['_ENSUREGITINSTALLEDMSG']._serialized_start=34871 - _globals['_ENSUREGITINSTALLEDMSG']._serialized_end=34983 - _globals['_DEPSCREATINGLOCALSYMLINK']._serialized_start=34985 - _globals['_DEPSCREATINGLOCALSYMLINK']._serialized_end=35011 - _globals['_DEPSCREATINGLOCALSYMLINKMSG']._serialized_start=35013 - _globals['_DEPSCREATINGLOCALSYMLINKMSG']._serialized_end=35137 - _globals['_DEPSSYMLINKNOTAVAILABLE']._serialized_start=35139 - _globals['_DEPSSYMLINKNOTAVAILABLE']._serialized_end=35164 - _globals['_DEPSSYMLINKNOTAVAILABLEMSG']._serialized_start=35166 - _globals['_DEPSSYMLINKNOTAVAILABLEMSG']._serialized_end=35288 - _globals['_DISABLETRACKING']._serialized_start=35290 - _globals['_DISABLETRACKING']._serialized_end=35307 - _globals['_DISABLETRACKINGMSG']._serialized_start=35309 - _globals['_DISABLETRACKINGMSG']._serialized_end=35415 - _globals['_SENDINGEVENT']._serialized_start=35417 - _globals['_SENDINGEVENT']._serialized_end=35447 - _globals['_SENDINGEVENTMSG']._serialized_start=35449 - _globals['_SENDINGEVENTMSG']._serialized_end=35549 - _globals['_SENDEVENTFAILURE']._serialized_start=35551 - _globals['_SENDEVENTFAILURE']._serialized_end=35569 - _globals['_SENDEVENTFAILUREMSG']._serialized_start=35571 - _globals['_SENDEVENTFAILUREMSG']._serialized_end=35679 - _globals['_FLUSHEVENTS']._serialized_start=35681 - _globals['_FLUSHEVENTS']._serialized_end=35694 - _globals['_FLUSHEVENTSMSG']._serialized_start=35696 - _globals['_FLUSHEVENTSMSG']._serialized_end=35794 - _globals['_FLUSHEVENTSFAILURE']._serialized_start=35796 - _globals['_FLUSHEVENTSFAILURE']._serialized_end=35816 - _globals['_FLUSHEVENTSFAILUREMSG']._serialized_start=35818 - _globals['_FLUSHEVENTSFAILUREMSG']._serialized_end=35930 - _globals['_TRACKINGINITIALIZEFAILURE']._serialized_start=35932 - _globals['_TRACKINGINITIALIZEFAILURE']._serialized_end=35977 - _globals['_TRACKINGINITIALIZEFAILUREMSG']._serialized_start=35979 - _globals['_TRACKINGINITIALIZEFAILUREMSG']._serialized_end=36105 - _globals['_RUNRESULTWARNINGMESSAGE']._serialized_start=36107 - _globals['_RUNRESULTWARNINGMESSAGE']._serialized_end=36187 - _globals['_RUNRESULTWARNINGMESSAGEMSG']._serialized_start=36189 - _globals['_RUNRESULTWARNINGMESSAGEMSG']._serialized_end=36311 - _globals['_DEBUGCMDOUT']._serialized_start=36313 - _globals['_DEBUGCMDOUT']._serialized_end=36339 - _globals['_DEBUGCMDOUTMSG']._serialized_start=36341 - _globals['_DEBUGCMDOUTMSG']._serialized_end=36439 - _globals['_DEBUGCMDRESULT']._serialized_start=36441 - _globals['_DEBUGCMDRESULT']._serialized_end=36470 - _globals['_DEBUGCMDRESULTMSG']._serialized_start=36472 - _globals['_DEBUGCMDRESULTMSG']._serialized_end=36576 - _globals['_LISTCMDOUT']._serialized_start=36578 - _globals['_LISTCMDOUT']._serialized_end=36603 - _globals['_LISTCMDOUTMSG']._serialized_start=36605 - _globals['_LISTCMDOUTMSG']._serialized_end=36701 - _globals['_RESOURCEREPORT']._serialized_start=36704 - _globals['_RESOURCEREPORT']._serialized_end=36940 - _globals['_RESOURCEREPORTMSG']._serialized_start=36942 - _globals['_RESOURCEREPORTMSG']._serialized_end=37046 + _globals['_INVALIDCONCURRENTBATCHESCONFIG']._serialized_start=16285 + _globals['_INVALIDCONCURRENTBATCHESCONFIG']._serialized_end=16359 + _globals['_INVALIDCONCURRENTBATCHESCONFIGMSG']._serialized_start=16362 + _globals['_INVALIDCONCURRENTBATCHESCONFIGMSG']._serialized_end=16498 + _globals['_GITSPARSECHECKOUTSUBDIRECTORY']._serialized_start=16500 + _globals['_GITSPARSECHECKOUTSUBDIRECTORY']._serialized_end=16547 + _globals['_GITSPARSECHECKOUTSUBDIRECTORYMSG']._serialized_start=16550 + _globals['_GITSPARSECHECKOUTSUBDIRECTORYMSG']._serialized_end=16684 + _globals['_GITPROGRESSCHECKOUTREVISION']._serialized_start=16686 + _globals['_GITPROGRESSCHECKOUTREVISION']._serialized_end=16733 + _globals['_GITPROGRESSCHECKOUTREVISIONMSG']._serialized_start=16736 + _globals['_GITPROGRESSCHECKOUTREVISIONMSG']._serialized_end=16866 + _globals['_GITPROGRESSUPDATINGEXISTINGDEPENDENCY']._serialized_start=16868 + _globals['_GITPROGRESSUPDATINGEXISTINGDEPENDENCY']._serialized_end=16920 + _globals['_GITPROGRESSUPDATINGEXISTINGDEPENDENCYMSG']._serialized_start=16923 + _globals['_GITPROGRESSUPDATINGEXISTINGDEPENDENCYMSG']._serialized_end=17073 + _globals['_GITPROGRESSPULLINGNEWDEPENDENCY']._serialized_start=17075 + _globals['_GITPROGRESSPULLINGNEWDEPENDENCY']._serialized_end=17121 + _globals['_GITPROGRESSPULLINGNEWDEPENDENCYMSG']._serialized_start=17124 + _globals['_GITPROGRESSPULLINGNEWDEPENDENCYMSG']._serialized_end=17262 + _globals['_GITNOTHINGTODO']._serialized_start=17264 + _globals['_GITNOTHINGTODO']._serialized_end=17293 + _globals['_GITNOTHINGTODOMSG']._serialized_start=17295 + _globals['_GITNOTHINGTODOMSG']._serialized_end=17399 + _globals['_GITPROGRESSUPDATEDCHECKOUTRANGE']._serialized_start=17401 + _globals['_GITPROGRESSUPDATEDCHECKOUTRANGE']._serialized_end=17470 + _globals['_GITPROGRESSUPDATEDCHECKOUTRANGEMSG']._serialized_start=17473 + _globals['_GITPROGRESSUPDATEDCHECKOUTRANGEMSG']._serialized_end=17611 + _globals['_GITPROGRESSCHECKEDOUTAT']._serialized_start=17613 + _globals['_GITPROGRESSCHECKEDOUTAT']._serialized_end=17655 + _globals['_GITPROGRESSCHECKEDOUTATMSG']._serialized_start=17657 + _globals['_GITPROGRESSCHECKEDOUTATMSG']._serialized_end=17779 + _globals['_REGISTRYPROGRESSGETREQUEST']._serialized_start=17781 + _globals['_REGISTRYPROGRESSGETREQUEST']._serialized_end=17822 + _globals['_REGISTRYPROGRESSGETREQUESTMSG']._serialized_start=17825 + _globals['_REGISTRYPROGRESSGETREQUESTMSG']._serialized_end=17953 + _globals['_REGISTRYPROGRESSGETRESPONSE']._serialized_start=17955 + _globals['_REGISTRYPROGRESSGETRESPONSE']._serialized_end=18016 + _globals['_REGISTRYPROGRESSGETRESPONSEMSG']._serialized_start=18019 + _globals['_REGISTRYPROGRESSGETRESPONSEMSG']._serialized_end=18149 + _globals['_SELECTORREPORTINVALIDSELECTOR']._serialized_start=18151 + _globals['_SELECTORREPORTINVALIDSELECTOR']._serialized_end=18246 + _globals['_SELECTORREPORTINVALIDSELECTORMSG']._serialized_start=18249 + _globals['_SELECTORREPORTINVALIDSELECTORMSG']._serialized_end=18383 + _globals['_DEPSNOPACKAGESFOUND']._serialized_start=18385 + _globals['_DEPSNOPACKAGESFOUND']._serialized_end=18406 + _globals['_DEPSNOPACKAGESFOUNDMSG']._serialized_start=18408 + _globals['_DEPSNOPACKAGESFOUNDMSG']._serialized_end=18522 + _globals['_DEPSSTARTPACKAGEINSTALL']._serialized_start=18524 + _globals['_DEPSSTARTPACKAGEINSTALL']._serialized_end=18571 + _globals['_DEPSSTARTPACKAGEINSTALLMSG']._serialized_start=18573 + _globals['_DEPSSTARTPACKAGEINSTALLMSG']._serialized_end=18695 + _globals['_DEPSINSTALLINFO']._serialized_start=18697 + _globals['_DEPSINSTALLINFO']._serialized_end=18736 + _globals['_DEPSINSTALLINFOMSG']._serialized_start=18738 + _globals['_DEPSINSTALLINFOMSG']._serialized_end=18844 + _globals['_DEPSUPDATEAVAILABLE']._serialized_start=18846 + _globals['_DEPSUPDATEAVAILABLE']._serialized_end=18891 + _globals['_DEPSUPDATEAVAILABLEMSG']._serialized_start=18893 + _globals['_DEPSUPDATEAVAILABLEMSG']._serialized_end=19007 + _globals['_DEPSUPTODATE']._serialized_start=19009 + _globals['_DEPSUPTODATE']._serialized_end=19023 + _globals['_DEPSUPTODATEMSG']._serialized_start=19025 + _globals['_DEPSUPTODATEMSG']._serialized_end=19125 + _globals['_DEPSLISTSUBDIRECTORY']._serialized_start=19127 + _globals['_DEPSLISTSUBDIRECTORY']._serialized_end=19171 + _globals['_DEPSLISTSUBDIRECTORYMSG']._serialized_start=19173 + _globals['_DEPSLISTSUBDIRECTORYMSG']._serialized_end=19289 + _globals['_DEPSNOTIFYUPDATESAVAILABLE']._serialized_start=19291 + _globals['_DEPSNOTIFYUPDATESAVAILABLE']._serialized_end=19337 + _globals['_DEPSNOTIFYUPDATESAVAILABLEMSG']._serialized_start=19340 + _globals['_DEPSNOTIFYUPDATESAVAILABLEMSG']._serialized_end=19468 + _globals['_REGISTRYINDEXPROGRESSGETREQUEST']._serialized_start=19470 + _globals['_REGISTRYINDEXPROGRESSGETREQUEST']._serialized_end=19516 + _globals['_REGISTRYINDEXPROGRESSGETREQUESTMSG']._serialized_start=19519 + _globals['_REGISTRYINDEXPROGRESSGETREQUESTMSG']._serialized_end=19657 + _globals['_REGISTRYINDEXPROGRESSGETRESPONSE']._serialized_start=19659 + _globals['_REGISTRYINDEXPROGRESSGETRESPONSE']._serialized_end=19725 + _globals['_REGISTRYINDEXPROGRESSGETRESPONSEMSG']._serialized_start=19728 + _globals['_REGISTRYINDEXPROGRESSGETRESPONSEMSG']._serialized_end=19868 + _globals['_REGISTRYRESPONSEUNEXPECTEDTYPE']._serialized_start=19870 + _globals['_REGISTRYRESPONSEUNEXPECTEDTYPE']._serialized_end=19920 + _globals['_REGISTRYRESPONSEUNEXPECTEDTYPEMSG']._serialized_start=19923 + _globals['_REGISTRYRESPONSEUNEXPECTEDTYPEMSG']._serialized_end=20059 + _globals['_REGISTRYRESPONSEMISSINGTOPKEYS']._serialized_start=20061 + _globals['_REGISTRYRESPONSEMISSINGTOPKEYS']._serialized_end=20111 + _globals['_REGISTRYRESPONSEMISSINGTOPKEYSMSG']._serialized_start=20114 + _globals['_REGISTRYRESPONSEMISSINGTOPKEYSMSG']._serialized_end=20250 + _globals['_REGISTRYRESPONSEMISSINGNESTEDKEYS']._serialized_start=20252 + _globals['_REGISTRYRESPONSEMISSINGNESTEDKEYS']._serialized_end=20305 + _globals['_REGISTRYRESPONSEMISSINGNESTEDKEYSMSG']._serialized_start=20308 + _globals['_REGISTRYRESPONSEMISSINGNESTEDKEYSMSG']._serialized_end=20450 + _globals['_REGISTRYRESPONSEEXTRANESTEDKEYS']._serialized_start=20452 + _globals['_REGISTRYRESPONSEEXTRANESTEDKEYS']._serialized_end=20503 + _globals['_REGISTRYRESPONSEEXTRANESTEDKEYSMSG']._serialized_start=20506 + _globals['_REGISTRYRESPONSEEXTRANESTEDKEYSMSG']._serialized_end=20644 + _globals['_DEPSSETDOWNLOADDIRECTORY']._serialized_start=20646 + _globals['_DEPSSETDOWNLOADDIRECTORY']._serialized_end=20686 + _globals['_DEPSSETDOWNLOADDIRECTORYMSG']._serialized_start=20688 + _globals['_DEPSSETDOWNLOADDIRECTORYMSG']._serialized_end=20812 + _globals['_DEPSUNPINNED']._serialized_start=20814 + _globals['_DEPSUNPINNED']._serialized_end=20859 + _globals['_DEPSUNPINNEDMSG']._serialized_start=20861 + _globals['_DEPSUNPINNEDMSG']._serialized_end=20961 + _globals['_NONODESFORSELECTIONCRITERIA']._serialized_start=20963 + _globals['_NONODESFORSELECTIONCRITERIA']._serialized_end=21010 + _globals['_NONODESFORSELECTIONCRITERIAMSG']._serialized_start=21013 + _globals['_NONODESFORSELECTIONCRITERIAMSG']._serialized_end=21143 + _globals['_DEPSLOCKUPDATING']._serialized_start=21145 + _globals['_DEPSLOCKUPDATING']._serialized_end=21186 + _globals['_DEPSLOCKUPDATINGMSG']._serialized_start=21188 + _globals['_DEPSLOCKUPDATINGMSG']._serialized_end=21296 + _globals['_DEPSADDPACKAGE']._serialized_start=21298 + _globals['_DEPSADDPACKAGE']._serialized_end=21380 + _globals['_DEPSADDPACKAGEMSG']._serialized_start=21382 + _globals['_DEPSADDPACKAGEMSG']._serialized_end=21486 + _globals['_DEPSFOUNDDUPLICATEPACKAGE']._serialized_start=21489 + _globals['_DEPSFOUNDDUPLICATEPACKAGE']._serialized_end=21656 + _globals['_DEPSFOUNDDUPLICATEPACKAGE_REMOVEDPACKAGEENTRY']._serialized_start=21603 + _globals['_DEPSFOUNDDUPLICATEPACKAGE_REMOVEDPACKAGEENTRY']._serialized_end=21656 + _globals['_DEPSFOUNDDUPLICATEPACKAGEMSG']._serialized_start=21658 + _globals['_DEPSFOUNDDUPLICATEPACKAGEMSG']._serialized_end=21784 + _globals['_DEPSVERSIONMISSING']._serialized_start=21786 + _globals['_DEPSVERSIONMISSING']._serialized_end=21822 + _globals['_DEPSVERSIONMISSINGMSG']._serialized_start=21824 + _globals['_DEPSVERSIONMISSINGMSG']._serialized_end=21936 + _globals['_DEPSSCRUBBEDPACKAGENAME']._serialized_start=21938 + _globals['_DEPSSCRUBBEDPACKAGENAME']._serialized_end=21985 + _globals['_DEPSSCRUBBEDPACKAGENAMEMSG']._serialized_start=21987 + _globals['_DEPSSCRUBBEDPACKAGENAMEMSG']._serialized_end=22109 + _globals['_ARTIFACTWRITTEN']._serialized_start=22111 + _globals['_ARTIFACTWRITTEN']._serialized_end=22174 + _globals['_ARTIFACTWRITTENMSG']._serialized_start=22176 + _globals['_ARTIFACTWRITTENMSG']._serialized_end=22282 + _globals['_RUNNINGOPERATIONCAUGHTERROR']._serialized_start=22284 + _globals['_RUNNINGOPERATIONCAUGHTERROR']._serialized_end=22326 + _globals['_RUNNINGOPERATIONCAUGHTERRORMSG']._serialized_start=22329 + _globals['_RUNNINGOPERATIONCAUGHTERRORMSG']._serialized_end=22459 + _globals['_COMPILECOMPLETE']._serialized_start=22461 + _globals['_COMPILECOMPLETE']._serialized_end=22478 + _globals['_COMPILECOMPLETEMSG']._serialized_start=22480 + _globals['_COMPILECOMPLETEMSG']._serialized_end=22586 + _globals['_FRESHNESSCHECKCOMPLETE']._serialized_start=22588 + _globals['_FRESHNESSCHECKCOMPLETE']._serialized_end=22612 + _globals['_FRESHNESSCHECKCOMPLETEMSG']._serialized_start=22614 + _globals['_FRESHNESSCHECKCOMPLETEMSG']._serialized_end=22734 + _globals['_SEEDHEADER']._serialized_start=22736 + _globals['_SEEDHEADER']._serialized_end=22764 + _globals['_SEEDHEADERMSG']._serialized_start=22766 + _globals['_SEEDHEADERMSG']._serialized_end=22862 + _globals['_SQLRUNNEREXCEPTION']._serialized_start=22864 + _globals['_SQLRUNNEREXCEPTION']._serialized_end=22957 + _globals['_SQLRUNNEREXCEPTIONMSG']._serialized_start=22959 + _globals['_SQLRUNNEREXCEPTIONMSG']._serialized_end=23071 + _globals['_GROUP']._serialized_start=23074 + _globals['_GROUP']._serialized_end=23209 + _globals['_GROUP_OWNERENTRY']._serialized_start=23165 + _globals['_GROUP_OWNERENTRY']._serialized_end=23209 + _globals['_LOGTESTRESULT']._serialized_start=23212 + _globals['_LOGTESTRESULT']._serialized_end=23438 + _globals['_LOGTESTRESULTMSG']._serialized_start=23440 + _globals['_LOGTESTRESULTMSG']._serialized_end=23542 + _globals['_LOGSTARTLINE']._serialized_start=23544 + _globals['_LOGSTARTLINE']._serialized_end=23651 + _globals['_LOGSTARTLINEMSG']._serialized_start=23653 + _globals['_LOGSTARTLINEMSG']._serialized_end=23753 + _globals['_LOGMODELRESULT']._serialized_start=23756 + _globals['_LOGMODELRESULT']._serialized_end=23940 + _globals['_LOGMODELRESULTMSG']._serialized_start=23942 + _globals['_LOGMODELRESULTMSG']._serialized_end=24046 + _globals['_LOGSNAPSHOTRESULT']._serialized_start=24049 + _globals['_LOGSNAPSHOTRESULT']._serialized_end=24323 + _globals['_LOGSNAPSHOTRESULT_CFGENTRY']._serialized_start=24281 + _globals['_LOGSNAPSHOTRESULT_CFGENTRY']._serialized_end=24323 + _globals['_LOGSNAPSHOTRESULTMSG']._serialized_start=24325 + _globals['_LOGSNAPSHOTRESULTMSG']._serialized_end=24435 + _globals['_LOGSEEDRESULT']._serialized_start=24438 + _globals['_LOGSEEDRESULT']._serialized_end=24623 + _globals['_LOGSEEDRESULTMSG']._serialized_start=24625 + _globals['_LOGSEEDRESULTMSG']._serialized_end=24727 + _globals['_LOGFRESHNESSRESULT']._serialized_start=24730 + _globals['_LOGFRESHNESSRESULT']._serialized_end=24903 + _globals['_LOGFRESHNESSRESULTMSG']._serialized_start=24905 + _globals['_LOGFRESHNESSRESULTMSG']._serialized_end=25017 + _globals['_LOGNODENOOPRESULT']._serialized_start=25020 + _globals['_LOGNODENOOPRESULT']._serialized_end=25172 + _globals['_LOGNODENOOPRESULTMSG']._serialized_start=25174 + _globals['_LOGNODENOOPRESULTMSG']._serialized_end=25284 + _globals['_LOGCANCELLINE']._serialized_start=25286 + _globals['_LOGCANCELLINE']._serialized_end=25320 + _globals['_LOGCANCELLINEMSG']._serialized_start=25322 + _globals['_LOGCANCELLINEMSG']._serialized_end=25424 + _globals['_DEFAULTSELECTOR']._serialized_start=25426 + _globals['_DEFAULTSELECTOR']._serialized_end=25457 + _globals['_DEFAULTSELECTORMSG']._serialized_start=25459 + _globals['_DEFAULTSELECTORMSG']._serialized_end=25565 + _globals['_NODESTART']._serialized_start=25567 + _globals['_NODESTART']._serialized_end=25620 + _globals['_NODESTARTMSG']._serialized_start=25622 + _globals['_NODESTARTMSG']._serialized_end=25716 + _globals['_NODEFINISHED']._serialized_start=25718 + _globals['_NODEFINISHED']._serialized_end=25821 + _globals['_NODEFINISHEDMSG']._serialized_start=25823 + _globals['_NODEFINISHEDMSG']._serialized_end=25923 + _globals['_QUERYCANCELATIONUNSUPPORTED']._serialized_start=25925 + _globals['_QUERYCANCELATIONUNSUPPORTED']._serialized_end=25968 + _globals['_QUERYCANCELATIONUNSUPPORTEDMSG']._serialized_start=25971 + _globals['_QUERYCANCELATIONUNSUPPORTEDMSG']._serialized_end=26101 + _globals['_CONCURRENCYLINE']._serialized_start=26103 + _globals['_CONCURRENCYLINE']._serialized_end=26182 + _globals['_CONCURRENCYLINEMSG']._serialized_start=26184 + _globals['_CONCURRENCYLINEMSG']._serialized_end=26290 + _globals['_WRITINGINJECTEDSQLFORNODE']._serialized_start=26292 + _globals['_WRITINGINJECTEDSQLFORNODE']._serialized_end=26361 + _globals['_WRITINGINJECTEDSQLFORNODEMSG']._serialized_start=26363 + _globals['_WRITINGINJECTEDSQLFORNODEMSG']._serialized_end=26489 + _globals['_NODECOMPILING']._serialized_start=26491 + _globals['_NODECOMPILING']._serialized_end=26548 + _globals['_NODECOMPILINGMSG']._serialized_start=26550 + _globals['_NODECOMPILINGMSG']._serialized_end=26652 + _globals['_NODEEXECUTING']._serialized_start=26654 + _globals['_NODEEXECUTING']._serialized_end=26711 + _globals['_NODEEXECUTINGMSG']._serialized_start=26713 + _globals['_NODEEXECUTINGMSG']._serialized_end=26815 + _globals['_LOGHOOKSTARTLINE']._serialized_start=26817 + _globals['_LOGHOOKSTARTLINE']._serialized_end=26926 + _globals['_LOGHOOKSTARTLINEMSG']._serialized_start=26928 + _globals['_LOGHOOKSTARTLINEMSG']._serialized_end=27036 + _globals['_LOGHOOKENDLINE']._serialized_start=27039 + _globals['_LOGHOOKENDLINE']._serialized_end=27186 + _globals['_LOGHOOKENDLINEMSG']._serialized_start=27188 + _globals['_LOGHOOKENDLINEMSG']._serialized_end=27292 + _globals['_SKIPPINGDETAILS']._serialized_start=27295 + _globals['_SKIPPINGDETAILS']._serialized_end=27442 + _globals['_SKIPPINGDETAILSMSG']._serialized_start=27444 + _globals['_SKIPPINGDETAILSMSG']._serialized_end=27550 + _globals['_NOTHINGTODO']._serialized_start=27552 + _globals['_NOTHINGTODO']._serialized_end=27565 + _globals['_NOTHINGTODOMSG']._serialized_start=27567 + _globals['_NOTHINGTODOMSG']._serialized_end=27665 + _globals['_RUNNINGOPERATIONUNCAUGHTERROR']._serialized_start=27667 + _globals['_RUNNINGOPERATIONUNCAUGHTERROR']._serialized_end=27711 + _globals['_RUNNINGOPERATIONUNCAUGHTERRORMSG']._serialized_start=27714 + _globals['_RUNNINGOPERATIONUNCAUGHTERRORMSG']._serialized_end=27848 + _globals['_ENDRUNRESULT']._serialized_start=27851 + _globals['_ENDRUNRESULT']._serialized_end=27998 + _globals['_ENDRUNRESULTMSG']._serialized_start=28000 + _globals['_ENDRUNRESULTMSG']._serialized_end=28100 + _globals['_NONODESSELECTED']._serialized_start=28102 + _globals['_NONODESSELECTED']._serialized_end=28119 + _globals['_NONODESSELECTEDMSG']._serialized_start=28121 + _globals['_NONODESSELECTEDMSG']._serialized_end=28227 + _globals['_COMMANDCOMPLETED']._serialized_start=28229 + _globals['_COMMANDCOMPLETED']._serialized_end=28348 + _globals['_COMMANDCOMPLETEDMSG']._serialized_start=28350 + _globals['_COMMANDCOMPLETEDMSG']._serialized_end=28458 + _globals['_SHOWNODE']._serialized_start=28460 + _globals['_SHOWNODE']._serialized_end=28582 + _globals['_SHOWNODEMSG']._serialized_start=28584 + _globals['_SHOWNODEMSG']._serialized_end=28676 + _globals['_COMPILEDNODE']._serialized_start=28678 + _globals['_COMPILEDNODE']._serialized_end=28805 + _globals['_COMPILEDNODEMSG']._serialized_start=28807 + _globals['_COMPILEDNODEMSG']._serialized_end=28907 + _globals['_SNAPSHOTTIMESTAMPWARNING']._serialized_start=28909 + _globals['_SNAPSHOTTIMESTAMPWARNING']._serialized_end=28998 + _globals['_SNAPSHOTTIMESTAMPWARNINGMSG']._serialized_start=29000 + _globals['_SNAPSHOTTIMESTAMPWARNINGMSG']._serialized_end=29124 + _globals['_MICROBATCHEXECUTIONDEBUG']._serialized_start=29126 + _globals['_MICROBATCHEXECUTIONDEBUG']._serialized_end=29165 + _globals['_MICROBATCHEXECUTIONDEBUGMSG']._serialized_start=29167 + _globals['_MICROBATCHEXECUTIONDEBUGMSG']._serialized_end=29291 + _globals['_LOGSTARTBATCH']._serialized_start=29293 + _globals['_LOGSTARTBATCH']._serialized_end=29415 + _globals['_LOGSTARTBATCHMSG']._serialized_start=29417 + _globals['_LOGSTARTBATCHMSG']._serialized_end=29519 + _globals['_LOGBATCHRESULT']._serialized_start=29522 + _globals['_LOGBATCHRESULT']._serialized_end=29720 + _globals['_LOGBATCHRESULTMSG']._serialized_start=29722 + _globals['_LOGBATCHRESULTMSG']._serialized_end=29826 + _globals['_CATCHABLEEXCEPTIONONRUN']._serialized_start=29828 + _globals['_CATCHABLEEXCEPTIONONRUN']._serialized_end=29926 + _globals['_CATCHABLEEXCEPTIONONRUNMSG']._serialized_start=29928 + _globals['_CATCHABLEEXCEPTIONONRUNMSG']._serialized_end=30050 + _globals['_INTERNALERRORONRUN']._serialized_start=30052 + _globals['_INTERNALERRORONRUN']._serialized_end=30147 + _globals['_INTERNALERRORONRUNMSG']._serialized_start=30149 + _globals['_INTERNALERRORONRUNMSG']._serialized_end=30261 + _globals['_GENERICEXCEPTIONONRUN']._serialized_start=30263 + _globals['_GENERICEXCEPTIONONRUN']._serialized_end=30380 + _globals['_GENERICEXCEPTIONONRUNMSG']._serialized_start=30382 + _globals['_GENERICEXCEPTIONONRUNMSG']._serialized_end=30500 + _globals['_NODECONNECTIONRELEASEERROR']._serialized_start=30502 + _globals['_NODECONNECTIONRELEASEERROR']._serialized_end=30580 + _globals['_NODECONNECTIONRELEASEERRORMSG']._serialized_start=30583 + _globals['_NODECONNECTIONRELEASEERRORMSG']._serialized_end=30711 + _globals['_FOUNDSTATS']._serialized_start=30713 + _globals['_FOUNDSTATS']._serialized_end=30744 + _globals['_FOUNDSTATSMSG']._serialized_start=30746 + _globals['_FOUNDSTATSMSG']._serialized_end=30842 + _globals['_MAINKEYBOARDINTERRUPT']._serialized_start=30844 + _globals['_MAINKEYBOARDINTERRUPT']._serialized_end=30867 + _globals['_MAINKEYBOARDINTERRUPTMSG']._serialized_start=30869 + _globals['_MAINKEYBOARDINTERRUPTMSG']._serialized_end=30987 + _globals['_MAINENCOUNTEREDERROR']._serialized_start=30989 + _globals['_MAINENCOUNTEREDERROR']._serialized_end=31024 + _globals['_MAINENCOUNTEREDERRORMSG']._serialized_start=31026 + _globals['_MAINENCOUNTEREDERRORMSG']._serialized_end=31142 + _globals['_MAINSTACKTRACE']._serialized_start=31144 + _globals['_MAINSTACKTRACE']._serialized_end=31181 + _globals['_MAINSTACKTRACEMSG']._serialized_start=31183 + _globals['_MAINSTACKTRACEMSG']._serialized_end=31287 + _globals['_TIMINGINFOCOLLECTED']._serialized_start=31289 + _globals['_TIMINGINFOCOLLECTED']._serialized_end=31401 + _globals['_TIMINGINFOCOLLECTEDMSG']._serialized_start=31403 + _globals['_TIMINGINFOCOLLECTEDMSG']._serialized_end=31517 + _globals['_LOGDEBUGSTACKTRACE']._serialized_start=31519 + _globals['_LOGDEBUGSTACKTRACE']._serialized_end=31557 + _globals['_LOGDEBUGSTACKTRACEMSG']._serialized_start=31559 + _globals['_LOGDEBUGSTACKTRACEMSG']._serialized_end=31671 + _globals['_CHECKCLEANPATH']._serialized_start=31673 + _globals['_CHECKCLEANPATH']._serialized_end=31703 + _globals['_CHECKCLEANPATHMSG']._serialized_start=31705 + _globals['_CHECKCLEANPATHMSG']._serialized_end=31809 + _globals['_CONFIRMCLEANPATH']._serialized_start=31811 + _globals['_CONFIRMCLEANPATH']._serialized_end=31843 + _globals['_CONFIRMCLEANPATHMSG']._serialized_start=31845 + _globals['_CONFIRMCLEANPATHMSG']._serialized_end=31953 + _globals['_PROTECTEDCLEANPATH']._serialized_start=31955 + _globals['_PROTECTEDCLEANPATH']._serialized_end=31989 + _globals['_PROTECTEDCLEANPATHMSG']._serialized_start=31991 + _globals['_PROTECTEDCLEANPATHMSG']._serialized_end=32103 + _globals['_FINISHEDCLEANPATHS']._serialized_start=32105 + _globals['_FINISHEDCLEANPATHS']._serialized_end=32125 + _globals['_FINISHEDCLEANPATHSMSG']._serialized_start=32127 + _globals['_FINISHEDCLEANPATHSMSG']._serialized_end=32239 + _globals['_OPENCOMMAND']._serialized_start=32241 + _globals['_OPENCOMMAND']._serialized_end=32294 + _globals['_OPENCOMMANDMSG']._serialized_start=32296 + _globals['_OPENCOMMANDMSG']._serialized_end=32394 + _globals['_SERVINGDOCSPORT']._serialized_start=32396 + _globals['_SERVINGDOCSPORT']._serialized_end=32444 + _globals['_SERVINGDOCSPORTMSG']._serialized_start=32446 + _globals['_SERVINGDOCSPORTMSG']._serialized_end=32552 + _globals['_SERVINGDOCSACCESSINFO']._serialized_start=32554 + _globals['_SERVINGDOCSACCESSINFO']._serialized_end=32591 + _globals['_SERVINGDOCSACCESSINFOMSG']._serialized_start=32593 + _globals['_SERVINGDOCSACCESSINFOMSG']._serialized_end=32711 + _globals['_SERVINGDOCSEXITINFO']._serialized_start=32713 + _globals['_SERVINGDOCSEXITINFO']._serialized_end=32734 + _globals['_SERVINGDOCSEXITINFOMSG']._serialized_start=32736 + _globals['_SERVINGDOCSEXITINFOMSG']._serialized_end=32850 + _globals['_RUNRESULTWARNING']._serialized_start=32853 + _globals['_RUNRESULTWARNING']._serialized_end=33004 + _globals['_RUNRESULTWARNINGMSG']._serialized_start=33006 + _globals['_RUNRESULTWARNINGMSG']._serialized_end=33114 + _globals['_RUNRESULTFAILURE']._serialized_start=33117 + _globals['_RUNRESULTFAILURE']._serialized_end=33268 + _globals['_RUNRESULTFAILUREMSG']._serialized_start=33270 + _globals['_RUNRESULTFAILUREMSG']._serialized_end=33378 + _globals['_STATSLINE']._serialized_start=33380 + _globals['_STATSLINE']._serialized_end=33487 + _globals['_STATSLINE_STATSENTRY']._serialized_start=33443 + _globals['_STATSLINE_STATSENTRY']._serialized_end=33487 + _globals['_STATSLINEMSG']._serialized_start=33489 + _globals['_STATSLINEMSG']._serialized_end=33583 + _globals['_RUNRESULTERROR']._serialized_start=33585 + _globals['_RUNRESULTERROR']._serialized_end=33691 + _globals['_RUNRESULTERRORMSG']._serialized_start=33693 + _globals['_RUNRESULTERRORMSG']._serialized_end=33797 + _globals['_RUNRESULTERRORNOMESSAGE']._serialized_start=33799 + _globals['_RUNRESULTERRORNOMESSAGE']._serialized_end=33882 + _globals['_RUNRESULTERRORNOMESSAGEMSG']._serialized_start=33884 + _globals['_RUNRESULTERRORNOMESSAGEMSG']._serialized_end=34006 + _globals['_SQLCOMPILEDPATH']._serialized_start=34008 + _globals['_SQLCOMPILEDPATH']._serialized_end=34081 + _globals['_SQLCOMPILEDPATHMSG']._serialized_start=34083 + _globals['_SQLCOMPILEDPATHMSG']._serialized_end=34189 + _globals['_CHECKNODETESTFAILURE']._serialized_start=34191 + _globals['_CHECKNODETESTFAILURE']._serialized_end=34278 + _globals['_CHECKNODETESTFAILUREMSG']._serialized_start=34280 + _globals['_CHECKNODETESTFAILUREMSG']._serialized_end=34396 + _globals['_ENDOFRUNSUMMARY']._serialized_start=34398 + _globals['_ENDOFRUNSUMMARY']._serialized_end=34514 + _globals['_ENDOFRUNSUMMARYMSG']._serialized_start=34516 + _globals['_ENDOFRUNSUMMARYMSG']._serialized_end=34622 + _globals['_MARKSKIPPEDCHILDREN']._serialized_start=34624 + _globals['_MARKSKIPPEDCHILDREN']._serialized_end=34727 + _globals['_MARKSKIPPEDCHILDRENMSG']._serialized_start=34729 + _globals['_MARKSKIPPEDCHILDRENMSG']._serialized_end=34843 + _globals['_LOGSKIPBECAUSEERROR']._serialized_start=34845 + _globals['_LOGSKIPBECAUSEERROR']._serialized_end=34946 + _globals['_LOGSKIPBECAUSEERRORMSG']._serialized_start=34948 + _globals['_LOGSKIPBECAUSEERRORMSG']._serialized_end=35062 + _globals['_ENSUREGITINSTALLED']._serialized_start=35064 + _globals['_ENSUREGITINSTALLED']._serialized_end=35084 + _globals['_ENSUREGITINSTALLEDMSG']._serialized_start=35086 + _globals['_ENSUREGITINSTALLEDMSG']._serialized_end=35198 + _globals['_DEPSCREATINGLOCALSYMLINK']._serialized_start=35200 + _globals['_DEPSCREATINGLOCALSYMLINK']._serialized_end=35226 + _globals['_DEPSCREATINGLOCALSYMLINKMSG']._serialized_start=35228 + _globals['_DEPSCREATINGLOCALSYMLINKMSG']._serialized_end=35352 + _globals['_DEPSSYMLINKNOTAVAILABLE']._serialized_start=35354 + _globals['_DEPSSYMLINKNOTAVAILABLE']._serialized_end=35379 + _globals['_DEPSSYMLINKNOTAVAILABLEMSG']._serialized_start=35381 + _globals['_DEPSSYMLINKNOTAVAILABLEMSG']._serialized_end=35503 + _globals['_DISABLETRACKING']._serialized_start=35505 + _globals['_DISABLETRACKING']._serialized_end=35522 + _globals['_DISABLETRACKINGMSG']._serialized_start=35524 + _globals['_DISABLETRACKINGMSG']._serialized_end=35630 + _globals['_SENDINGEVENT']._serialized_start=35632 + _globals['_SENDINGEVENT']._serialized_end=35662 + _globals['_SENDINGEVENTMSG']._serialized_start=35664 + _globals['_SENDINGEVENTMSG']._serialized_end=35764 + _globals['_SENDEVENTFAILURE']._serialized_start=35766 + _globals['_SENDEVENTFAILURE']._serialized_end=35784 + _globals['_SENDEVENTFAILUREMSG']._serialized_start=35786 + _globals['_SENDEVENTFAILUREMSG']._serialized_end=35894 + _globals['_FLUSHEVENTS']._serialized_start=35896 + _globals['_FLUSHEVENTS']._serialized_end=35909 + _globals['_FLUSHEVENTSMSG']._serialized_start=35911 + _globals['_FLUSHEVENTSMSG']._serialized_end=36009 + _globals['_FLUSHEVENTSFAILURE']._serialized_start=36011 + _globals['_FLUSHEVENTSFAILURE']._serialized_end=36031 + _globals['_FLUSHEVENTSFAILUREMSG']._serialized_start=36033 + _globals['_FLUSHEVENTSFAILUREMSG']._serialized_end=36145 + _globals['_TRACKINGINITIALIZEFAILURE']._serialized_start=36147 + _globals['_TRACKINGINITIALIZEFAILURE']._serialized_end=36192 + _globals['_TRACKINGINITIALIZEFAILUREMSG']._serialized_start=36194 + _globals['_TRACKINGINITIALIZEFAILUREMSG']._serialized_end=36320 + _globals['_RUNRESULTWARNINGMESSAGE']._serialized_start=36322 + _globals['_RUNRESULTWARNINGMESSAGE']._serialized_end=36402 + _globals['_RUNRESULTWARNINGMESSAGEMSG']._serialized_start=36404 + _globals['_RUNRESULTWARNINGMESSAGEMSG']._serialized_end=36526 + _globals['_DEBUGCMDOUT']._serialized_start=36528 + _globals['_DEBUGCMDOUT']._serialized_end=36554 + _globals['_DEBUGCMDOUTMSG']._serialized_start=36556 + _globals['_DEBUGCMDOUTMSG']._serialized_end=36654 + _globals['_DEBUGCMDRESULT']._serialized_start=36656 + _globals['_DEBUGCMDRESULT']._serialized_end=36685 + _globals['_DEBUGCMDRESULTMSG']._serialized_start=36687 + _globals['_DEBUGCMDRESULTMSG']._serialized_end=36791 + _globals['_LISTCMDOUT']._serialized_start=36793 + _globals['_LISTCMDOUT']._serialized_end=36818 + _globals['_LISTCMDOUTMSG']._serialized_start=36820 + _globals['_LISTCMDOUTMSG']._serialized_end=36916 + _globals['_RESOURCEREPORT']._serialized_start=36919 + _globals['_RESOURCEREPORT']._serialized_end=37155 + _globals['_RESOURCEREPORTMSG']._serialized_start=37157 + _globals['_RESOURCEREPORTMSG']._serialized_end=37261 # @@protoc_insertion_point(module_scope) diff --git a/core/dbt/events/types.py b/core/dbt/events/types.py index daad51e7451..a2ae8a4d54b 100644 --- a/core/dbt/events/types.py +++ b/core/dbt/events/types.py @@ -967,6 +967,16 @@ def message(self) -> str: return warning_tag(msg) +class InvalidConcurrentBatchesConfig(WarnLevel): + def code(self) -> str: + return "I075" + + def message(self) -> str: + maybe_plural_count_of_models = pluralize(self.num_models, "microbatch model") + description = f"Found {maybe_plural_count_of_models} with the `concurrent_batches` config set to true, but the {self.adapter_type} adapter does not support running batches concurrently. Batches will be run sequentially." + return line_wrap_message(warning_tag(description)) + + # ======================================================= # M - Deps generation # ======================================================= diff --git a/core/dbt/parser/manifest.py b/core/dbt/parser/manifest.py index 72f328a0bbe..ba42c6637d3 100644 --- a/core/dbt/parser/manifest.py +++ b/core/dbt/parser/manifest.py @@ -17,6 +17,7 @@ import dbt.utils import dbt_common.utils from dbt import plugins +from dbt.adapters.capability import Capability from dbt.adapters.factory import ( get_adapter, get_adapter_package_names, @@ -66,6 +67,7 @@ ArtifactWritten, DeprecatedModel, DeprecatedReference, + InvalidConcurrentBatchesConfig, InvalidDisabledTargetInTestNode, MicrobatchModelNoEventTimeInputs, NodeNotFoundOrDisabled, @@ -510,6 +512,7 @@ def load(self) -> Manifest: self.check_for_model_deprecations() self.check_for_spaces_in_resource_names() self.check_for_microbatch_deprecations() + self.check_forcing_batch_concurrency() return self.manifest @@ -1484,6 +1487,27 @@ def check_valid_microbatch_config(self): if not has_input_with_event_time_config: fire_event(MicrobatchModelNoEventTimeInputs(model_name=node.name)) + def check_forcing_batch_concurrency(self) -> None: + if self.manifest.use_microbatch_batches(project_name=self.root_project.project_name): + adapter = get_adapter(self.root_project) + + if not adapter.supports(Capability.MicrobatchConcurrency): + models_forcing_concurrent_batches = 0 + for node in self.manifest.nodes.values(): + if ( + hasattr(node.config, "concurrent_batches") + and node.config.concurrent_batches is True + ): + models_forcing_concurrent_batches += 1 + + if models_forcing_concurrent_batches > 0: + warn_or_error( + InvalidConcurrentBatchesConfig( + num_models=models_forcing_concurrent_batches, + adapter_type=adapter.type(), + ) + ) + def write_perf_info(self, target_path: str): path = os.path.join(target_path, PERF_INFO_FILE_NAME) write_file(path, json.dumps(self._perf_info, cls=dbt.utils.JSONEncoder, indent=4)) diff --git a/tests/functional/microbatch/test_microbatch.py b/tests/functional/microbatch/test_microbatch.py index c31657d94fc..953b372b226 100644 --- a/tests/functional/microbatch/test_microbatch.py +++ b/tests/functional/microbatch/test_microbatch.py @@ -7,6 +7,7 @@ ArtifactWritten, EndOfRunSummary, GenericExceptionOnRun, + InvalidConcurrentBatchesConfig, JinjaLogDebug, LogBatchResult, LogModelResult, @@ -71,6 +72,11 @@ select * from {{ ref('input_model') }} """ +microbatch_model_force_concurrent_batches_sql = """ +{{ config(materialized='incremental', incremental_strategy='microbatch', unique_key='id', event_time='event_time', batch_size='day', begin=modules.datetime.datetime(2020, 1, 1, 0, 0, 0), concurrent_batches=true) }} +select * from {{ ref('input_model') }} +""" + microbatch_yearly_model_sql = """ {{ config(materialized='incremental', incremental_strategy='microbatch', unique_key='id', event_time='event_time', batch_size='year', begin=modules.datetime.datetime(2020, 1, 1, 0, 0, 0)) }} select * from {{ ref('input_model') }} @@ -1083,3 +1089,42 @@ def test_microbatch( # we had a bug where having only one batch caused a generic exception assert len(generic_exception_catcher.caught_events) == 0 + + +class TestCanSilenceInvalidConcurrentBatchesConfigWarning(BaseMicrobatchTest): + @pytest.fixture(scope="class") + def models(self): + return { + "input_model.sql": input_model_sql, + "microbatch_model.sql": microbatch_model_force_concurrent_batches_sql, + } + + @pytest.fixture + def event_catcher(self) -> EventCatcher: + return EventCatcher(event_to_catch=InvalidConcurrentBatchesConfig) # type: ignore + + def test_microbatch( + self, + project, + event_catcher: EventCatcher, + ) -> None: + # This test works because postgres doesn't support concurrent batch execution + # If the postgres adapter starts supporting concurrent batch execution we'll + # need to start mocking the return value of `adapter.supports()` + + with patch_microbatch_end_time("2020-01-01 13:57:00"): + _ = run_dbt(["run"], callbacks=[event_catcher.catch]) + # We didn't silence the warning, so we get it + assert len(event_catcher.caught_events) == 1 + + # Clear caught events + event_catcher.caught_events = [] + + # Run again with silencing + with patch_microbatch_end_time("2020-01-01 13:57:00"): + _ = run_dbt( + ["run", "--warn-error-options", "{'silence': ['InvalidConcurrentBatchesConfig']}"], + callbacks=[event_catcher.catch], + ) + # Because we silenced the warning, it shouldn't get fired + assert len(event_catcher.caught_events) == 0 diff --git a/tests/unit/parser/test_manifest.py b/tests/unit/parser/test_manifest.py index e01b41ce5b2..e0f83e9208e 100644 --- a/tests/unit/parser/test_manifest.py +++ b/tests/unit/parser/test_manifest.py @@ -1,18 +1,21 @@ from argparse import Namespace +from typing import Optional from unittest.mock import MagicMock, patch import pytest from pytest_mock import MockerFixture +from dbt.adapters.postgres import PostgresAdapter from dbt.artifacts.resources.base import FileHash from dbt.config import RuntimeConfig from dbt.contracts.graph.manifest import Manifest, ManifestStateCheck -from dbt.events.types import UnusedResourceConfigPath +from dbt.events.types import InvalidConcurrentBatchesConfig, UnusedResourceConfigPath from dbt.flags import set_from_args from dbt.parser.manifest import ManifestLoader, _warn_for_unused_resource_config_paths from dbt.parser.read_files import FileDiff from dbt.tracking import User from dbt_common.events.event_manager_client import add_callback_to_manager +from tests.unit.fixtures import model_node from tests.utils import EventCatcher @@ -238,3 +241,58 @@ def test_warn_for_unused_resource_config_paths( else: assert len(catcher.caught_events) == 1 assert f"{resource_type}.{path}" in str(catcher.caught_events[0].data) + + +class TestCheckForcingConcurrentBatches: + @pytest.fixture + @patch("dbt.parser.manifest.ManifestLoader.build_manifest_state_check") + @patch("dbt.parser.manifest.os.path.exists") + @patch("dbt.parser.manifest.open") + def manifest_loader( + self, patched_open, patched_os_exist, patched_state_check + ) -> ManifestLoader: + mock_project = MagicMock(RuntimeConfig) + mock_project.project_target_path = "mock_target_path" + mock_project.project_name = "mock_project_name" + return ManifestLoader(mock_project, {}) + + @pytest.fixture + def event_catcher(self) -> EventCatcher: + return EventCatcher(InvalidConcurrentBatchesConfig) # type: ignore + + @pytest.mark.parametrize( + "adapter_support,concurrent_batches_config,expect_warning", + [ + (False, True, True), + (False, False, False), + (False, None, False), + (True, True, False), + (True, False, False), + (True, None, False), + ], + ) + def test_check_forcing_concurrent_batches( + self, + mocker: MockerFixture, + manifest_loader: ManifestLoader, + postgres_adapter: PostgresAdapter, + event_catcher: EventCatcher, + adapter_support: bool, + concurrent_batches_config: Optional[bool], + expect_warning: bool, + ): + add_callback_to_manager(event_catcher.catch) + model = model_node() + model.config.concurrent_batches = concurrent_batches_config + mocker.patch.object(postgres_adapter, "supports").return_value = adapter_support + mocker.patch("dbt.parser.manifest.get_adapter").return_value = postgres_adapter + mocker.patch.object(manifest_loader.manifest, "use_microbatch_batches").return_value = True + + manifest_loader.manifest.add_node_nofile(model) + manifest_loader.check_forcing_batch_concurrency() + + if expect_warning: + assert len(event_catcher.caught_events) == 1 + assert "Batches will be run sequentially" in event_catcher.caught_events[0].info.msg # type: ignore + else: + assert len(event_catcher.caught_events) == 0 diff --git a/tests/unit/test_events.py b/tests/unit/test_events.py index de078c45494..5fcb328b8ac 100644 --- a/tests/unit/test_events.py +++ b/tests/unit/test_events.py @@ -289,6 +289,7 @@ def test_event_codes(self): core_types.FreshnessConfigProblem(msg=""), core_types.SemanticValidationFailure(msg=""), core_types.MicrobatchModelNoEventTimeInputs(model_name=""), + core_types.InvalidConcurrentBatchesConfig(num_models=1, adapter_type=""), # M - Deps generation ====================== core_types.GitSparseCheckoutSubdirectory(subdir=""), core_types.GitProgressCheckoutRevision(revision=""), From a1757934efa8429241fb9e951d9b3e1b12d67275 Mon Sep 17 00:00:00 2001 From: Doug Beatty <44704949+dbeatty10@users.noreply.github.com> Date: Tue, 17 Dec 2024 06:47:31 -0700 Subject: [PATCH 4/8] Auto-response for bug reports during holiday break (#11152) --- .../workflows/auto-respond-bug-reports.yml | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/auto-respond-bug-reports.yml diff --git a/.github/workflows/auto-respond-bug-reports.yml b/.github/workflows/auto-respond-bug-reports.yml new file mode 100644 index 00000000000..9780215590a --- /dev/null +++ b/.github/workflows/auto-respond-bug-reports.yml @@ -0,0 +1,50 @@ +# **what?** +# Check if the an issue is opened near or during an extended holiday period. +# If so, post an automatically-generated comment about the holiday for bug reports. +# Also provide specific information to customers of dbt Cloud. + +# **why?** +# Explain why responses will be delayed during our holiday period. + +# **when?** +# This will run when new issues are opened. + +name: Auto-Respond to Bug Reports During Holiday Period + +on: + issues: + types: + - opened + +permissions: + contents: read + issues: write + +jobs: + auto-response: + runs-on: ubuntu-latest + steps: + - name: Check if current date is within holiday period + id: date-check + run: | + current_date=$(date -u +"%Y-%m-%d") + start_date="2024-12-23" + end_date="2025-01-05" + + if [[ "$current_date" < "$start_date" || "$current_date" > "$end_date" ]]; then + echo "outside_holiday=true" >> $GITHUB_ENV + else + echo "outside_holiday=false" >> $GITHUB_ENV + fi + + - name: Post comment + if: ${{ env.outside_holiday == 'false' && contains(github.event.issue.labels.*.name, 'bug') }} + run: | + gh issue comment ${{ github.event.issue.number }} --repo ${{ github.repository }} --body "Thank you for your bug report! Our team is will be out of the office for [Christmas and our Global Week of Rest](https://handbook.getdbt.com/docs/time_off#2024-us-holidays), from December 25, 2024, through January 3, 2025. + + We will review your issue as soon as possible after returning. + Thank you for your understanding, and happy holidays! 🎄🎉 + + If you are a customer of dbt Cloud, please contact our Customer Support team via the dbt Cloud web interface or email **support@dbtlabs.com**." + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 6076cf7114e6ce0cfb10e4c0f371a6dc1c13eb20 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 18 Dec 2024 14:24:27 -0500 Subject: [PATCH 5/8] Fix yaml snapshot specification with data tests (#11156) --- .changes/unreleased/Fixes-20241216-134645.yaml | 6 ++++++ core/dbt/parser/schemas.py | 9 ++++++++- tests/functional/snapshots/fixtures.py | 8 ++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 .changes/unreleased/Fixes-20241216-134645.yaml diff --git a/.changes/unreleased/Fixes-20241216-134645.yaml b/.changes/unreleased/Fixes-20241216-134645.yaml new file mode 100644 index 00000000000..2ef41dc0d2d --- /dev/null +++ b/.changes/unreleased/Fixes-20241216-134645.yaml @@ -0,0 +1,6 @@ +kind: Fixes +body: Error writing generic test at run time +time: 2024-12-16T13:46:45.936573-05:00 +custom: + Author: gshank + Issue: "11110" diff --git a/core/dbt/parser/schemas.py b/core/dbt/parser/schemas.py index 12bb84a5037..e9c66e184e4 100644 --- a/core/dbt/parser/schemas.py +++ b/core/dbt/parser/schemas.py @@ -1,4 +1,5 @@ import datetime +import pathlib import time from abc import ABCMeta, abstractmethod from dataclasses import dataclass, field @@ -289,9 +290,15 @@ def _add_yaml_snapshot_nodes_to_manifest( parser = SnapshotParser(self.project, self.manifest, self.root_project) fqn = parser.get_fqn_prefix(block.path.relative_path) fqn.append(snapshot["name"]) + + compiled_path = str( + pathlib.PurePath("").joinpath( + block.path.relative_path, snapshot["name"] + ".sql" + ) + ) snapshot_node = parser._create_parsetime_node( block, - self.get_compiled_path(block), + compiled_path, parser.initial_config(fqn), fqn, snapshot["name"], diff --git a/tests/functional/snapshots/fixtures.py b/tests/functional/snapshots/fixtures.py index 562fcb4b10f..df0c29b8fa5 100644 --- a/tests/functional/snapshots/fixtures.py +++ b/tests/functional/snapshots/fixtures.py @@ -301,6 +301,10 @@ updated_at: updated_at meta: owner: 'a_owner' + columns: + - name: id + data_tests: + - not_null """ snapshots_pg__snapshot_mod_yml = """ @@ -313,6 +317,10 @@ updated_at: updated_at meta: owner: 'b_owner' + columns: + - name: id + data_tests: + - not_null """ snapshots_pg__snapshot_no_target_schema_sql = """ From 88e953e8aae1923c203d9c0676050c6f8640e590 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 18 Dec 2024 15:40:18 -0500 Subject: [PATCH 6/8] Check modified contracts when doing state:modified (#11161) --- .changes/unreleased/Fixes-20241217-154848.yaml | 6 ++++++ core/dbt/graph/selector_methods.py | 17 ++++++++++++++--- .../defer_state/test_modified_state.py | 17 +++++++++++++++++ 3 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 .changes/unreleased/Fixes-20241217-154848.yaml diff --git a/.changes/unreleased/Fixes-20241217-154848.yaml b/.changes/unreleased/Fixes-20241217-154848.yaml new file mode 100644 index 00000000000..fc6965547d4 --- /dev/null +++ b/.changes/unreleased/Fixes-20241217-154848.yaml @@ -0,0 +1,6 @@ +kind: Fixes +body: Run check_modified_contract for state:modified +time: 2024-12-17T15:48:48.053054-05:00 +custom: + Author: gshank + Issue: "11034" diff --git a/core/dbt/graph/selector_methods.py b/core/dbt/graph/selector_methods.py index dbeaf7ed4c3..3a774042b8d 100644 --- a/core/dbt/graph/selector_methods.py +++ b/core/dbt/graph/selector_methods.py @@ -680,17 +680,24 @@ def check_macros_modified(self, node): def check_modified_content( self, old: Optional[SelectorTarget], new: SelectorTarget, adapter_type: str ) -> bool: + different_contents = False if isinstance( new, (SourceDefinition, Exposure, Metric, SemanticModel, UnitTestDefinition, SavedQuery), ): # these all overwrite `same_contents` different_contents = not new.same_contents(old) # type: ignore - else: + elif new: # because we also pull in deleted/disabled nodes, this could be None different_contents = not new.same_contents(old, adapter_type) # type: ignore upstream_macro_change = self.check_macros_modified(new) - return different_contents or upstream_macro_change + + check_modified_contract = False + if isinstance(old, ModelNode): + func = self.check_modified_contract("same_contract", adapter_type) + check_modified_contract = func(old, new) + + return different_contents or upstream_macro_change or check_modified_contract def check_unmodified_content( self, old: Optional[SelectorTarget], new: SelectorTarget, adapter_type: str @@ -792,7 +799,11 @@ def search(self, included_nodes: Set[UniqueId], selector: str) -> Iterator[Uniqu yield unique_id # checkers that can handle removed nodes - if checker.__name__ in ["check_modified_contract"]: + if checker.__name__ in [ + "check_modified_contract", + "check_modified_content", + "check_unmodified_content", + ]: # ignore included_nodes, since those cannot contain removed nodes for previous_unique_id, previous_node in manifest.nodes.items(): # detect removed (deleted, renamed, or disabled) nodes diff --git a/tests/functional/defer_state/test_modified_state.py b/tests/functional/defer_state/test_modified_state.py index 2ded38e742b..91fa0d4c45c 100644 --- a/tests/functional/defer_state/test_modified_state.py +++ b/tests/functional/defer_state/test_modified_state.py @@ -676,6 +676,15 @@ def test_delete_unversioned_contracted_model(self, project): assert expected_warning in logs assert expected_change in logs + # the same but for general-purpose state:modified + _, logs = run_dbt_and_capture( + ["run", "--models", "state:modified.contract", "--state", "./state"] + ) + expected_warning = "While comparing to previous project state, dbt detected a breaking change to an unversioned model" + expected_change = "Contracted model 'model.test.table_model' was deleted or renamed" + assert expected_warning in logs + assert expected_change in logs + class TestDeleteVersionedContractedModel(BaseModifiedState): MODEL_UNIQUE_ID = "model.test.table_model.v1" @@ -697,6 +706,14 @@ def test_delete_versioned_contracted_model(self, project): e.value ) + # the same but for general-purpose state:modified + with pytest.raises(ContractBreakingChangeError) as e: + run_dbt(["run", "--models", "state:modified", "--state", "./state"]) + + assert "Contracted model 'model.test.table_model.v1' was deleted or renamed." in str( + e.value + ) + class TestDisableUnversionedContractedModel(BaseModifiedState): MODEL_UNIQUE_ID = "model.test.table_model" From bf18b5984597c84b0ac8ccf6ef62cb0bed039689 Mon Sep 17 00:00:00 2001 From: Gerda Shank Date: Wed, 18 Dec 2024 17:21:45 -0500 Subject: [PATCH 7/8] Fix for dbt_project.yml "tests" config resulting in incorrect state:modified (#11166) --- .../unreleased/Fixes-20241218-112640.yaml | 6 +++ core/dbt/config/project.py | 3 ++ .../defer_state/test_unrendered_config.py | 45 +++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 .changes/unreleased/Fixes-20241218-112640.yaml create mode 100644 tests/functional/defer_state/test_unrendered_config.py diff --git a/.changes/unreleased/Fixes-20241218-112640.yaml b/.changes/unreleased/Fixes-20241218-112640.yaml new file mode 100644 index 00000000000..38a72bc867a --- /dev/null +++ b/.changes/unreleased/Fixes-20241218-112640.yaml @@ -0,0 +1,6 @@ +kind: Fixes +body: Fix unrendered_config for tests from dbt_project.yml +time: 2024-12-18T11:26:40.270022-05:00 +custom: + Author: gshank + Issue: "11146" diff --git a/core/dbt/config/project.py b/core/dbt/config/project.py index cbad5a38434..1054c42041d 100644 --- a/core/dbt/config/project.py +++ b/core/dbt/config/project.py @@ -199,6 +199,9 @@ def load_raw_project(project_root: str) -> Dict[str, Any]: if not isinstance(project_dict, dict): raise DbtProjectError(f"{DBT_PROJECT_FILE_NAME} does not parse to a dictionary") + if "tests" in project_dict and "data_tests" not in project_dict: + project_dict["data_tests"] = project_dict.pop("tests") + return project_dict diff --git a/tests/functional/defer_state/test_unrendered_config.py b/tests/functional/defer_state/test_unrendered_config.py new file mode 100644 index 00000000000..958f2a6d6c9 --- /dev/null +++ b/tests/functional/defer_state/test_unrendered_config.py @@ -0,0 +1,45 @@ +import pytest + +from dbt.tests.util import run_dbt + +dbt_project_update = """ +models: + my_dbt_project: + +materialized: table + +tests: + +store_failures: true +""" + +foo_sql = """ +select 1 as id +""" + +schema_yml = """ +models: + - name: foo + columns: + - name: id + tests: + - unique +""" + + +class TestGenericTestUnrenderedConfig: + @pytest.fixture(scope="class") + def project_config_update(self): + return dbt_project_update + + @pytest.fixture(scope="class") + def models(self): + return { + "foo.sql": foo_sql, + "schema.yml": schema_yml, + } + + def test_unrendered_config(self, project): + manifest = run_dbt(["parse"]) + assert manifest + test_node_id = "test.test.unique_foo_id.fa8c520a2e" + test_node = manifest.nodes[test_node_id] + assert test_node.unrendered_config == {"store_failures": True} From 97ffc3740542bda6a2cf5cef75b8b4131248705b Mon Sep 17 00:00:00 2001 From: Patrick Yost <159199360+theyostalservice@users.noreply.github.com> Date: Thu, 19 Dec 2024 10:18:50 -0800 Subject: [PATCH 8/8] Add tags to SavedQueries (#10987) --- .../unreleased/Features-20241216-095435.yaml | 6 ++++ .../dbt/artifacts/resources/v1/saved_query.py | 8 ++++- core/dbt/contracts/graph/nodes.py | 4 +++ core/dbt/contracts/graph/unparsed.py | 9 +++++ core/dbt/parser/schema_yaml_readers.py | 13 +++++++ schemas/dbt/catalog/v1.json | 2 +- schemas/dbt/manifest/v12.json | 26 ++++++++++++++ schemas/dbt/run-results/v6.json | 5 +-- schemas/dbt/sources/v3.json | 2 +- tests/functional/saved_queries/fixtures.py | 24 +++++++++++++ .../functional/saved_queries/test_configs.py | 34 +++++++++++++++++++ 11 files changed, 128 insertions(+), 5 deletions(-) create mode 100644 .changes/unreleased/Features-20241216-095435.yaml diff --git a/.changes/unreleased/Features-20241216-095435.yaml b/.changes/unreleased/Features-20241216-095435.yaml new file mode 100644 index 00000000000..706a84f8f39 --- /dev/null +++ b/.changes/unreleased/Features-20241216-095435.yaml @@ -0,0 +1,6 @@ +kind: Features +body: Support "tags" in Saved Queries +time: 2024-12-16T09:54:35.327675-08:00 +custom: + Author: theyostalservice + Issue: "11155" diff --git a/core/dbt/artifacts/resources/v1/saved_query.py b/core/dbt/artifacts/resources/v1/saved_query.py index e1d056d0422..8d51845755b 100644 --- a/core/dbt/artifacts/resources/v1/saved_query.py +++ b/core/dbt/artifacts/resources/v1/saved_query.py @@ -2,16 +2,18 @@ import time from dataclasses import dataclass, field -from typing import Any, Dict, List, Literal, Optional +from typing import Any, Dict, List, Literal, Optional, Union from dbt.artifacts.resources.base import GraphResource from dbt.artifacts.resources.types import NodeType from dbt.artifacts.resources.v1.components import DependsOn, RefArgs +from dbt.artifacts.resources.v1.config import list_str, metas from dbt.artifacts.resources.v1.semantic_layer_components import ( SourceFileMetadata, WhereFilterIntersection, ) from dbt_common.contracts.config.base import BaseConfig, CompareBehavior, MergeBehavior +from dbt_common.contracts.config.metadata import ShowBehavior from dbt_common.dataclass_schema import dbtClassMixin from dbt_semantic_interfaces.type_enums.export_destination_type import ( ExportDestinationType, @@ -95,6 +97,10 @@ class SavedQuery(SavedQueryMandatory): depends_on: DependsOn = field(default_factory=DependsOn) created_at: float = field(default_factory=lambda: time.time()) refs: List[RefArgs] = field(default_factory=list) + tags: Union[List[str], str] = field( + default_factory=list_str, + metadata=metas(ShowBehavior.Hide, MergeBehavior.Append, CompareBehavior.Exclude), + ) @property def metrics(self) -> List[str]: diff --git a/core/dbt/contracts/graph/nodes.py b/core/dbt/contracts/graph/nodes.py index 4bb70db5d9c..f753a6afff1 100644 --- a/core/dbt/contracts/graph/nodes.py +++ b/core/dbt/contracts/graph/nodes.py @@ -1647,6 +1647,9 @@ def same_exports(self, old: "SavedQuery") -> bool: return True + def same_tags(self, old: "SavedQuery") -> bool: + return self.tags == old.tags + def same_contents(self, old: Optional["SavedQuery"]) -> bool: # existing when it didn't before is a change! # metadata/tags changes are not "changes" @@ -1662,6 +1665,7 @@ def same_contents(self, old: Optional["SavedQuery"]) -> bool: and self.same_config(old) and self.same_group(old) and self.same_exports(old) + and self.same_tags(old) and True ) diff --git a/core/dbt/contracts/graph/unparsed.py b/core/dbt/contracts/graph/unparsed.py index f78ba15a50f..f8d5c581aca 100644 --- a/core/dbt/contracts/graph/unparsed.py +++ b/core/dbt/contracts/graph/unparsed.py @@ -27,8 +27,11 @@ UnitTestOutputFixture, UnitTestOverrides, ) +from dbt.artifacts.resources.v1.config import list_str, metas from dbt.exceptions import ParsingError from dbt.node_types import NodeType +from dbt_common.contracts.config.base import CompareBehavior, MergeBehavior +from dbt_common.contracts.config.metadata import ShowBehavior from dbt_common.contracts.config.properties import AdditionalPropertiesMixin from dbt_common.contracts.util import Mergeable from dbt_common.dataclass_schema import ( @@ -740,6 +743,12 @@ class UnparsedSavedQuery(dbtClassMixin): label: Optional[str] = None exports: List[UnparsedExport] = field(default_factory=list) config: Dict[str, Any] = field(default_factory=dict) + # Note: the order of the types is critical; it's the order that they will be checked against inputs. + # if reversed, a single-string tag like `tag: "good"` becomes ['g','o','o','d'] + tags: Union[str, List[str]] = field( + default_factory=list_str, + metadata=metas(ShowBehavior.Hide, MergeBehavior.Append, CompareBehavior.Exclude), + ) def normalize_date(d: Optional[datetime.date]) -> Optional[datetime.datetime]: diff --git a/core/dbt/parser/schema_yaml_readers.py b/core/dbt/parser/schema_yaml_readers.py index 6e312780141..aca239db153 100644 --- a/core/dbt/parser/schema_yaml_readers.py +++ b/core/dbt/parser/schema_yaml_readers.py @@ -799,6 +799,18 @@ def parse_saved_query(self, unparsed: UnparsedSavedQuery) -> None: rendered=False, ) + # The parser handles plain strings just fine, but we need to be able + # to join two lists, remove duplicates, and sort, so we have to wrap things here. + def wrap_tags(s: Union[List[str], str]) -> List[str]: + if s is None: + return [] + return [s] if isinstance(s, str) else s + + config_tags = wrap_tags(config.get("tags")) + unparsed_tags = wrap_tags(unparsed.tags) + tags = list(set([*unparsed_tags, *config_tags])) + tags.sort() + parsed = SavedQuery( description=unparsed.description, label=unparsed.label, @@ -814,6 +826,7 @@ def parse_saved_query(self, unparsed: UnparsedSavedQuery) -> None: config=config, unrendered_config=unrendered_config, group=config.group, + tags=tags, ) for export in parsed.exports: diff --git a/schemas/dbt/catalog/v1.json b/schemas/dbt/catalog/v1.json index f104c5b977f..ef54c19d714 100644 --- a/schemas/dbt/catalog/v1.json +++ b/schemas/dbt/catalog/v1.json @@ -12,7 +12,7 @@ }, "dbt_version": { "type": "string", - "default": "1.9.0b2" + "default": "1.10.0a1" }, "generated_at": { "type": "string" diff --git a/schemas/dbt/manifest/v12.json b/schemas/dbt/manifest/v12.json index d0466e4852c..21f2a9a77f5 100644 --- a/schemas/dbt/manifest/v12.json +++ b/schemas/dbt/manifest/v12.json @@ -19781,6 +19781,19 @@ "name" ] } + }, + "tags": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] } }, "additionalProperties": false, @@ -21399,6 +21412,19 @@ "name" ] } + }, + "tags": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] } }, "additionalProperties": false, diff --git a/schemas/dbt/run-results/v6.json b/schemas/dbt/run-results/v6.json index 1bf1cf75e83..32f0ec46748 100644 --- a/schemas/dbt/run-results/v6.json +++ b/schemas/dbt/run-results/v6.json @@ -12,7 +12,7 @@ }, "dbt_version": { "type": "string", - "default": "1.9.0b2" + "default": "1.10.0a1" }, "generated_at": { "type": "string" @@ -55,7 +55,8 @@ "success", "error", "skipped", - "partial success" + "partial success", + "no-op" ] }, { diff --git a/schemas/dbt/sources/v3.json b/schemas/dbt/sources/v3.json index df2784f1a81..c07cb574df6 100644 --- a/schemas/dbt/sources/v3.json +++ b/schemas/dbt/sources/v3.json @@ -12,7 +12,7 @@ }, "dbt_version": { "type": "string", - "default": "1.9.0b2" + "default": "1.10.0a1" }, "generated_at": { "type": "string" diff --git a/tests/functional/saved_queries/fixtures.py b/tests/functional/saved_queries/fixtures.py index 58ed73c81b0..ac45f8aeb76 100644 --- a/tests/functional/saved_queries/fixtures.py +++ b/tests/functional/saved_queries/fixtures.py @@ -164,3 +164,27 @@ export_as: table schema: my_export_schema_name """ + +saved_query_with_tags_defined_yml = """ +saved_queries: + - name: test_saved_query + description: "{{ doc('saved_query_description') }}" + label: Test Saved Query + tags: + - tag_a + - tag_c + query_params: + metrics: + - simple_metric + group_by: + - "Dimension('id__ds')" + where: + - "{{ TimeDimension('id__ds', 'DAY') }} <= now()" + - "{{ TimeDimension('id__ds', 'DAY') }} >= '2023-01-01'" + exports: + - name: my_export + config: + alias: my_export_alias + export_as: table + schema: my_export_schema_name +""" diff --git a/tests/functional/saved_queries/test_configs.py b/tests/functional/saved_queries/test_configs.py index df4be7aa5b6..943f4819fcd 100644 --- a/tests/functional/saved_queries/test_configs.py +++ b/tests/functional/saved_queries/test_configs.py @@ -14,6 +14,7 @@ saved_query_with_cache_configs_defined_yml, saved_query_with_export_configs_defined_at_saved_query_level_yml, saved_query_with_extra_config_attributes_yml, + saved_query_with_tags_defined_yml, saved_query_without_export_configs_defined_yml, ) from tests.functional.semantic_models.fixtures import ( @@ -322,3 +323,36 @@ def test_override_saved_query_config( result = runner.invoke(["parse"]) assert result.success assert saved_query.config.cache.enabled is True + + +# the tags defined in project yaml for the SavedQuery is additive to the query's +class TestSavedQueryTagsAdditiveWithConfig(BaseConfigProject): + @pytest.fixture(scope="class") + def project_config_update(self): + return { + "saved-queries": {"+tags": ["tag_b", "tag_c"]}, + } + + @pytest.fixture(scope="class") + def models(self): + return { + "saved_queries.yml": saved_query_with_tags_defined_yml, + "schema.yml": schema_yml, + "fct_revenue.sql": fct_revenue_sql, + "metricflow_time_spine.sql": metricflow_time_spine_sql, + "docs.md": saved_query_description, + } + + def test_saved_query_tags_are_additive_unique_and_sorted( + self, + project, + ): + runner = dbtTestRunner() + + # parse with default fixture project config + result = runner.invoke(["parse"]) + assert result.success + assert isinstance(result.result, Manifest) + assert len(result.result.saved_queries) == 1 + saved_query = result.result.saved_queries["saved_query.test.test_saved_query"] + assert saved_query.tags == ["tag_a", "tag_b", "tag_c"]