collate-dbt-artifacts-parser 0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. collate_dbt_artifacts_parser/__init__.py +21 -0
  2. collate_dbt_artifacts_parser/parser.py +390 -0
  3. collate_dbt_artifacts_parser/parsers/__init__.py +16 -0
  4. collate_dbt_artifacts_parser/parsers/base.py +26 -0
  5. collate_dbt_artifacts_parser/parsers/catalog/__init__.py +16 -0
  6. collate_dbt_artifacts_parser/parsers/catalog/catalog_cloud.py +85 -0
  7. collate_dbt_artifacts_parser/parsers/catalog/catalog_v1.py +85 -0
  8. collate_dbt_artifacts_parser/parsers/manifest/__init__.py +16 -0
  9. collate_dbt_artifacts_parser/parsers/manifest/manifest_cloud.py +4172 -0
  10. collate_dbt_artifacts_parser/parsers/manifest/manifest_v1.py +1548 -0
  11. collate_dbt_artifacts_parser/parsers/manifest/manifest_v10.py +1667 -0
  12. collate_dbt_artifacts_parser/parsers/manifest/manifest_v11.py +1449 -0
  13. collate_dbt_artifacts_parser/parsers/manifest/manifest_v12.py +4182 -0
  14. collate_dbt_artifacts_parser/parsers/manifest/manifest_v2.py +1553 -0
  15. collate_dbt_artifacts_parser/parsers/manifest/manifest_v3.py +1565 -0
  16. collate_dbt_artifacts_parser/parsers/manifest/manifest_v4.py +1748 -0
  17. collate_dbt_artifacts_parser/parsers/manifest/manifest_v5.py +1763 -0
  18. collate_dbt_artifacts_parser/parsers/manifest/manifest_v6.py +1799 -0
  19. collate_dbt_artifacts_parser/parsers/manifest/manifest_v7.py +1917 -0
  20. collate_dbt_artifacts_parser/parsers/manifest/manifest_v8.py +1258 -0
  21. collate_dbt_artifacts_parser/parsers/manifest/manifest_v9.py +1431 -0
  22. collate_dbt_artifacts_parser/parsers/run_results/__init__.py +16 -0
  23. collate_dbt_artifacts_parser/parsers/run_results/run_results_cloud.py +90 -0
  24. collate_dbt_artifacts_parser/parsers/run_results/run_results_v1.py +75 -0
  25. collate_dbt_artifacts_parser/parsers/run_results/run_results_v2.py +76 -0
  26. collate_dbt_artifacts_parser/parsers/run_results/run_results_v3.py +147 -0
  27. collate_dbt_artifacts_parser/parsers/run_results/run_results_v4.py +147 -0
  28. collate_dbt_artifacts_parser/parsers/run_results/run_results_v5.py +79 -0
  29. collate_dbt_artifacts_parser/parsers/run_results/run_results_v6.py +89 -0
  30. collate_dbt_artifacts_parser/parsers/sources/__init__.py +16 -0
  31. collate_dbt_artifacts_parser/parsers/sources/sources_cloud.py +107 -0
  32. collate_dbt_artifacts_parser/parsers/sources/sources_v1.py +88 -0
  33. collate_dbt_artifacts_parser/parsers/sources/sources_v2.py +100 -0
  34. collate_dbt_artifacts_parser/parsers/sources/sources_v3.py +107 -0
  35. collate_dbt_artifacts_parser/parsers/utils.py +67 -0
  36. collate_dbt_artifacts_parser/parsers/version_map.py +124 -0
  37. collate_dbt_artifacts_parser/resources/catalog/catalog_cloud.json +425 -0
  38. collate_dbt_artifacts_parser/resources/catalog/catalog_v1.json +425 -0
  39. collate_dbt_artifacts_parser/resources/manifest/manifest_cloud.json +22719 -0
  40. collate_dbt_artifacts_parser/resources/manifest/manifest_v1.json +5074 -0
  41. collate_dbt_artifacts_parser/resources/manifest/manifest_v10.json +5638 -0
  42. collate_dbt_artifacts_parser/resources/manifest/manifest_v11.json +6256 -0
  43. collate_dbt_artifacts_parser/resources/manifest/manifest_v12.json +22727 -0
  44. collate_dbt_artifacts_parser/resources/manifest/manifest_v2.json +5128 -0
  45. collate_dbt_artifacts_parser/resources/manifest/manifest_v3.json +5225 -0
  46. collate_dbt_artifacts_parser/resources/manifest/manifest_v4.json +5939 -0
  47. collate_dbt_artifacts_parser/resources/manifest/manifest_v5.json +5984 -0
  48. collate_dbt_artifacts_parser/resources/manifest/manifest_v6.json +6209 -0
  49. collate_dbt_artifacts_parser/resources/manifest/manifest_v7.json +6575 -0
  50. collate_dbt_artifacts_parser/resources/manifest/manifest_v8.json +4434 -0
  51. collate_dbt_artifacts_parser/resources/manifest/manifest_v9.json +4965 -0
  52. collate_dbt_artifacts_parser/resources/run-results/run-results_cloud.json +265 -0
  53. collate_dbt_artifacts_parser/resources/run-results/run-results_v1.json +183 -0
  54. collate_dbt_artifacts_parser/resources/run-results/run-results_v2.json +190 -0
  55. collate_dbt_artifacts_parser/resources/run-results/run-results_v3.json +381 -0
  56. collate_dbt_artifacts_parser/resources/run-results/run-results_v4.json +400 -0
  57. collate_dbt_artifacts_parser/resources/run-results/run-results_v5.json +229 -0
  58. collate_dbt_artifacts_parser/resources/run-results/run-results_v6.json +264 -0
  59. collate_dbt_artifacts_parser/resources/sources/sources_cloud.json +280 -0
  60. collate_dbt_artifacts_parser/resources/sources/sources_v1.json +212 -0
  61. collate_dbt_artifacts_parser/resources/sources/sources_v2.json +261 -0
  62. collate_dbt_artifacts_parser/resources/sources/sources_v3.json +280 -0
  63. collate_dbt_artifacts_parser/utils.py +27 -0
  64. collate_dbt_artifacts_parser-0.1.dist-info/METADATA +531 -0
  65. collate_dbt_artifacts_parser-0.1.dist-info/RECORD +67 -0
  66. collate_dbt_artifacts_parser-0.1.dist-info/WHEEL +4 -0
  67. collate_dbt_artifacts_parser-0.1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,1548 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: manifest_v1.json
