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