3
+
4
+ from __future__ import annotations
5
+
6
+ from datetime import datetime
7
+ from enum import Enum
8
+ from typing import Any, Dict, List, Optional, Union
9
+
10
+ from pydantic import ConfigDict, Field, constr
11
+
12
+ from collate_dbt_artifacts_parser.parsers.base import BaseParserModel
13
+
14
+
15
+ class ManifestMetadata(BaseParserModel):
16
+ model_config = ConfigDict(
17
+ extra="forbid",
18
+ )
19
+ dbt_schema_version: Optional[str] = (
20
+ "https://schemas.getdbt.com/dbt/manifest/v1.json"
21
+ )
22
+ dbt_version: Optional[str] = "0.19.0"
23
+ generated_at: Optional[datetime] = "2021-02-10T04:42:33.683996Z"
24
+ invocation_id: Optional[str] = None
25
+ env: Optional[Dict[str, str]] = {}
26
+ project_id: Optional[str] = Field(
27
+ None, description="A unique identifier for the project"
28
+ )
29
+ user_id: Optional[
30
+ constr(pattern=r"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}")
31
+ ] = Field(None, description="A unique identifier for the user")
32
+ send_anonymous_usage_stats: Optional[bool] = Field(
33
+ None, description="Whether dbt is configured to send anonymous usage statistics"
34
+ )
35
+ adapter_type: Optional[str] = Field(
36
+ None, description="The type name of the adapter"
37
+ )
38
+
39
+
40
+ class ResourceType(Enum):
41
+ analysis = "analysis"
42
+
43
+
44
+ class FileHash(BaseParserModel):
45
+ model_config = ConfigDict(
46
+ extra="forbid",
47
+ )
48
+ name: str
49
+ checksum: str
50
+
51
+
52
+ class Hook(BaseParserModel):
53
+ model_config = ConfigDict(
54
+ extra="forbid",
55
+ )
56
+ sql: str
57
+ transaction: Optional[bool] = True
58
+ index: Optional[int] = None
59
+
60
+
61
+ class DependsOn(BaseParserModel):
62
+ model_config = ConfigDict(
63
+ extra="forbid",
64
+ )
65
+ macros: Optional[List[str]] = []
66
+ nodes: Optional[List[str]] = []
67
+
68
+
69
+ class ColumnInfo(BaseParserModel):
70
+ model_config = ConfigDict(
71
+ extra="allow",
72
+ )
73
+ name: str
74
+ description: Optional[str] = ""
75
+ meta: Optional[Dict[str, Any]] = {}
76
+ data_type: Optional[str] = None
77
+ quote: Optional[bool] = None
78
+ tags: Optional[List[str]] = []
79
+
80
+
81
+ class Docs(BaseParserModel):
82
+ model_config = ConfigDict(
83
+ extra="forbid",
84
+ )
85
+ show: Optional[bool] = True
86
+
87
+
88
+ class InjectedCTE(BaseParserModel):
89
+ model_config = ConfigDict(
90
+ extra="forbid",
91
+ )
92
+ id: str
93
+ sql: str
94
+
95
+
96
+ class ResourceType1(Enum):
97
+ test = "test"
98
+
99
+
100
+ class TestConfig(BaseParserModel):
101
+ model_config = ConfigDict(
102
+ extra="allow",
103
+ )
104
+ enabled: Optional[bool] = True
105
+ materialized: Optional[str] = "test"
106
+ persist_docs: Optional[Dict[str, Any]] = {}
107
+ post_hook: Optional[List[Hook]] = Field([], alias="post-hook")
108
+ pre_hook: Optional[List[Hook]] = Field([], alias="pre-hook")
109
+ vars: Optional[Dict[str, Any]] = {}
110
+ quoting: Optional[Dict[str, Any]] = {}
111
+ column_types: Optional[Dict[str, Any]] = {}
112
+ alias: Optional[str] = None
113
+ schema_: Optional[str] = Field(None, alias="schema")
114
+ database: Optional[str] = None
115
+ tags: Optional[Union[List[str], str]] = []
116
+ full_refresh: Optional[bool] = None
117
+ severity: Optional[constr(pattern=r"^([Ww][Aa][Rr][Nn]|[Ee][Rr][Rr][Oo][Rr])$")] = (
118
+ "ERROR"
119
+ )
120
+
121
+
122
+ class ResourceType2(Enum):
123
+ model = "model"
124
+
125
+
126
+ class ResourceType3(Enum):
127
+ operation = "operation"
128
+
129
+
130
+ class ResourceType4(Enum):
131
+ rpc = "rpc"
132
+
133
+
134
+ class ResourceType5(Enum):
135
+ test = "test"
136
+
137
+
138
+ class TestMetadata(BaseParserModel):
139
+ model_config = ConfigDict(
140
+ extra="forbid",
141
+ )
142
+ namespace: Optional[str] = None
143
+ name: str
144
+ kwargs: Dict[str, Any]
145
+
146
+
147
+ class ResourceType6(Enum):
148
+ seed = "seed"
149
+
150
+
151
+ class SeedConfig(BaseParserModel):
152
+ model_config = ConfigDict(
153
+ extra="allow",
154
+ )
155
+ enabled: Optional[bool] = True
156
+ materialized: Optional[str] = "seed"
157
+ persist_docs: Optional[Dict[str, Any]] = {}
158
+ post_hook: Optional[List[Hook]] = Field([], alias="post-hook")
159
+ pre_hook: Optional[List[Hook]] = Field([], alias="pre-hook")
160
+ vars: Optional[Dict[str, Any]] = {}
161
+ quoting: Optional[Dict[str, Any]] = {}
162
+ column_types: Optional[Dict[str, Any]] = {}
163
+ alias: Optional[str] = None
164
+ schema_: Optional[str] = Field(None, alias="schema")
165
+ database: Optional[str] = None
166
+ tags: Optional[Union[List[str], str]] = []
167
+ full_refresh: Optional[bool] = None
168
+ quote_columns: Optional[bool] = None
169
+
170
+
171
+ class ResourceType7(Enum):
172
+ snapshot = "snapshot"
173
+
174
+
175
+ class ResourceType8(Enum):
176
+ analysis = "analysis"
177
+
178
+
179
+ class ResourceType9(Enum):
180
+ test = "test"
181
+
182
+
183
+ class ParsedDataTestNode(BaseParserModel):
184
+ model_config = ConfigDict(
185
+ extra="forbid",
186
+ )
187
+ raw_sql: str
188
+ database: Optional[str] = None
189
+ schema_: str = Field(..., alias="schema")
190
+ fqn: List[str]
191
+ unique_id: str
192
+ package_name: str
193
+ root_path: str
194
+ path: str
195
+ original_file_path: str
196
+ name: str
197
+ resource_type: ResourceType9
198
+ alias: str
199
+ checksum: FileHash
200
+ config: Optional[TestConfig] = Field(
201
+ default_factory=lambda: TestConfig.model_validate(
202
+ {
203
+ "enabled": True,
204
+ "materialized": "test",
205
+ "persist_docs": {},
206
+ "post-hook": [],
207
+ "pre-hook": [],
208
+ "vars": {},
209
+ "quoting": {},
210
+ "column_types": {},
211
+ "alias": None,
212
+ "schema": None,
213
+ "database": None,
214
+ "tags": [],
215
+ "full_refresh": None,
216
+ "severity": "ERROR",
217
+ }
218
+ )
219
+ )
220
+ tags: Optional[List[str]] = []
221
+ refs: Optional[List[List[str]]] = []
222
+ sources: Optional[List[List]] = []
223
+ depends_on: Optional[DependsOn] = Field(
224
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
225
+ )
226
+ description: Optional[str] = ""
227
+ columns: Optional[Dict[str, ColumnInfo]] = {}
228
+ meta: Optional[Dict[str, Any]] = {}
229
+ docs: Optional[Docs] = Field(
230
+ default_factory=lambda: Docs.model_validate({"show": True})
231
+ )
232
+ patch_path: Optional[str] = None
233
+ build_path: Optional[str] = None
234
+ deferred: Optional[bool] = False
235
+ unrendered_config: Optional[Dict[str, Any]] = {}
236
+
237
+
238
+ class ResourceType10(Enum):
239
+ operation = "operation"
240
+
241
+
242
+ class ResourceType11(Enum):
243
+ model = "model"
244
+
245
+
246
+ class ResourceType12(Enum):
247
+ rpc = "rpc"
248
+
249
+
250
+ class ResourceType13(Enum):
251
+ test = "test"
252
+
253
+
254
+ class ParsedSchemaTestNode(BaseParserModel):
255
+ model_config = ConfigDict(
256
+ extra="forbid",
257
+ )
258
+ raw_sql: str
259
+ test_metadata: TestMetadata
260
+ database: Optional[str] = None
261
+ schema_: str = Field(..., alias="schema")
262
+ fqn: List[str]
263
+ unique_id: str
264
+ package_name: str
265
+ root_path: str
266
+ path: str
267
+ original_file_path: str
268
+ name: str
269
+ resource_type: ResourceType13
270
+ alias: str
271
+ checksum: FileHash
272
+ config: Optional[TestConfig] = Field(
273
+ default_factory=lambda: TestConfig.model_validate(
274
+ {
275
+ "enabled": True,
276
+ "materialized": "test",
277
+ "persist_docs": {},
278
+ "post-hook": [],
279
+ "pre-hook": [],
280
+ "vars": {},
281
+ "quoting": {},
282
+ "column_types": {},
283
+ "alias": None,
284
+ "schema": None,
285
+ "database": None,
286
+ "tags": [],
287
+ "full_refresh": None,
288
+ "severity": "ERROR",
289
+ }
290
+ )
291
+ )
292
+ tags: Optional[List[str]] = []
293
+ refs: Optional[List[List[str]]] = []
294
+ sources: Optional[List[List]] = []
295
+ depends_on: Optional[DependsOn] = Field(
296
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
297
+ )
298
+ description: Optional[str] = ""
299
+ columns: Optional[Dict[str, ColumnInfo]] = {}
300
+ meta: Optional[Dict[str, Any]] = {}
301
+ docs: Optional[Docs] = Field(
302
+ default_factory=lambda: Docs.model_validate({"show": True})
303
+ )
304
+ patch_path: Optional[str] = None
305
+ build_path: Optional[str] = None
306
+ deferred: Optional[bool] = False
307
+ unrendered_config: Optional[Dict[str, Any]] = {}
308
+ column_name: Optional[str] = None
309
+
310
+
311
+ class ResourceType14(Enum):
312
+ seed = "seed"
313
+
314
+
315
+ class ParsedSeedNode(BaseParserModel):
316
+ model_config = ConfigDict(
317
+ extra="forbid",
318
+ )
319
+ raw_sql: str
320
+ database: Optional[str] = None
321
+ schema_: str = Field(..., alias="schema")
322
+ fqn: List[str]
323
+ unique_id: str
324
+ package_name: str
325
+ root_path: str
326
+ path: str
327
+ original_file_path: str
328
+ name: str
329
+ resource_type: ResourceType14
330
+ alias: str
331
+ checksum: FileHash
332
+ config: Optional[SeedConfig] = Field(
333
+ default_factory=lambda: SeedConfig.model_validate(
334
+ {
335
+ "enabled": True,
336
+ "materialized": "seed",
337
+ "persist_docs": {},
338
+ "post-hook": [],
339
+ "pre-hook": [],
340
+ "vars": {},
341
+ "quoting": {},
342
+ "column_types": {},
343
+ "alias": None,
344
+ "schema": None,
345
+ "database": None,
346
+ "tags": [],
347
+ "full_refresh": None,
348
+ "quote_columns": None,
349
+ }
350
+ )
351
+ )
352
+ tags: Optional[List[str]] = []
353
+ refs: Optional[List[List[str]]] = []
354
+ sources: Optional[List[List]] = []
355
+ depends_on: Optional[DependsOn] = Field(
356
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
357
+ )
358
+ description: Optional[str] = ""
359
+ columns: Optional[Dict[str, ColumnInfo]] = {}
360
+ meta: Optional[Dict[str, Any]] = {}
361
+ docs: Optional[Docs] = Field(
362
+ default_factory=lambda: Docs.model_validate({"show": True})
363
+ )
364
+ patch_path: Optional[str] = None
365
+ build_path: Optional[str] = None
366
+ deferred: Optional[bool] = False
367
+ unrendered_config: Optional[Dict[str, Any]] = {}
368
+
369
+
370
+ class ResourceType15(Enum):
371
+ snapshot = "snapshot"
372
+
373
+
374
+ class Strategy(Enum):
375
+ timestamp = "timestamp"
376
+
377
+
378
+ class TimestampSnapshotConfig(BaseParserModel):
379
+ model_config = ConfigDict(
380
+ extra="allow",
381
+ )
382
+ enabled: Optional[bool] = True
383
+ materialized: Optional[str] = "snapshot"
384
+ persist_docs: Optional[Dict[str, Any]] = {}
385
+ post_hook: Optional[List[Hook]] = Field([], alias="post-hook")
386
+ pre_hook: Optional[List[Hook]] = Field([], alias="pre-hook")
387
+ vars: Optional[Dict[str, Any]] = {}
388
+ quoting: Optional[Dict[str, Any]] = {}
389
+ column_types: Optional[Dict[str, Any]] = {}
390
+ alias: Optional[str] = None
391
+ schema_: Optional[str] = Field(None, alias="schema")
392
+ database: Optional[str] = None
393
+ tags: Optional[Union[List[str], str]] = []
394
+ full_refresh: Optional[bool] = None
395
+ unique_key: str
396
+ target_schema: str
397
+ target_database: Optional[str] = None
398
+ strategy: Strategy
399
+ updated_at: str
400
+
401
+
402
+ class Strategy1(Enum):
403
+ check = "check"
404
+
405
+
406
+ class CheckCols(Enum):
407
+ all = "all"
408
+
409
+
410
+ class CheckSnapshotConfig(BaseParserModel):
411
+ model_config = ConfigDict(
412
+ extra="allow",
413
+ )
414
+ enabled: Optional[bool] = True
415
+ materialized: Optional[str] = "snapshot"
416
+ persist_docs: Optional[Dict[str, Any]] = {}
417
+ post_hook: Optional[List[Hook]] = Field([], alias="post-hook")
418
+ pre_hook: Optional[List[Hook]] = Field([], alias="pre-hook")
419
+ vars: Optional[Dict[str, Any]] = {}
420
+ quoting: Optional[Dict[str, Any]] = {}
421
+ column_types: Optional[Dict[str, Any]] = {}
422
+ alias: Optional[str] = None
423
+ schema_: Optional[str] = Field(None, alias="schema")
424
+ database: Optional[str] = None
425
+ tags: Optional[Union[List[str], str]] = []
426
+ full_refresh: Optional[bool] = None
427
+ unique_key: str
428
+ target_schema: str
429
+ target_database: Optional[str] = None
430
+ strategy: Strategy1
431
+ check_cols: Union[CheckCols, List[str]]
432
+
433
+
434
+ class Strategy2(BaseParserModel):
435
+ pass
436
+
437
+
438
+ class GenericSnapshotConfig(BaseParserModel):
439
+ model_config = ConfigDict(
440
+ extra="allow",
441
+ )
442
+ enabled: Optional[bool] = True
443
+ materialized: Optional[str] = "snapshot"
444
+ persist_docs: Optional[Dict[str, Any]] = {}
445
+ post_hook: Optional[List[Hook]] = Field([], alias="post-hook")
446
+ pre_hook: Optional[List[Hook]] = Field([], alias="pre-hook")
447
+ vars: Optional[Dict[str, Any]] = {}
448
+ quoting: Optional[Dict[str, Any]] = {}
449
+ column_types: Optional[Dict[str, Any]] = {}
450
+ alias: Optional[str] = None
451
+ schema_: Optional[str] = Field(None, alias="schema")
452
+ database: Optional[str] = None
453
+ tags: Optional[Union[List[str], str]] = []
454
+ full_refresh: Optional[bool] = None
455
+ unique_key: str
456
+ target_schema: str
457
+ target_database: Optional[str] = None
458
+ strategy: Strategy2
459
+
460
+
461
+ class ResourceType16(Enum):
462
+ source = "source"
463
+
464
+
465
+ class Quoting(BaseParserModel):
466
+ model_config = ConfigDict(
467
+ extra="forbid",
468
+ )
469
+ database: Optional[bool] = None
470
+ schema_: Optional[bool] = Field(None, alias="schema")
471
+ identifier: Optional[bool] = None
472
+ column: Optional[bool] = None
473
+
474
+
475
+ class FreshnessMetadata(BaseParserModel):
476
+ model_config = ConfigDict(
477
+ extra="forbid",
478
+ )
479
+ dbt_schema_version: Optional[str] = "https://schemas.getdbt.com/dbt/sources/v1.json"
480
+ dbt_version: Optional[str] = "0.19.0"
481
+ generated_at: Optional[datetime] = "2021-02-10T04:42:33.675309Z"
482
+ invocation_id: Optional[str] = None
483
+ env: Optional[Dict[str, str]] = {}
484
+
485
+
486
+ class Status(Enum):
487
+ runtime_error = "runtime error"
488
+
489
+
490
+ class SourceFreshnessRuntimeError(BaseParserModel):
491
+ model_config = ConfigDict(
492
+ extra="forbid",
493
+ )
494
+ unique_id: str
495
+ error: Optional[Union[str, int]] = None
496
+ status: Status
497
+
498
+
499
+ class Status1(Enum):
500
+ pass_ = "pass"
501
+ warn = "warn"
502
+ error = "error"
503
+ runtime_error = "runtime error"
504
+
505
+
506
+ class Period(Enum):
507
+ minute = "minute"
508
+ hour = "hour"
509
+ day = "day"
510
+
511
+
512
+ class Time(BaseParserModel):
513
+ model_config = ConfigDict(
514
+ extra="forbid",
515
+ )
516
+ count: int
517
+ period: Period
518
+
519
+
520
+ class ExternalPartition(BaseParserModel):
521
+ model_config = ConfigDict(
522
+ extra="allow",
523
+ )
524
+ name: Optional[str] = ""
525
+ description: Optional[str] = ""
526
+ data_type: Optional[str] = ""
527
+ meta: Optional[Dict[str, Any]] = {}
528
+
529
+
530
+ class SourceConfig(BaseParserModel):
531
+ model_config = ConfigDict(
532
+ extra="allow",
533
+ )
534
+ enabled: Optional[bool] = True
535
+
536
+
537
+ class ResourceType17(Enum):
538
+ macro = "macro"
539
+
540
+
541
+ class MacroDependsOn(BaseParserModel):
542
+ model_config = ConfigDict(
543
+ extra="forbid",
544
+ )
545
+ macros: Optional[List[str]] = []
546
+
547
+
548
+ class MacroArgument(BaseParserModel):
549
+ model_config = ConfigDict(
550
+ extra="forbid",
551
+ )
552
+ name: str
553
+ type: Optional[str] = None
554
+ description: Optional[str] = ""
555
+
556
+
557
+ class ParsedDocumentation(BaseParserModel):
558
+ model_config = ConfigDict(
559
+ extra="forbid",
560
+ )
561
+ unique_id: str
562
+ package_name: str
563
+ root_path: str
564
+ path: str
565
+ original_file_path: str
566
+ name: str
567
+ block_contents: str
568
+
569
+
570
+ class Type(Enum):
571
+ dashboard = "dashboard"
572
+ notebook = "notebook"
573
+ analysis = "analysis"
574
+ ml = "ml"
575
+ application = "application"
576
+
577
+
578
+ class ResourceType18(Enum):
579
+ model = "model"
580
+ analysis = "analysis"
581
+ test = "test"
582
+ snapshot = "snapshot"
583
+ operation = "operation"
584
+ seed = "seed"
585
+ rpc = "rpc"
586
+ docs = "docs"
587
+ source = "source"
588
+ macro = "macro"
589
+ exposure = "exposure"
590
+
591
+
592
+ class Maturity(Enum):
593
+ low = "low"
594
+ medium = "medium"
595
+ high = "high"
596
+
597
+
598
+ class ExposureOwner(BaseParserModel):
599
+ model_config = ConfigDict(
600
+ extra="forbid",
601
+ )
602
+ email: str
603
+ name: Optional[str] = None
604
+
605
+
606
+ class NodeConfig(BaseParserModel):
607
+ model_config = ConfigDict(
608
+ extra="allow",
609
+ )
610
+ enabled: Optional[bool] = True
611
+ materialized: Optional[str] = "view"
612
+ persist_docs: Optional[Dict[str, Any]] = {}
613
+ post_hook: Optional[List[Hook]] = Field([], alias="post-hook")
614
+ pre_hook: Optional[List[Hook]] = Field([], alias="pre-hook")
615
+ vars: Optional[Dict[str, Any]] = {}
616
+ quoting: Optional[Dict[str, Any]] = {}
617
+ column_types: Optional[Dict[str, Any]] = {}
618
+ alias: Optional[str] = None
619
+ schema_: Optional[str] = Field(None, alias="schema")
620
+ database: Optional[str] = None
621
+ tags: Optional[Union[List[str], str]] = []
622
+ full_refresh: Optional[bool] = None
623
+
624
+
625
+ class CompiledDataTestNode(BaseParserModel):
626
+ model_config = ConfigDict(
627
+ extra="forbid",
628
+ )
629
+ raw_sql: str
630
+ compiled: bool
631
+ database: Optional[str] = None
632
+ schema_: str = Field(..., alias="schema")
633
+ fqn: List[str]
634
+ unique_id: str
635
+ package_name: str
636
+ root_path: str
637
+ path: str
638
+ original_file_path: str
639
+ name: str
640
+ resource_type: ResourceType1
641
+ alias: str
642
+ checksum: FileHash
643
+ config: Optional[TestConfig] = Field(
644
+ default_factory=lambda: TestConfig.model_validate(
645
+ {
646
+ "enabled": True,
647
+ "materialized": "test",
648
+ "persist_docs": {},
649
+ "post-hook": [],
650
+ "pre-hook": [],
651
+ "vars": {},
652
+ "quoting": {},
653
+ "column_types": {},
654
+ "alias": None,
655
+ "schema": None,
656
+ "database": None,
657
+ "tags": [],
658
+ "full_refresh": None,
659
+ "severity": "ERROR",
660
+ }
661
+ )
662
+ )
663
+ tags: Optional[List[str]] = []
664
+ refs: Optional[List[List[str]]] = []
665
+ sources: Optional[List[List]] = []
666
+ depends_on: Optional[DependsOn] = Field(
667
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
668
+ )
669
+ description: Optional[str] = ""
670
+ columns: Optional[Dict[str, ColumnInfo]] = {}
671
+ meta: Optional[Dict[str, Any]] = {}
672
+ docs: Optional[Docs] = Field(
673
+ default_factory=lambda: Docs.model_validate({"show": True})
674
+ )
675
+ patch_path: Optional[str] = None
676
+ build_path: Optional[str] = None
677
+ deferred: Optional[bool] = False
678
+ unrendered_config: Optional[Dict[str, Any]] = {}
679
+ compiled_sql: Optional[str] = None
680
+ extra_ctes_injected: Optional[bool] = False
681
+ extra_ctes: Optional[List[InjectedCTE]] = []
682
+ relation_name: Optional[str] = None
683
+
684
+
685
+ class CompiledModelNode(BaseParserModel):
686
+ model_config = ConfigDict(
687
+ extra="forbid",
688
+ )
689
+ raw_sql: str
690
+ compiled: bool
691
+ database: Optional[str] = None
692
+ schema_: str = Field(..., alias="schema")
693
+ fqn: List[str]
694
+ unique_id: str
695
+ package_name: str
696
+ root_path: str
697
+ path: str
698
+ original_file_path: str
699
+ name: str
700
+ resource_type: ResourceType2
701
+ alias: str
702
+ checksum: FileHash
703
+ config: Optional[NodeConfig] = Field(
704
+ default_factory=lambda: NodeConfig.model_validate(
705
+ {
706
+ "enabled": True,
707
+ "materialized": "view",
708
+ "persist_docs": {},
709
+ "post-hook": [],
710
+ "pre-hook": [],
711
+ "vars": {},
712
+ "quoting": {},
713
+ "column_types": {},
714
+ "alias": None,
715
+ "schema": None,
716
+ "database": None,
717
+ "tags": [],
718
+ "full_refresh": None,
719
+ }
720
+ )
721
+ )
722
+ tags: Optional[List[str]] = []
723
+ refs: Optional[List[List[str]]] = []
724
+ sources: Optional[List[List]] = []
725
+ depends_on: Optional[DependsOn] = Field(
726
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
727
+ )
728
+ description: Optional[str] = ""
729
+ columns: Optional[Dict[str, ColumnInfo]] = {}
730
+ meta: Optional[Dict[str, Any]] = {}
731
+ docs: Optional[Docs] = Field(
732
+ default_factory=lambda: Docs.model_validate({"show": True})
733
+ )
734
+ patch_path: Optional[str] = None
735
+ build_path: Optional[str] = None
736
+ deferred: Optional[bool] = False
737
+ unrendered_config: Optional[Dict[str, Any]] = {}
738
+ compiled_sql: Optional[str] = None
739
+ extra_ctes_injected: Optional[bool] = False
740
+ extra_ctes: Optional[List[InjectedCTE]] = []
741
+ relation_name: Optional[str] = None
742
+
743
+
744
+ class CompiledHookNode(BaseParserModel):
745
+ model_config = ConfigDict(
746
+ extra="forbid",
747
+ )
748
+ raw_sql: str
749
+ compiled: bool
750
+ database: Optional[str] = None
751
+ schema_: str = Field(..., alias="schema")
752
+ fqn: List[str]
753
+ unique_id: str
754
+ package_name: str
755
+ root_path: str
756
+ path: str
757
+ original_file_path: str
758
+ name: str
759
+ resource_type: ResourceType3
760
+ alias: str
761
+ checksum: FileHash
762
+ config: Optional[NodeConfig] = Field(
763
+ default_factory=lambda: NodeConfig.model_validate(
764
+ {
765
+ "enabled": True,
766
+ "materialized": "view",
767
+ "persist_docs": {},
768
+ "post-hook": [],
769
+ "pre-hook": [],
770
+ "vars": {},
771
+ "quoting": {},
772
+ "column_types": {},
773
+ "alias": None,
774
+ "schema": None,
775
+ "database": None,
776
+ "tags": [],
777
+ "full_refresh": None,
778
+ }
779
+ )
780
+ )
781
+ tags: Optional[List[str]] = []
782
+ refs: Optional[List[List[str]]] = []
783
+ sources: Optional[List[List]] = []
784
+ depends_on: Optional[DependsOn] = Field(
785
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
786
+ )
787
+ description: Optional[str] = ""
788
+ columns: Optional[Dict[str, ColumnInfo]] = {}
789
+ meta: Optional[Dict[str, Any]] = {}
790
+ docs: Optional[Docs] = Field(
791
+ default_factory=lambda: Docs.model_validate({"show": True})
792
+ )
793
+ patch_path: Optional[str] = None
794
+ build_path: Optional[str] = None
795
+ deferred: Optional[bool] = False
796
+ unrendered_config: Optional[Dict[str, Any]] = {}
797
+ compiled_sql: Optional[str] = None
798
+ extra_ctes_injected: Optional[bool] = False
799
+ extra_ctes: Optional[List[InjectedCTE]] = []
800
+ relation_name: Optional[str] = None
801
+ index: Optional[int] = None
802
+
803
+
804
+ class CompiledRPCNode(BaseParserModel):
805
+ model_config = ConfigDict(
806
+ extra="forbid",
807
+ )
808
+ raw_sql: str
809
+ compiled: bool
810
+ database: Optional[str] = None
811
+ schema_: str = Field(..., alias="schema")
812
+ fqn: List[str]
813
+ unique_id: str
814
+ package_name: str
815
+ root_path: str
816
+ path: str
817
+ original_file_path: str
818
+ name: str
819
+ resource_type: ResourceType4
820
+ alias: str
821
+ checksum: FileHash
822
+ config: Optional[NodeConfig] = Field(
823
+ default_factory=lambda: NodeConfig.model_validate(
824
+ {
825
+ "enabled": True,
826
+ "materialized": "view",
827
+ "persist_docs": {},
828
+ "post-hook": [],
829
+ "pre-hook": [],
830
+ "vars": {},
831
+ "quoting": {},
832
+ "column_types": {},
833
+ "alias": None,
834
+ "schema": None,
835
+ "database": None,
836
+ "tags": [],
837
+ "full_refresh": None,
838
+ }
839
+ )
840
+ )
841
+ tags: Optional[List[str]] = []
842
+ refs: Optional[List[List[str]]] = []
843
+ sources: Optional[List[List]] = []
844
+ depends_on: Optional[DependsOn] = Field(
845
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
846
+ )
847
+ description: Optional[str] = ""
848
+ columns: Optional[Dict[str, ColumnInfo]] = {}
849
+ meta: Optional[Dict[str, Any]] = {}
850
+ docs: Optional[Docs] = Field(
851
+ default_factory=lambda: Docs.model_validate({"show": True})
852
+ )
853
+ patch_path: Optional[str] = None
854
+ build_path: Optional[str] = None
855
+ deferred: Optional[bool] = False
856
+ unrendered_config: Optional[Dict[str, Any]] = {}
857
+ compiled_sql: Optional[str] = None
858
+ extra_ctes_injected: Optional[bool] = False
859
+ extra_ctes: Optional[List[InjectedCTE]] = []
860
+ relation_name: Optional[str] = None
861
+
862
+
863
+ class CompiledSchemaTestNode(BaseParserModel):
864
+ model_config = ConfigDict(
865
+ extra="forbid",
866
+ )
867
+ raw_sql: str
868
+ test_metadata: TestMetadata
869
+ compiled: bool
870
+ database: Optional[str] = None
871
+ schema_: str = Field(..., alias="schema")
872
+ fqn: List[str]
873
+ unique_id: str
874
+ package_name: str
875
+ root_path: str
876
+ path: str
877
+ original_file_path: str
878
+ name: str
879
+ resource_type: ResourceType5
880
+ alias: str
881
+ checksum: FileHash
882
+ config: Optional[TestConfig] = Field(
883
+ default_factory=lambda: TestConfig.model_validate(
884
+ {
885
+ "enabled": True,
886
+ "materialized": "test",
887
+ "persist_docs": {},
888
+ "post-hook": [],
889
+ "pre-hook": [],
890
+ "vars": {},
891
+ "quoting": {},
892
+ "column_types": {},
893
+ "alias": None,
894
+ "schema": None,
895
+ "database": None,
896
+ "tags": [],
897
+ "full_refresh": None,
898
+ "severity": "ERROR",
899
+ }
900
+ )
901
+ )
902
+ tags: Optional[List[str]] = []
903
+ refs: Optional[List[List[str]]] = []
904
+ sources: Optional[List[List]] = []
905
+ depends_on: Optional[DependsOn] = Field(
906
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
907
+ )
908
+ description: Optional[str] = ""
909
+ columns: Optional[Dict[str, ColumnInfo]] = {}
910
+ meta: Optional[Dict[str, Any]] = {}
911
+ docs: Optional[Docs] = Field(
912
+ default_factory=lambda: Docs.model_validate({"show": True})
913
+ )
914
+ patch_path: Optional[str] = None
915
+ build_path: Optional[str] = None
916
+ deferred: Optional[bool] = False
917
+ unrendered_config: Optional[Dict[str, Any]] = {}
918
+ compiled_sql: Optional[str] = None
919
+ extra_ctes_injected: Optional[bool] = False
920
+ extra_ctes: Optional[List[InjectedCTE]] = []
921
+ relation_name: Optional[str] = None
922
+ column_name: Optional[str] = None
923
+
924
+
925
+ class CompiledSeedNode(BaseParserModel):
926
+ model_config = ConfigDict(
927
+ extra="forbid",
928
+ )
929
+ raw_sql: str
930
+ compiled: bool
931
+ database: Optional[str] = None
932
+ schema_: str = Field(..., alias="schema")
933
+ fqn: List[str]
934
+ unique_id: str
935
+ package_name: str
936
+ root_path: str
937
+ path: str
938
+ original_file_path: str
939
+ name: str
940
+ resource_type: ResourceType6
941
+ alias: str
942
+ checksum: FileHash
943
+ config: Optional[SeedConfig] = Field(
944
+ default_factory=lambda: SeedConfig.model_validate(
945
+ {
946
+ "enabled": True,
947
+ "materialized": "seed",
948
+ "persist_docs": {},
949
+ "post-hook": [],
950
+ "pre-hook": [],
951
+ "vars": {},
952
+ "quoting": {},
953
+ "column_types": {},
954
+ "alias": None,
955
+ "schema": None,
956
+ "database": None,
957
+ "tags": [],
958
+ "full_refresh": None,
959
+ "quote_columns": None,
960
+ }
961
+ )
962
+ )
963
+ tags: Optional[List[str]] = []
964
+ refs: Optional[List[List[str]]] = []
965
+ sources: Optional[List[List]] = []
966
+ depends_on: Optional[DependsOn] = Field(
967
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
968
+ )
969
+ description: Optional[str] = ""
970
+ columns: Optional[Dict[str, ColumnInfo]] = {}
971
+ meta: Optional[Dict[str, Any]] = {}
972
+ docs: Optional[Docs] = Field(
973
+ default_factory=lambda: Docs.model_validate({"show": True})
974
+ )
975
+ patch_path: Optional[str] = None
976
+ build_path: Optional[str] = None
977
+ deferred: Optional[bool] = False
978
+ unrendered_config: Optional[Dict[str, Any]] = {}
979
+ compiled_sql: Optional[str] = None
980
+ extra_ctes_injected: Optional[bool] = False
981
+ extra_ctes: Optional[List[InjectedCTE]] = []
982
+ relation_name: Optional[str] = None
983
+
984
+
985
+ class CompiledSnapshotNode(BaseParserModel):
986
+ model_config = ConfigDict(
987
+ extra="forbid",
988
+ )
989
+ raw_sql: str
990
+ compiled: bool
991
+ database: Optional[str] = None
992
+ schema_: str = Field(..., alias="schema")
993
+ fqn: List[str]
994
+ unique_id: str
995
+ package_name: str
996
+ root_path: str
997
+ path: str
998
+ original_file_path: str
999
+ name: str
1000
+ resource_type: ResourceType7
1001
+ alias: str
1002
+ checksum: FileHash
1003
+ config: Optional[NodeConfig] = Field(
1004
+ default_factory=lambda: NodeConfig.model_validate(
1005
+ {
1006
+ "enabled": True,
1007
+ "materialized": "view",
1008
+ "persist_docs": {},
1009
+ "post-hook": [],
1010
+ "pre-hook": [],
1011
+ "vars": {},
1012
+ "quoting": {},
1013
+ "column_types": {},
1014
+ "alias": None,
1015
+ "schema": None,
1016
+ "database": None,
1017
+ "tags": [],
1018
+ "full_refresh": None,
1019
+ }
1020
+ )
1021
+ )
1022
+ tags: Optional[List[str]] = []
1023
+ refs: Optional[List[List[str]]] = []
1024
+ sources: Optional[List[List]] = []
1025
+ depends_on: Optional[DependsOn] = Field(
1026
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1027
+ )
1028
+ description: Optional[str] = ""
1029
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1030
+ meta: Optional[Dict[str, Any]] = {}
1031
+ docs: Optional[Docs] = Field(
1032
+ default_factory=lambda: Docs.model_validate({"show": True})
1033
+ )
1034
+ patch_path: Optional[str] = None
1035
+ build_path: Optional[str] = None
1036
+ deferred: Optional[bool] = False
1037
+ unrendered_config: Optional[Dict[str, Any]] = {}
1038
+ compiled_sql: Optional[str] = None
1039
+ extra_ctes_injected: Optional[bool] = False
1040
+ extra_ctes: Optional[List[InjectedCTE]] = []
1041
+ relation_name: Optional[str] = None
1042
+
1043
+
1044
+ class ParsedAnalysisNode(BaseParserModel):
1045
+ model_config = ConfigDict(
1046
+ extra="forbid",
1047
+ )
1048
+ raw_sql: str
1049
+ database: Optional[str] = None
1050
+ schema_: str = Field(..., alias="schema")
1051
+ fqn: List[str]
1052
+ unique_id: str
1053
+ package_name: str
1054
+ root_path: str
1055
+ path: str
1056
+ original_file_path: str
1057
+ name: str
1058
+ resource_type: ResourceType8
1059
+ alias: str
1060
+ checksum: FileHash
1061
+ config: Optional[NodeConfig] = Field(
1062
+ default_factory=lambda: NodeConfig.model_validate(
1063
+ {
1064
+ "enabled": True,
1065
+ "materialized": "view",
1066
+ "persist_docs": {},
1067
+ "post-hook": [],
1068
+ "pre-hook": [],
1069
+ "vars": {},
1070
+ "quoting": {},
1071
+ "column_types": {},
1072
+ "alias": None,
1073
+ "schema": None,
1074
+ "database": None,
1075
+ "tags": [],
1076
+ "full_refresh": None,
1077
+ }
1078
+ )
1079
+ )
1080
+ tags: Optional[List[str]] = []
1081
+ refs: Optional[List[List[str]]] = []
1082
+ sources: Optional[List[List]] = []
1083
+ depends_on: Optional[DependsOn] = Field(
1084
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1085
+ )
1086
+ description: Optional[str] = ""
1087
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1088
+ meta: Optional[Dict[str, Any]] = {}
1089
+ docs: Optional[Docs] = Field(
1090
+ default_factory=lambda: Docs.model_validate({"show": True})
1091
+ )
1092
+ patch_path: Optional[str] = None
1093
+ build_path: Optional[str] = None
1094
+ deferred: Optional[bool] = False
1095
+ unrendered_config: Optional[Dict[str, Any]] = {}
1096
+
1097
+
1098
+ class ParsedHookNode(BaseParserModel):
1099
+ model_config = ConfigDict(
1100
+ extra="forbid",
1101
+ )
1102
+ raw_sql: str
1103
+ database: Optional[str] = None
1104
+ schema_: str = Field(..., alias="schema")
1105
+ fqn: List[str]
1106
+ unique_id: str
1107
+ package_name: str
1108
+ root_path: str
1109
+ path: str
1110
+ original_file_path: str
1111
+ name: str
1112
+ resource_type: ResourceType10
1113
+ alias: str
1114
+ checksum: FileHash
1115
+ config: Optional[NodeConfig] = Field(
1116
+ default_factory=lambda: NodeConfig.model_validate(
1117
+ {
1118
+ "enabled": True,
1119
+ "materialized": "view",
1120
+ "persist_docs": {},
1121
+ "post-hook": [],
1122
+ "pre-hook": [],
1123
+ "vars": {},
1124
+ "quoting": {},
1125
+ "column_types": {},
1126
+ "alias": None,
1127
+ "schema": None,
1128
+ "database": None,
1129
+ "tags": [],
1130
+ "full_refresh": None,
1131
+ }
1132
+ )
1133
+ )
1134
+ tags: Optional[List[str]] = []
1135
+ refs: Optional[List[List[str]]] = []
1136
+ sources: Optional[List[List]] = []
1137
+ depends_on: Optional[DependsOn] = Field(
1138
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1139
+ )
1140
+ description: Optional[str] = ""
1141
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1142
+ meta: Optional[Dict[str, Any]] = {}
1143
+ docs: Optional[Docs] = Field(
1144
+ default_factory=lambda: Docs.model_validate({"show": True})
1145
+ )
1146
+ patch_path: Optional[str] = None
1147
+ build_path: Optional[str] = None
1148
+ deferred: Optional[bool] = False
1149
+ unrendered_config: Optional[Dict[str, Any]] = {}
1150
+ index: Optional[int] = None
1151
+
1152
+
1153
+ class ParsedModelNode(BaseParserModel):
1154
+ model_config = ConfigDict(
1155
+ extra="forbid",
1156
+ )
1157
+ raw_sql: str
1158
+ database: Optional[str] = None
1159
+ schema_: str = Field(..., alias="schema")
1160
+ fqn: List[str]
1161
+ unique_id: str
1162
+ package_name: str
1163
+ root_path: str
1164
+ path: str
1165
+ original_file_path: str
1166
+ name: str
1167
+ resource_type: ResourceType11
1168
+ alias: str
1169
+ checksum: FileHash
1170
+ config: Optional[NodeConfig] = Field(
1171
+ default_factory=lambda: NodeConfig.model_validate(
1172
+ {
1173
+ "enabled": True,
1174
+ "materialized": "view",
1175
+ "persist_docs": {},
1176
+ "post-hook": [],
1177
+ "pre-hook": [],
1178
+ "vars": {},
1179
+ "quoting": {},
1180
+ "column_types": {},
1181
+ "alias": None,
1182
+ "schema": None,
1183
+ "database": None,
1184
+ "tags": [],
1185
+ "full_refresh": None,
1186
+ }
1187
+ )
1188
+ )
1189
+ tags: Optional[List[str]] = []
1190
+ refs: Optional[List[List[str]]] = []
1191
+ sources: Optional[List[List]] = []
1192
+ depends_on: Optional[DependsOn] = Field(
1193
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1194
+ )
1195
+ description: Optional[str] = ""
1196
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1197
+ meta: Optional[Dict[str, Any]] = {}
1198
+ docs: Optional[Docs] = Field(
1199
+ default_factory=lambda: Docs.model_validate({"show": True})
1200
+ )
1201
+ patch_path: Optional[str] = None
1202
+ build_path: Optional[str] = None
1203
+ deferred: Optional[bool] = False
1204
+ unrendered_config: Optional[Dict[str, Any]] = {}
1205
+
1206
+
1207
+ class ParsedRPCNode(BaseParserModel):
1208
+ model_config = ConfigDict(
1209
+ extra="forbid",
1210
+ )
1211
+ raw_sql: str
1212
+ database: Optional[str] = None
1213
+ schema_: str = Field(..., alias="schema")
1214
+ fqn: List[str]
1215
+ unique_id: str
1216
+ package_name: str
1217
+ root_path: str
1218
+ path: str
1219
+ original_file_path: str
1220
+ name: str
1221
+ resource_type: ResourceType12
1222
+ alias: str
1223
+ checksum: FileHash
1224
+ config: Optional[NodeConfig] = Field(
1225
+ default_factory=lambda: NodeConfig.model_validate(
1226
+ {
1227
+ "enabled": True,
1228
+ "materialized": "view",
1229
+ "persist_docs": {},
1230
+ "post-hook": [],
1231
+ "pre-hook": [],
1232
+ "vars": {},
1233
+ "quoting": {},
1234
+ "column_types": {},
1235
+ "alias": None,
1236
+ "schema": None,
1237
+ "database": None,
1238
+ "tags": [],
1239
+ "full_refresh": None,
1240
+ }
1241
+ )
1242
+ )
1243
+ tags: Optional[List[str]] = []
1244
+ refs: Optional[List[List[str]]] = []
1245
+ sources: Optional[List[List]] = []
1246
+ depends_on: Optional[DependsOn] = Field(
1247
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1248
+ )
1249
+ description: Optional[str] = ""
1250
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1251
+ meta: Optional[Dict[str, Any]] = {}
1252
+ docs: Optional[Docs] = Field(
1253
+ default_factory=lambda: Docs.model_validate({"show": True})
1254
+ )
1255
+ patch_path: Optional[str] = None
1256
+ build_path: Optional[str] = None
1257
+ deferred: Optional[bool] = False
1258
+ unrendered_config: Optional[Dict[str, Any]] = {}
1259
+
1260
+
1261
+ class ParsedSnapshotNode(BaseParserModel):
1262
+ model_config = ConfigDict(
1263
+ extra="forbid",
1264
+ )
1265
+ raw_sql: str
1266
+ database: Optional[str] = None
1267
+ schema_: str = Field(..., alias="schema")
1268
+ fqn: List[str]
1269
+ unique_id: str
1270
+ package_name: str
1271
+ root_path: str
1272
+ path: str
1273
+ original_file_path: str
1274
+ name: str
1275
+ resource_type: ResourceType15
1276
+ alias: str
1277
+ checksum: FileHash
1278
+ config: Union[TimestampSnapshotConfig, CheckSnapshotConfig, GenericSnapshotConfig]
1279
+ tags: Optional[List[str]] = []
1280
+ refs: Optional[List[List[str]]] = []
1281
+ sources: Optional[List[List]] = []
1282
+ depends_on: Optional[DependsOn] = Field(
1283
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1284
+ )
1285
+ description: Optional[str] = ""
1286
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1287
+ meta: Optional[Dict[str, Any]] = {}
1288
+ docs: Optional[Docs] = Field(
1289
+ default_factory=lambda: Docs.model_validate({"show": True})
1290
+ )
1291
+ patch_path: Optional[str] = None
1292
+ build_path: Optional[str] = None
1293
+ deferred: Optional[bool] = False
1294
+ unrendered_config: Optional[Dict[str, Any]] = {}
1295
+
1296
+
1297
+ class FreshnessThreshold(BaseParserModel):
1298
+ model_config = ConfigDict(
1299
+ extra="forbid",
1300
+ )
1301
+ warn_after: Optional[Time] = None
1302
+ error_after: Optional[Time] = None
1303
+ filter: Optional[str] = None
1304
+
1305
+
1306
+ class SourceFreshnessOutput(BaseParserModel):
1307
+ model_config = ConfigDict(
1308
+ extra="forbid",
1309
+ )
1310
+ unique_id: str
1311
+ max_loaded_at: datetime
1312
+ snapshotted_at: datetime
1313
+ max_loaded_at_time_ago_in_s: float
1314
+ status: Status1
1315
+ criteria: FreshnessThreshold
1316
+ adapter_response: Dict[str, Any]
1317
+
1318
+
1319
+ class ExternalTable(BaseParserModel):
1320
+ model_config = ConfigDict(
1321
+ extra="allow",
1322
+ )
1323
+ location: Optional[str] = None
1324
+ file_format: Optional[str] = None
1325
+ row_format: Optional[str] = None
1326
+ tbl_properties: Optional[str] = None
1327
+ partitions: Optional[List[ExternalPartition]] = None
1328
+
1329
+
1330
+ class ParsedMacro(BaseParserModel):
1331
+ model_config = ConfigDict(
1332
+ extra="forbid",
1333
+ )
1334
+ unique_id: str
1335
+ package_name: str
1336
+ root_path: str
1337
+ path: str
1338
+ original_file_path: str
1339
+ name: str
1340
+ macro_sql: str
1341
+ resource_type: ResourceType17
1342
+ tags: Optional[List[str]] = []
1343
+ depends_on: Optional[MacroDependsOn] = Field(
1344
+ default_factory=lambda: MacroDependsOn.model_validate({"macros": []})
1345
+ )
1346
+ description: Optional[str] = ""
1347
+ meta: Optional[Dict[str, Any]] = {}
1348
+ docs: Optional[Docs] = Field(
1349
+ default_factory=lambda: Docs.model_validate({"show": True})
1350
+ )
1351
+ patch_path: Optional[str] = None
1352
+ arguments: Optional[List[MacroArgument]] = []
1353
+
1354
+
1355
+ class ParsedExposure(BaseParserModel):
1356
+ model_config = ConfigDict(
1357
+ extra="forbid",
1358
+ )
1359
+ fqn: List[str]
1360
+ unique_id: str
1361
+ package_name: str
1362
+ root_path: str
1363
+ path: str
1364
+ original_file_path: str
1365
+ name: str
1366
+ type: Type
1367
+ owner: ExposureOwner
1368
+ resource_type: Optional[ResourceType18] = "exposure"
1369
+ description: Optional[str] = ""
1370
+ maturity: Optional[Maturity] = None
1371
+ url: Optional[str] = None
1372
+ depends_on: Optional[DependsOn] = Field(
1373
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1374
+ )
1375
+ refs: Optional[List[List[str]]] = []
1376
+ sources: Optional[List[List[str]]] = []
1377
+
1378
+
1379
+ class CompiledAnalysisNode(BaseParserModel):
1380
+ model_config = ConfigDict(
1381
+ extra="forbid",
1382
+ )
1383
+ raw_sql: str
1384
+ compiled: bool
1385
+ database: Optional[str] = None
1386
+ schema_: str = Field(..., alias="schema")
1387
+ fqn: List[str]
1388
+ unique_id: str
1389
+ package_name: str
1390
+ root_path: str
1391
+ path: str
1392
+ original_file_path: str
1393
+ name: str
1394
+ resource_type: ResourceType
1395
+ alias: str
1396
+ checksum: FileHash
1397
+ config: Optional[NodeConfig] = Field(
1398
+ default_factory=lambda: NodeConfig.model_validate(
1399
+ {
1400
+ "enabled": True,
1401
+ "materialized": "view",
1402
+ "persist_docs": {},
1403
+ "post-hook": [],
1404
+ "pre-hook": [],
1405
+ "vars": {},
1406
+ "quoting": {},
1407
+ "column_types": {},
1408
+ "alias": None,
1409
+ "schema": None,
1410
+ "database": None,
1411
+ "tags": [],
1412
+ "full_refresh": None,
1413
+ }
1414
+ )
1415
+ )
1416
+ tags: Optional[List[str]] = []
1417
+ refs: Optional[List[List[str]]] = []
1418
+ sources: Optional[List[List]] = []
1419
+ depends_on: Optional[DependsOn] = Field(
1420
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1421
+ )
1422
+ description: Optional[str] = ""
1423
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1424
+ meta: Optional[Dict[str, Any]] = {}
1425
+ docs: Optional[Docs] = Field(
1426
+ default_factory=lambda: Docs.model_validate({"show": True})
1427
+ )
1428
+ patch_path: Optional[str] = None
1429
+ build_path: Optional[str] = None
1430
+ deferred: Optional[bool] = False
1431
+ unrendered_config: Optional[Dict[str, Any]] = {}
1432
+ compiled_sql: Optional[str] = None
1433
+ extra_ctes_injected: Optional[bool] = False
1434
+ extra_ctes: Optional[List[InjectedCTE]] = []
1435
+ relation_name: Optional[str] = None
1436
+
1437
+
1438
+ class ParsedSourceDefinition(BaseParserModel):
1439
+ model_config = ConfigDict(
1440
+ extra="forbid",
1441
+ )
1442
+ fqn: List[str]
1443
+ database: Optional[str] = None
1444
+ schema_: str = Field(..., alias="schema")
1445
+ unique_id: str
1446
+ package_name: str
1447
+ root_path: str
1448
+ path: str
1449
+ original_file_path: str
1450
+ name: str
1451
+ source_name: str
1452
+ source_description: str
1453
+ loader: str
1454
+ identifier: str
1455
+ resource_type: ResourceType16
1456
+ quoting: Optional[Quoting] = Field(
1457
+ default_factory=lambda: Quoting.model_validate(
1458
+ {"database": None, "schema": None, "identifier": None, "column": None}
1459
+ )
1460
+ )
1461
+ loaded_at_field: Optional[str] = None
1462
+ freshness: Optional[FreshnessThreshold] = None
1463
+ external: Optional[ExternalTable] = None
1464
+ description: Optional[str] = ""
1465
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1466
+ meta: Optional[Dict[str, Any]] = {}
1467
+ source_meta: Optional[Dict[str, Any]] = {}
1468
+ tags: Optional[List[str]] = []
1469
+ config: Optional[SourceConfig] = Field(
1470
+ default_factory=lambda: SourceConfig.model_validate({"enabled": True})
1471
+ )
1472
+ patch_path: Optional[str] = None
1473
+ unrendered_config: Optional[Dict[str, Any]] = {}
1474
+ relation_name: Optional[str] = None
1475
+
1476
+
1477
+ class ManifestV1(BaseParserModel):
1478
+ model_config = ConfigDict(
1479
+ extra="forbid",
1480
+ )
1481
+ metadata: ManifestMetadata = Field(..., description="Metadata about the manifest")
1482
+ nodes: Dict[
1483
+ str,
1484
+ Union[
1485
+ CompiledAnalysisNode,
1486
+ CompiledDataTestNode,
1487
+ CompiledModelNode,
1488
+ CompiledHookNode,
1489
+ CompiledRPCNode,
1490
+ CompiledSchemaTestNode,
1491
+ CompiledSeedNode,
1492
+ CompiledSnapshotNode,
1493
+ ParsedAnalysisNode,
1494
+ ParsedDataTestNode,
1495
+ ParsedHookNode,
1496
+ ParsedModelNode,
1497
+ ParsedRPCNode,
1498
+ ParsedSchemaTestNode,
1499
+ ParsedSeedNode,
1500
+ ParsedSnapshotNode,
1501
+ ],
1502
+ ] = Field(
1503
+ ..., description="The nodes defined in the dbt project and its dependencies"
1504
+ )
1505
+ sources: Dict[str, ParsedSourceDefinition] = Field(
1506
+ ..., description="The sources defined in the dbt project and its dependencies"
1507
+ )
1508
+ macros: Dict[str, ParsedMacro] = Field(
1509
+ ..., description="The macros defined in the dbt project and its dependencies"
1510
+ )
1511
+ docs: Dict[str, ParsedDocumentation] = Field(
1512
+ ..., description="The docs defined in the dbt project and its dependencies"
1513
+ )
1514
+ exposures: Dict[str, ParsedExposure] = Field(
1515
+ ..., description="The exposures defined in the dbt project and its dependencies"
1516
+ )
1517
+ selectors: Dict[str, Any] = Field(
1518
+ ..., description="The selectors defined in selectors.yml"
1519
+ )
1520
+ disabled: Optional[
1521
+ List[
1522
+ Union[
1523
+ CompiledAnalysisNode,
1524
+ CompiledDataTestNode,
1525
+ CompiledModelNode,
1526
+ CompiledHookNode,
1527
+ CompiledRPCNode,
1528
+ CompiledSchemaTestNode,
1529
+ CompiledSeedNode,
1530
+ CompiledSnapshotNode,
1531
+ ParsedAnalysisNode,
1532
+ ParsedDataTestNode,
1533
+ ParsedHookNode,
1534
+ ParsedModelNode,
1535
+ ParsedRPCNode,
1536
+ ParsedSchemaTestNode,
1537
+ ParsedSeedNode,
1538
+ ParsedSnapshotNode,
1539
+ ParsedSourceDefinition,
1540
+ ]
1541
+ ]
1542
+ ] = Field(None, description="A list of the disabled nodes in the target")
1543
+ parent_map: Optional[Dict[str, List[str]]] = Field(
1544
+ None, description="A mapping from\xa0child nodes to their dependencies"
1545
+ )
1546
+ child_map: Optional[Dict[str, List[str]]] = Field(
1547
+ None, description="A mapping from parent nodes to their dependents"
1548
+ )