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,1667 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: manifest_v10.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/v10.json"
21
+ )
22
+ dbt_version: Optional[str] = "1.6.0"
23
+ generated_at: Optional[datetime] = "2023-08-07T20:10:03.381822Z"
24
+ invocation_id: Optional[str] = "03dee192-ff77-43cc-bc3f-5eeaf6d36344"
25
+ env: Optional[Dict[str, str]] = {}
26
+ project_name: Optional[str] = Field(None, description="Name of the root project")
27
+ project_id: Optional[str] = Field(
28
+ None,
29
+ description="A unique identifier for the project, hashed from the project name",
30
+ )
31
+ user_id: Optional[
32
+ constr(pattern=r"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}")
33
+ ] = Field(None, description="A unique identifier for the user")
34
+ send_anonymous_usage_stats: Optional[bool] = Field(
35
+ None, description="Whether dbt is configured to send anonymous usage statistics"
36
+ )
37
+ adapter_type: Optional[str] = Field(
38
+ None, description="The type name of the adapter"
39
+ )
40
+
41
+
42
+ class ResourceType(Enum):
43
+ analysis = "analysis"
44
+
45
+
46
+ class FileHash(BaseParserModel):
47
+ model_config = ConfigDict(
48
+ extra="forbid",
49
+ )
50
+ name: str
51
+ checksum: str
52
+
53
+
54
+ class OnConfigurationChange(Enum):
55
+ apply = "apply"
56
+ continue_ = "continue"
57
+ fail = "fail"
58
+
59
+
60
+ class Hook(BaseParserModel):
61
+ model_config = ConfigDict(
62
+ extra="forbid",
63
+ )
64
+ sql: str
65
+ transaction: Optional[bool] = True
66
+ index: Optional[int] = None
67
+
68
+
69
+ class Docs(BaseParserModel):
70
+ model_config = ConfigDict(
71
+ extra="forbid",
72
+ )
73
+ show: Optional[bool] = True
74
+ node_color: Optional[str] = None
75
+
76
+
77
+ class ContractConfig(BaseParserModel):
78
+ model_config = ConfigDict(
79
+ extra="forbid",
80
+ )
81
+ enforced: Optional[bool] = False
82
+
83
+
84
+ class Type(Enum):
85
+ check = "check"
86
+ not_null = "not_null"
87
+ unique = "unique"
88
+ primary_key = "primary_key"
89
+ foreign_key = "foreign_key"
90
+ custom = "custom"
91
+
92
+
93
+ class ColumnLevelConstraint(BaseParserModel):
94
+ model_config = ConfigDict(
95
+ extra="forbid",
96
+ )
97
+ type: Type
98
+ name: Optional[str] = None
99
+ expression: Optional[str] = None
100
+ warn_unenforced: Optional[bool] = True
101
+ warn_unsupported: Optional[bool] = True
102
+
103
+
104
+ class RefArgs(BaseParserModel):
105
+ model_config = ConfigDict(
106
+ extra="forbid",
107
+ )
108
+ name: str
109
+ package: Optional[str] = None
110
+ version: Optional[Union[str, float]] = None
111
+
112
+
113
+ class DependsOn(BaseParserModel):
114
+ model_config = ConfigDict(
115
+ extra="forbid",
116
+ )
117
+ macros: Optional[List[str]] = []
118
+ nodes: Optional[List[str]] = []
119
+
120
+
121
+ class InjectedCTE(BaseParserModel):
122
+ model_config = ConfigDict(
123
+ extra="forbid",
124
+ )
125
+ id: str
126
+ sql: str
127
+
128
+
129
+ class Contract(BaseParserModel):
130
+ model_config = ConfigDict(
131
+ extra="forbid",
132
+ )
133
+ enforced: Optional[bool] = False
134
+ checksum: Optional[str] = None
135
+
136
+
137
+ class ResourceType1(Enum):
138
+ test = "test"
139
+
140
+
141
+ class TestConfig(BaseParserModel):
142
+ model_config = ConfigDict(
143
+ extra="allow",
144
+ )
145
+ enabled: Optional[bool] = True
146
+ alias: Optional[str] = None
147
+ schema_: Optional[str] = Field("dbt_test__audit", alias="schema")
148
+ database: Optional[str] = None
149
+ tags: Optional[Union[List[str], str]] = []
150
+ meta: Optional[Dict[str, Any]] = {}
151
+ group: Optional[str] = None
152
+ materialized: Optional[str] = "test"
153
+ severity: Optional[constr(pattern=r"^([Ww][Aa][Rr][Nn]|[Ee][Rr][Rr][Oo][Rr])$")] = (
154
+ "ERROR"
155
+ )
156
+ store_failures: Optional[bool] = None
157
+ where: Optional[str] = None
158
+ limit: Optional[int] = None
159
+ fail_calc: Optional[str] = "count(*)"
160
+ warn_if: Optional[str] = "!= 0"
161
+ error_if: Optional[str] = "!= 0"
162
+
163
+
164
+ class ResourceType2(Enum):
165
+ operation = "operation"
166
+
167
+
168
+ class ResourceType3(Enum):
169
+ model = "model"
170
+
171
+
172
+ class Access(Enum):
173
+ protected = "protected"
174
+ private = "private"
175
+ public = "public"
176
+
177
+
178
+ class ModelLevelConstraint(BaseParserModel):
179
+ model_config = ConfigDict(
180
+ extra="forbid",
181
+ )
182
+ type: Type
183
+ name: Optional[str] = None
184
+ expression: Optional[str] = None
185
+ warn_unenforced: Optional[bool] = True
186
+ warn_unsupported: Optional[bool] = True
187
+ columns: Optional[List[str]] = []
188
+
189
+
190
+ class DeferRelation(BaseParserModel):
191
+ model_config = ConfigDict(
192
+ extra="forbid",
193
+ )
194
+ database: Optional[str] = None
195
+ schema_: str = Field(..., alias="schema")
196
+ alias: str
197
+ relation_name: Optional[str] = None
198
+
199
+
200
+ class ResourceType4(Enum):
201
+ rpc = "rpc"
202
+
203
+
204
+ class ResourceType5(Enum):
205
+ sql_operation = "sql_operation"
206
+
207
+
208
+ class ResourceType6(Enum):
209
+ test = "test"
210
+
211
+
212
+ class TestMetadata(BaseParserModel):
213
+ model_config = ConfigDict(
214
+ extra="forbid",
215
+ )
216
+ name: str
217
+ kwargs: Optional[Dict[str, Any]] = {}
218
+ namespace: Optional[str] = None
219
+
220
+
221
+ class ResourceType7(Enum):
222
+ snapshot = "snapshot"
223
+
224
+
225
+ class SnapshotConfig(BaseParserModel):
226
+ model_config = ConfigDict(
227
+ extra="allow",
228
+ )
229
+ enabled: Optional[bool] = True
230
+ alias: Optional[str] = None
231
+ schema_: Optional[str] = Field(None, alias="schema")
232
+ database: Optional[str] = None
233
+ tags: Optional[Union[List[str], str]] = []
234
+ meta: Optional[Dict[str, Any]] = {}
235
+ group: Optional[str] = None
236
+ materialized: Optional[str] = "snapshot"
237
+ incremental_strategy: Optional[str] = None
238
+ persist_docs: Optional[Dict[str, Any]] = {}
239
+ post_hook: Optional[List[Hook]] = Field([], alias="post-hook")
240
+ pre_hook: Optional[List[Hook]] = Field([], alias="pre-hook")
241
+ quoting: Optional[Dict[str, Any]] = {}
242
+ column_types: Optional[Dict[str, Any]] = {}
243
+ full_refresh: Optional[bool] = None
244
+ unique_key: Optional[str] = None
245
+ on_schema_change: Optional[str] = "ignore"
246
+ on_configuration_change: Optional[OnConfigurationChange] = "apply"
247
+ grants: Optional[Dict[str, Any]] = {}
248
+ packages: Optional[List[str]] = []
249
+ docs: Optional[Docs] = Field(
250
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
251
+ )
252
+ contract: Optional[ContractConfig] = Field(
253
+ default_factory=lambda: ContractConfig.model_validate({"enforced": False})
254
+ )
255
+ strategy: Optional[str] = None
256
+ target_schema: Optional[str] = None
257
+ target_database: Optional[str] = None
258
+ updated_at: Optional[str] = None
259
+ check_cols: Optional[Union[str, List[str]]] = None
260
+
261
+
262
+ class ResourceType8(Enum):
263
+ seed = "seed"
264
+
265
+
266
+ class SeedConfig(BaseParserModel):
267
+ model_config = ConfigDict(
268
+ extra="allow",
269
+ )
270
+ enabled: Optional[bool] = True
271
+ alias: Optional[str] = None
272
+ schema_: Optional[str] = Field(None, alias="schema")
273
+ database: Optional[str] = None
274
+ tags: Optional[Union[List[str], str]] = []
275
+ meta: Optional[Dict[str, Any]] = {}
276
+ group: Optional[str] = None
277
+ materialized: Optional[str] = "seed"
278
+ incremental_strategy: Optional[str] = None
279
+ persist_docs: Optional[Dict[str, Any]] = {}
280
+ post_hook: Optional[List[Hook]] = Field([], alias="post-hook")
281
+ pre_hook: Optional[List[Hook]] = Field([], alias="pre-hook")
282
+ quoting: Optional[Dict[str, Any]] = {}
283
+ column_types: Optional[Dict[str, Any]] = {}
284
+ full_refresh: Optional[bool] = None
285
+ unique_key: Optional[Union[str, List[str]]] = None
286
+ on_schema_change: Optional[str] = "ignore"
287
+ on_configuration_change: Optional[OnConfigurationChange] = "apply"
288
+ grants: Optional[Dict[str, Any]] = {}
289
+ packages: Optional[List[str]] = []
290
+ docs: Optional[Docs] = Field(
291
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
292
+ )
293
+ contract: Optional[ContractConfig] = Field(
294
+ default_factory=lambda: ContractConfig.model_validate({"enforced": False})
295
+ )
296
+ quote_columns: Optional[bool] = None
297
+
298
+
299
+ class MacroDependsOn(BaseParserModel):
300
+ model_config = ConfigDict(
301
+ extra="forbid",
302
+ )
303
+ macros: Optional[List[str]] = []
304
+
305
+
306
+ class ResourceType9(Enum):
307
+ source = "source"
308
+
309
+
310
+ class Quoting(BaseParserModel):
311
+ model_config = ConfigDict(
312
+ extra="forbid",
313
+ )
314
+ database: Optional[bool] = None
315
+ schema_: Optional[bool] = Field(None, alias="schema")
316
+ identifier: Optional[bool] = None
317
+ column: Optional[bool] = None
318
+
319
+
320
+ class Period(Enum):
321
+ minute = "minute"
322
+ hour = "hour"
323
+ day = "day"
324
+
325
+
326
+ class Time(BaseParserModel):
327
+ model_config = ConfigDict(
328
+ extra="forbid",
329
+ )
330
+ count: Optional[int] = None
331
+ period: Optional[Period] = None
332
+
333
+
334
+ class ExternalPartition(BaseParserModel):
335
+ model_config = ConfigDict(
336
+ extra="allow",
337
+ )
338
+ name: Optional[str] = ""
339
+ description: Optional[str] = ""
340
+ data_type: Optional[str] = ""
341
+ meta: Optional[Dict[str, Any]] = {}
342
+
343
+
344
+ class SourceConfig(BaseParserModel):
345
+ model_config = ConfigDict(
346
+ extra="allow",
347
+ )
348
+ enabled: Optional[bool] = True
349
+
350
+
351
+ class ResourceType10(Enum):
352
+ macro = "macro"
353
+
354
+
355
+ class SupportedLanguage(Enum):
356
+ python = "python"
357
+ sql = "sql"
358
+
359
+
360
+ class MacroArgument(BaseParserModel):
361
+ model_config = ConfigDict(
362
+ extra="forbid",
363
+ )
364
+ name: str
365
+ type: Optional[str] = None
366
+ description: Optional[str] = ""
367
+
368
+
369
+ class ResourceType11(Enum):
370
+ doc = "doc"
371
+
372
+
373
+ class Documentation(BaseParserModel):
374
+ model_config = ConfigDict(
375
+ extra="forbid",
376
+ )
377
+ name: str
378
+ resource_type: ResourceType11
379
+ package_name: str
380
+ path: str
381
+ original_file_path: str
382
+ unique_id: str
383
+ block_contents: str
384
+
385
+
386
+ class ResourceType12(Enum):
387
+ exposure = "exposure"
388
+
389
+
390
+ class Type2(Enum):
391
+ dashboard = "dashboard"
392
+ notebook = "notebook"
393
+ analysis = "analysis"
394
+ ml = "ml"
395
+ application = "application"
396
+
397
+
398
+ class Maturity(Enum):
399
+ low = "low"
400
+ medium = "medium"
401
+ high = "high"
402
+
403
+
404
+ class Owner(BaseParserModel):
405
+ model_config = ConfigDict(
406
+ extra="allow",
407
+ )
408
+ email: Optional[str] = None
409
+ name: Optional[str] = None
410
+
411
+
412
+ class ExposureConfig(BaseParserModel):
413
+ model_config = ConfigDict(
414
+ extra="allow",
415
+ )
416
+ enabled: Optional[bool] = True
417
+
418
+
419
+ class ResourceType13(Enum):
420
+ metric = "metric"
421
+
422
+
423
+ class Type3(Enum):
424
+ simple = "simple"
425
+ ratio = "ratio"
426
+ cumulative = "cumulative"
427
+ derived = "derived"
428
+
429
+
430
+ class GrainToDate(Enum):
431
+ day = "day"
432
+ week = "week"
433
+ month = "month"
434
+ quarter = "quarter"
435
+ year = "year"
436
+
437
+
438
+ class WhereFilter(BaseParserModel):
439
+ model_config = ConfigDict(
440
+ extra="forbid",
441
+ )
442
+ where_sql_template: str
443
+
444
+
445
+ class OffsetToGrain(Enum):
446
+ day = "day"
447
+ week = "week"
448
+ month = "month"
449
+ quarter = "quarter"
450
+ year = "year"
451
+
452
+
453
+ class Granularity(Enum):
454
+ day = "day"
455
+ week = "week"
456
+ month = "month"
457
+ quarter = "quarter"
458
+ year = "year"
459
+
460
+
461
+ class MetricTimeWindow(BaseParserModel):
462
+ model_config = ConfigDict(
463
+ extra="forbid",
464
+ )
465
+ count: int
466
+ granularity: Granularity
467
+
468
+
469
+ class FileSlice(BaseParserModel):
470
+ model_config = ConfigDict(
471
+ extra="forbid",
472
+ )
473
+ filename: str
474
+ content: str
475
+ start_line_number: int
476
+ end_line_number: int
477
+
478
+
479
+ class MetricConfig(BaseParserModel):
480
+ model_config = ConfigDict(
481
+ extra="allow",
482
+ )
483
+ enabled: Optional[bool] = True
484
+ group: Optional[str] = None
485
+
486
+
487
+ class ResourceType14(Enum):
488
+ group = "group"
489
+
490
+
491
+ class Group(BaseParserModel):
492
+ model_config = ConfigDict(
493
+ extra="forbid",
494
+ )
495
+ name: str
496
+ resource_type: ResourceType14
497
+ package_name: str
498
+ path: str
499
+ original_file_path: str
500
+ unique_id: str
501
+ owner: Owner
502
+
503
+
504
+ class ResourceType15(Enum):
505
+ model = "model"
506
+ analysis = "analysis"
507
+ test = "test"
508
+ snapshot = "snapshot"
509
+ operation = "operation"
510
+ seed = "seed"
511
+ rpc = "rpc"
512
+ sql_operation = "sql_operation"
513
+ doc = "doc"
514
+ source = "source"
515
+ macro = "macro"
516
+ exposure = "exposure"
517
+ metric = "metric"
518
+ group = "group"
519
+ semantic_model = "semantic_model"
520
+
521
+
522
+ class NodeRelation(BaseParserModel):
523
+ model_config = ConfigDict(
524
+ extra="forbid",
525
+ )
526
+ alias: str
527
+ schema_name: str
528
+ database: Optional[str] = None
529
+ relation_name: Optional[str] = None
530
+
531
+
532
+ class Defaults(BaseParserModel):
533
+ model_config = ConfigDict(
534
+ extra="forbid",
535
+ )
536
+ agg_time_dimension: Optional[str] = None
537
+
538
+
539
+ class Type4(Enum):
540
+ foreign = "foreign"
541
+ natural = "natural"
542
+ primary = "primary"
543
+ unique = "unique"
544
+
545
+
546
+ class Entity(BaseParserModel):
547
+ model_config = ConfigDict(
548
+ extra="forbid",
549
+ )
550
+ name: str
551
+ type: Type4
552
+ description: Optional[str] = None
553
+ role: Optional[str] = None
554
+ expr: Optional[str] = None
555
+
556
+
557
+ class Agg(Enum):
558
+ sum = "sum"
559
+ min = "min"
560
+ max = "max"
561
+ count_distinct = "count_distinct"
562
+ sum_boolean = "sum_boolean"
563
+ average = "average"
564
+ percentile = "percentile"
565
+ median = "median"
566
+ count = "count"
567
+
568
+
569
+ class MeasureAggregationParameters(BaseParserModel):
570
+ model_config = ConfigDict(
571
+ extra="forbid",
572
+ )
573
+ percentile: Optional[float] = None
574
+ use_discrete_percentile: Optional[bool] = False
575
+ use_approximate_percentile: Optional[bool] = False
576
+
577
+
578
+ class WindowChoice(Enum):
579
+ sum = "sum"
580
+ min = "min"
581
+ max = "max"
582
+ count_distinct = "count_distinct"
583
+ sum_boolean = "sum_boolean"
584
+ average = "average"
585
+ percentile = "percentile"
586
+ median = "median"
587
+ count = "count"
588
+
589
+
590
+ class NonAdditiveDimension(BaseParserModel):
591
+ model_config = ConfigDict(
592
+ extra="forbid",
593
+ )
594
+ name: str
595
+ window_choice: WindowChoice
596
+ window_groupings: List[str]
597
+
598
+
599
+ class Type5(Enum):
600
+ categorical = "categorical"
601
+ time = "time"
602
+
603
+
604
+ class TimeGranularity(Enum):
605
+ day = "day"
606
+ week = "week"
607
+ month = "month"
608
+ quarter = "quarter"
609
+ year = "year"
610
+
611
+
612
+ class DimensionValidityParams(BaseParserModel):
613
+ model_config = ConfigDict(
614
+ extra="forbid",
615
+ )
616
+ is_start: Optional[bool] = False
617
+ is_end: Optional[bool] = False
618
+
619
+
620
+ class SemanticModelConfig(BaseParserModel):
621
+ model_config = ConfigDict(
622
+ extra="allow",
623
+ )
624
+ enabled: Optional[bool] = True
625
+
626
+
627
+ class NodeConfig(BaseParserModel):
628
+ model_config = ConfigDict(
629
+ extra="allow",
630
+ )
631
+ enabled: Optional[bool] = True
632
+ alias: Optional[str] = None
633
+ schema_: Optional[str] = Field(None, alias="schema")
634
+ database: Optional[str] = None
635
+ tags: Optional[Union[List[str], str]] = []
636
+ meta: Optional[Dict[str, Any]] = {}
637
+ group: Optional[str] = None
638
+ materialized: Optional[str] = "view"
639
+ incremental_strategy: Optional[str] = None
640
+ persist_docs: Optional[Dict[str, Any]] = {}
641
+ post_hook: Optional[List[Hook]] = Field([], alias="post-hook")
642
+ pre_hook: Optional[List[Hook]] = Field([], alias="pre-hook")
643
+ quoting: Optional[Dict[str, Any]] = {}
644
+ column_types: Optional[Dict[str, Any]] = {}
645
+ full_refresh: Optional[bool] = None
646
+ unique_key: Optional[Union[str, List[str]]] = None
647
+ on_schema_change: Optional[str] = "ignore"
648
+ on_configuration_change: Optional[OnConfigurationChange] = "apply"
649
+ grants: Optional[Dict[str, Any]] = {}
650
+ packages: Optional[List[str]] = []
651
+ docs: Optional[Docs] = Field(
652
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
653
+ )
654
+ contract: Optional[ContractConfig] = Field(
655
+ default_factory=lambda: ContractConfig.model_validate({"enforced": False})
656
+ )
657
+
658
+
659
+ class ColumnInfo(BaseParserModel):
660
+ model_config = ConfigDict(
661
+ extra="allow",
662
+ )
663
+ name: str
664
+ description: Optional[str] = ""
665
+ meta: Optional[Dict[str, Any]] = {}
666
+ data_type: Optional[str] = None
667
+ constraints: Optional[List[ColumnLevelConstraint]] = []
668
+ quote: Optional[bool] = None
669
+ tags: Optional[List[str]] = []
670
+
671
+
672
+ class SingularTestNode(BaseParserModel):
673
+ model_config = ConfigDict(
674
+ extra="forbid",
675
+ )
676
+ database: Optional[str] = None
677
+ schema_: str = Field(..., alias="schema")
678
+ name: str
679
+ resource_type: ResourceType1
680
+ package_name: str
681
+ path: str
682
+ original_file_path: str
683
+ unique_id: str
684
+ fqn: List[str]
685
+ alias: str
686
+ checksum: FileHash
687
+ config: Optional[TestConfig] = Field(
688
+ default_factory=lambda: TestConfig.model_validate(
689
+ {
690
+ "enabled": True,
691
+ "alias": None,
692
+ "schema": "dbt_test__audit",
693
+ "database": None,
694
+ "tags": [],
695
+ "meta": {},
696
+ "group": None,
697
+ "materialized": "test",
698
+ "severity": "ERROR",
699
+ "store_failures": None,
700
+ "where": None,
701
+ "limit": None,
702
+ "fail_calc": "count(*)",
703
+ "warn_if": "!= 0",
704
+ "error_if": "!= 0",
705
+ }
706
+ )
707
+ )
708
+ tags: Optional[List[str]] = []
709
+ description: Optional[str] = ""
710
+ columns: Optional[Dict[str, ColumnInfo]] = {}
711
+ meta: Optional[Dict[str, Any]] = {}
712
+ group: Optional[str] = None
713
+ docs: Optional[Docs] = Field(
714
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
715
+ )
716
+ patch_path: Optional[str] = None
717
+ build_path: Optional[str] = None
718
+ deferred: Optional[bool] = False
719
+ unrendered_config: Optional[Dict[str, Any]] = {}
720
+ created_at: Optional[float] = 1691439003.389955
721
+ config_call_dict: Optional[Dict[str, Any]] = {}
722
+ relation_name: Optional[str] = None
723
+ raw_code: Optional[str] = ""
724
+ language: Optional[str] = "sql"
725
+ refs: Optional[List[RefArgs]] = []
726
+ sources: Optional[List[List[str]]] = []
727
+ metrics: Optional[List[List[str]]] = []
728
+ depends_on: Optional[DependsOn] = Field(
729
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
730
+ )
731
+ compiled_path: Optional[str] = None
732
+ compiled: Optional[bool] = False
733
+ compiled_code: Optional[str] = None
734
+ extra_ctes_injected: Optional[bool] = False
735
+ extra_ctes: Optional[List[InjectedCTE]] = []
736
+ contract: Optional[Contract] = Field(
737
+ default_factory=lambda: Contract.model_validate(
738
+ {"enforced": False, "checksum": None}
739
+ )
740
+ )
741
+
742
+
743
+ class HookNode(BaseParserModel):
744
+ model_config = ConfigDict(
745
+ extra="forbid",
746
+ )
747
+ database: Optional[str] = None
748
+ schema_: str = Field(..., alias="schema")
749
+ name: str
750
+ resource_type: ResourceType2
751
+ package_name: str
752
+ path: str
753
+ original_file_path: str
754
+ unique_id: str
755
+ fqn: List[str]
756
+ alias: str
757
+ checksum: FileHash
758
+ config: Optional[NodeConfig] = Field(
759
+ default_factory=lambda: NodeConfig.model_validate(
760
+ {
761
+ "enabled": True,
762
+ "alias": None,
763
+ "schema": None,
764
+ "database": None,
765
+ "tags": [],
766
+ "meta": {},
767
+ "group": None,
768
+ "materialized": "view",
769
+ "incremental_strategy": None,
770
+ "persist_docs": {},
771
+ "quoting": {},
772
+ "column_types": {},
773
+ "full_refresh": None,
774
+ "unique_key": None,
775
+ "on_schema_change": "ignore",
776
+ "on_configuration_change": "apply",
777
+ "grants": {},
778
+ "packages": [],
779
+ "docs": {"show": True, "node_color": None},
780
+ "contract": {"enforced": False},
781
+ "post-hook": [],
782
+ "pre-hook": [],
783
+ }
784
+ )
785
+ )
786
+ tags: Optional[List[str]] = []
787
+ description: Optional[str] = ""
788
+ columns: Optional[Dict[str, ColumnInfo]] = {}
789
+ meta: Optional[Dict[str, Any]] = {}
790
+ group: Optional[str] = None
791
+ docs: Optional[Docs] = Field(
792
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
793
+ )
794
+ patch_path: Optional[str] = None
795
+ build_path: Optional[str] = None
796
+ deferred: Optional[bool] = False
797
+ unrendered_config: Optional[Dict[str, Any]] = {}
798
+ created_at: Optional[float] = 1691439003.3916101
799
+ config_call_dict: Optional[Dict[str, Any]] = {}
800
+ relation_name: Optional[str] = None
801
+ raw_code: Optional[str] = ""
802
+ language: Optional[str] = "sql"
803
+ refs: Optional[List[RefArgs]] = []
804
+ sources: Optional[List[List[str]]] = []
805
+ metrics: Optional[List[List[str]]] = []
806
+ depends_on: Optional[DependsOn] = Field(
807
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
808
+ )
809
+ compiled_path: Optional[str] = None
810
+ compiled: Optional[bool] = False
811
+ compiled_code: Optional[str] = None
812
+ extra_ctes_injected: Optional[bool] = False
813
+ extra_ctes: Optional[List[InjectedCTE]] = []
814
+ contract: Optional[Contract] = Field(
815
+ default_factory=lambda: Contract.model_validate(
816
+ {"enforced": False, "checksum": None}
817
+ )
818
+ )
819
+ index: Optional[int] = None
820
+
821
+
822
+ class ModelNode(BaseParserModel):
823
+ model_config = ConfigDict(
824
+ extra="forbid",
825
+ )
826
+ database: Optional[str] = None
827
+ schema_: str = Field(..., alias="schema")
828
+ name: str
829
+ resource_type: ResourceType3
830
+ package_name: str
831
+ path: str
832
+ original_file_path: str
833
+ unique_id: str
834
+ fqn: List[str]
835
+ alias: str
836
+ checksum: FileHash
837
+ config: Optional[NodeConfig] = Field(
838
+ default_factory=lambda: NodeConfig.model_validate(
839
+ {
840
+ "enabled": True,
841
+ "alias": None,
842
+ "schema": None,
843
+ "database": None,
844
+ "tags": [],
845
+ "meta": {},
846
+ "group": None,
847
+ "materialized": "view",
848
+ "incremental_strategy": None,
849
+ "persist_docs": {},
850
+ "quoting": {},
851
+ "column_types": {},
852
+ "full_refresh": None,
853
+ "unique_key": None,
854
+ "on_schema_change": "ignore",
855
+ "on_configuration_change": "apply",
856
+ "grants": {},
857
+ "packages": [],
858
+ "docs": {"show": True, "node_color": None},
859
+ "contract": {"enforced": False},
860
+ "post-hook": [],
861
+ "pre-hook": [],
862
+ }
863
+ )
864
+ )
865
+ tags: Optional[List[str]] = []
866
+ description: Optional[str] = ""
867
+ columns: Optional[Dict[str, ColumnInfo]] = {}
868
+ meta: Optional[Dict[str, Any]] = {}
869
+ group: Optional[str] = None
870
+ docs: Optional[Docs] = Field(
871
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
872
+ )
873
+ patch_path: Optional[str] = None
874
+ build_path: Optional[str] = None
875
+ deferred: Optional[bool] = False
876
+ unrendered_config: Optional[Dict[str, Any]] = {}
877
+ created_at: Optional[float] = 1691439003.393298
878
+ config_call_dict: Optional[Dict[str, Any]] = {}
879
+ relation_name: Optional[str] = None
880
+ raw_code: Optional[str] = ""
881
+ language: Optional[str] = "sql"
882
+ refs: Optional[List[RefArgs]] = []
883
+ sources: Optional[List[List[str]]] = []
884
+ metrics: Optional[List[List[str]]] = []
885
+ depends_on: Optional[DependsOn] = Field(
886
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
887
+ )
888
+ compiled_path: Optional[str] = None
889
+ compiled: Optional[bool] = False
890
+ compiled_code: Optional[str] = None
891
+ extra_ctes_injected: Optional[bool] = False
892
+ extra_ctes: Optional[List[InjectedCTE]] = []
893
+ contract: Optional[Contract] = Field(
894
+ default_factory=lambda: Contract.model_validate(
895
+ {"enforced": False, "checksum": None}
896
+ )
897
+ )
898
+ access: Optional[Access] = "protected"
899
+ constraints: Optional[List[ModelLevelConstraint]] = []
900
+ version: Optional[Union[str, float]] = None
901
+ latest_version: Optional[Union[str, float]] = None
902
+ deprecation_date: Optional[datetime] = None
903
+ defer_relation: Optional[DeferRelation] = None
904
+
905
+
906
+ class RPCNode(BaseParserModel):
907
+ model_config = ConfigDict(
908
+ extra="forbid",
909
+ )
910
+ database: Optional[str] = None
911
+ schema_: str = Field(..., alias="schema")
912
+ name: str
913
+ resource_type: ResourceType4
914
+ package_name: str
915
+ path: str
916
+ original_file_path: str
917
+ unique_id: str
918
+ fqn: List[str]
919
+ alias: str
920
+ checksum: FileHash
921
+ config: Optional[NodeConfig] = Field(
922
+ default_factory=lambda: NodeConfig.model_validate(
923
+ {
924
+ "enabled": True,
925
+ "alias": None,
926
+ "schema": None,
927
+ "database": None,
928
+ "tags": [],
929
+ "meta": {},
930
+ "group": None,
931
+ "materialized": "view",
932
+ "incremental_strategy": None,
933
+ "persist_docs": {},
934
+ "quoting": {},
935
+ "column_types": {},
936
+ "full_refresh": None,
937
+ "unique_key": None,
938
+ "on_schema_change": "ignore",
939
+ "on_configuration_change": "apply",
940
+ "grants": {},
941
+ "packages": [],
942
+ "docs": {"show": True, "node_color": None},
943
+ "contract": {"enforced": False},
944
+ "post-hook": [],
945
+ "pre-hook": [],
946
+ }
947
+ )
948
+ )
949
+ tags: Optional[List[str]] = []
950
+ description: Optional[str] = ""
951
+ columns: Optional[Dict[str, ColumnInfo]] = {}
952
+ meta: Optional[Dict[str, Any]] = {}
953
+ group: Optional[str] = None
954
+ docs: Optional[Docs] = Field(
955
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
956
+ )
957
+ patch_path: Optional[str] = None
958
+ build_path: Optional[str] = None
959
+ deferred: Optional[bool] = False
960
+ unrendered_config: Optional[Dict[str, Any]] = {}
961
+ created_at: Optional[float] = 1691439003.39583
962
+ config_call_dict: Optional[Dict[str, Any]] = {}
963
+ relation_name: Optional[str] = None
964
+ raw_code: Optional[str] = ""
965
+ language: Optional[str] = "sql"
966
+ refs: Optional[List[RefArgs]] = []
967
+ sources: Optional[List[List[str]]] = []
968
+ metrics: Optional[List[List[str]]] = []
969
+ depends_on: Optional[DependsOn] = Field(
970
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
971
+ )
972
+ compiled_path: Optional[str] = None
973
+ compiled: Optional[bool] = False
974
+ compiled_code: Optional[str] = None
975
+ extra_ctes_injected: Optional[bool] = False
976
+ extra_ctes: Optional[List[InjectedCTE]] = []
977
+ contract: Optional[Contract] = Field(
978
+ default_factory=lambda: Contract.model_validate(
979
+ {"enforced": False, "checksum": None}
980
+ )
981
+ )
982
+
983
+
984
+ class SqlNode(BaseParserModel):
985
+ model_config = ConfigDict(
986
+ extra="forbid",
987
+ )
988
+ database: Optional[str] = None
989
+ schema_: str = Field(..., alias="schema")
990
+ name: str
991
+ resource_type: ResourceType5
992
+ package_name: str
993
+ path: str
994
+ original_file_path: str
995
+ unique_id: str
996
+ fqn: List[str]
997
+ alias: str
998
+ checksum: FileHash
999
+ config: Optional[NodeConfig] = Field(
1000
+ default_factory=lambda: NodeConfig.model_validate(
1001
+ {
1002
+ "enabled": True,
1003
+ "alias": None,
1004
+ "schema": None,
1005
+ "database": None,
1006
+ "tags": [],
1007
+ "meta": {},
1008
+ "group": None,
1009
+ "materialized": "view",
1010
+ "incremental_strategy": None,
1011
+ "persist_docs": {},
1012
+ "quoting": {},
1013
+ "column_types": {},
1014
+ "full_refresh": None,
1015
+ "unique_key": None,
1016
+ "on_schema_change": "ignore",
1017
+ "on_configuration_change": "apply",
1018
+ "grants": {},
1019
+ "packages": [],
1020
+ "docs": {"show": True, "node_color": None},
1021
+ "contract": {"enforced": False},
1022
+ "post-hook": [],
1023
+ "pre-hook": [],
1024
+ }
1025
+ )
1026
+ )
1027
+ tags: Optional[List[str]] = []
1028
+ description: Optional[str] = ""
1029
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1030
+ meta: Optional[Dict[str, Any]] = {}
1031
+ group: Optional[str] = None
1032
+ docs: Optional[Docs] = Field(
1033
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
1034
+ )
1035
+ patch_path: Optional[str] = None
1036
+ build_path: Optional[str] = None
1037
+ deferred: Optional[bool] = False
1038
+ unrendered_config: Optional[Dict[str, Any]] = {}
1039
+ created_at: Optional[float] = 1691439003.3974268
1040
+ config_call_dict: Optional[Dict[str, Any]] = {}
1041
+ relation_name: Optional[str] = None
1042
+ raw_code: Optional[str] = ""
1043
+ language: Optional[str] = "sql"
1044
+ refs: Optional[List[RefArgs]] = []
1045
+ sources: Optional[List[List[str]]] = []
1046
+ metrics: Optional[List[List[str]]] = []
1047
+ depends_on: Optional[DependsOn] = Field(
1048
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1049
+ )
1050
+ compiled_path: Optional[str] = None
1051
+ compiled: Optional[bool] = False
1052
+ compiled_code: Optional[str] = None
1053
+ extra_ctes_injected: Optional[bool] = False
1054
+ extra_ctes: Optional[List[InjectedCTE]] = []
1055
+ contract: Optional[Contract] = Field(
1056
+ default_factory=lambda: Contract.model_validate(
1057
+ {"enforced": False, "checksum": None}
1058
+ )
1059
+ )
1060
+
1061
+
1062
+ class GenericTestNode(BaseParserModel):
1063
+ model_config = ConfigDict(
1064
+ extra="forbid",
1065
+ )
1066
+ test_metadata: TestMetadata
1067
+ database: Optional[str] = None
1068
+ schema_: str = Field(..., alias="schema")
1069
+ name: str
1070
+ resource_type: ResourceType6
1071
+ package_name: str
1072
+ path: str
1073
+ original_file_path: str
1074
+ unique_id: str
1075
+ fqn: List[str]
1076
+ alias: str
1077
+ checksum: FileHash
1078
+ config: Optional[TestConfig] = Field(
1079
+ default_factory=lambda: TestConfig.model_validate(
1080
+ {
1081
+ "enabled": True,
1082
+ "alias": None,
1083
+ "schema": "dbt_test__audit",
1084
+ "database": None,
1085
+ "tags": [],
1086
+ "meta": {},
1087
+ "group": None,
1088
+ "materialized": "test",
1089
+ "severity": "ERROR",
1090
+ "store_failures": None,
1091
+ "where": None,
1092
+ "limit": None,
1093
+ "fail_calc": "count(*)",
1094
+ "warn_if": "!= 0",
1095
+ "error_if": "!= 0",
1096
+ }
1097
+ )
1098
+ )
1099
+ tags: Optional[List[str]] = []
1100
+ description: Optional[str] = ""
1101
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1102
+ meta: Optional[Dict[str, Any]] = {}
1103
+ group: Optional[str] = None
1104
+ docs: Optional[Docs] = Field(
1105
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
1106
+ )
1107
+ patch_path: Optional[str] = None
1108
+ build_path: Optional[str] = None
1109
+ deferred: Optional[bool] = False
1110
+ unrendered_config: Optional[Dict[str, Any]] = {}
1111
+ created_at: Optional[float] = 1691439003.399393
1112
+ config_call_dict: Optional[Dict[str, Any]] = {}
1113
+ relation_name: Optional[str] = None
1114
+ raw_code: Optional[str] = ""
1115
+ language: Optional[str] = "sql"
1116
+ refs: Optional[List[RefArgs]] = []
1117
+ sources: Optional[List[List[str]]] = []
1118
+ metrics: Optional[List[List[str]]] = []
1119
+ depends_on: Optional[DependsOn] = Field(
1120
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1121
+ )
1122
+ compiled_path: Optional[str] = None
1123
+ compiled: Optional[bool] = False
1124
+ compiled_code: Optional[str] = None
1125
+ extra_ctes_injected: Optional[bool] = False
1126
+ extra_ctes: Optional[List[InjectedCTE]] = []
1127
+ contract: Optional[Contract] = Field(
1128
+ default_factory=lambda: Contract.model_validate(
1129
+ {"enforced": False, "checksum": None}
1130
+ )
1131
+ )
1132
+ column_name: Optional[str] = None
1133
+ file_key_name: Optional[str] = None
1134
+ attached_node: Optional[str] = None
1135
+
1136
+
1137
+ class SnapshotNode(BaseParserModel):
1138
+ model_config = ConfigDict(
1139
+ extra="forbid",
1140
+ )
1141
+ database: Optional[str] = None
1142
+ schema_: str = Field(..., alias="schema")
1143
+ name: str
1144
+ resource_type: ResourceType7
1145
+ package_name: str
1146
+ path: str
1147
+ original_file_path: str
1148
+ unique_id: str
1149
+ fqn: List[str]
1150
+ alias: str
1151
+ checksum: FileHash
1152
+ config: SnapshotConfig
1153
+ tags: Optional[List[str]] = []
1154
+ description: Optional[str] = ""
1155
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1156
+ meta: Optional[Dict[str, Any]] = {}
1157
+ group: Optional[str] = None
1158
+ docs: Optional[Docs] = Field(
1159
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
1160
+ )
1161
+ patch_path: Optional[str] = None
1162
+ build_path: Optional[str] = None
1163
+ deferred: Optional[bool] = False
1164
+ unrendered_config: Optional[Dict[str, Any]] = {}
1165
+ created_at: Optional[float] = 1691439003.4026701
1166
+ config_call_dict: Optional[Dict[str, Any]] = {}
1167
+ relation_name: Optional[str] = None
1168
+ raw_code: Optional[str] = ""
1169
+ language: Optional[str] = "sql"
1170
+ refs: Optional[List[RefArgs]] = []
1171
+ sources: Optional[List[List[str]]] = []
1172
+ metrics: Optional[List[List[str]]] = []
1173
+ depends_on: Optional[DependsOn] = Field(
1174
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1175
+ )
1176
+ compiled_path: Optional[str] = None
1177
+ compiled: Optional[bool] = False
1178
+ compiled_code: Optional[str] = None
1179
+ extra_ctes_injected: Optional[bool] = False
1180
+ extra_ctes: Optional[List[InjectedCTE]] = []
1181
+ contract: Optional[Contract] = Field(
1182
+ default_factory=lambda: Contract.model_validate(
1183
+ {"enforced": False, "checksum": None}
1184
+ )
1185
+ )
1186
+ defer_relation: Optional[DeferRelation] = None
1187
+
1188
+
1189
+ class SeedNode(BaseParserModel):
1190
+ model_config = ConfigDict(
1191
+ extra="forbid",
1192
+ )
1193
+ database: Optional[str] = None
1194
+ schema_: str = Field(..., alias="schema")
1195
+ name: str
1196
+ resource_type: ResourceType8
1197
+ package_name: str
1198
+ path: str
1199
+ original_file_path: str
1200
+ unique_id: str
1201
+ fqn: List[str]
1202
+ alias: str
1203
+ checksum: FileHash
1204
+ config: Optional[SeedConfig] = Field(
1205
+ default_factory=lambda: SeedConfig.model_validate(
1206
+ {
1207
+ "enabled": True,
1208
+ "alias": None,
1209
+ "schema": None,
1210
+ "database": None,
1211
+ "tags": [],
1212
+ "meta": {},
1213
+ "group": None,
1214
+ "materialized": "seed",
1215
+ "incremental_strategy": None,
1216
+ "persist_docs": {},
1217
+ "quoting": {},
1218
+ "column_types": {},
1219
+ "full_refresh": None,
1220
+ "unique_key": None,
1221
+ "on_schema_change": "ignore",
1222
+ "on_configuration_change": "apply",
1223
+ "grants": {},
1224
+ "packages": [],
1225
+ "docs": {"show": True, "node_color": None},
1226
+ "contract": {"enforced": False},
1227
+ "quote_columns": None,
1228
+ "post-hook": [],
1229
+ "pre-hook": [],
1230
+ }
1231
+ )
1232
+ )
1233
+ tags: Optional[List[str]] = []
1234
+ description: Optional[str] = ""
1235
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1236
+ meta: Optional[Dict[str, Any]] = {}
1237
+ group: Optional[str] = None
1238
+ docs: Optional[Docs] = Field(
1239
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
1240
+ )
1241
+ patch_path: Optional[str] = None
1242
+ build_path: Optional[str] = None
1243
+ deferred: Optional[bool] = False
1244
+ unrendered_config: Optional[Dict[str, Any]] = {}
1245
+ created_at: Optional[float] = 1691439003.4056058
1246
+ config_call_dict: Optional[Dict[str, Any]] = {}
1247
+ relation_name: Optional[str] = None
1248
+ raw_code: Optional[str] = ""
1249
+ root_path: Optional[str] = None
1250
+ depends_on: Optional[MacroDependsOn] = Field(
1251
+ default_factory=lambda: MacroDependsOn.model_validate({"macros": []})
1252
+ )
1253
+ defer_relation: Optional[DeferRelation] = None
1254
+
1255
+
1256
+ class FreshnessThreshold(BaseParserModel):
1257
+ model_config = ConfigDict(
1258
+ extra="forbid",
1259
+ )
1260
+ warn_after: Optional[Time] = {"count": None, "period": None}
1261
+ error_after: Optional[Time] = {"count": None, "period": None}
1262
+ filter: Optional[str] = None
1263
+
1264
+
1265
+ class ExternalTable(BaseParserModel):
1266
+ model_config = ConfigDict(
1267
+ extra="allow",
1268
+ )
1269
+ location: Optional[str] = None
1270
+ file_format: Optional[str] = None
1271
+ row_format: Optional[str] = None
1272
+ tbl_properties: Optional[str] = None
1273
+ partitions: Optional[Union[List[str], List[ExternalPartition]]] = None
1274
+
1275
+
1276
+ class Macro(BaseParserModel):
1277
+ model_config = ConfigDict(
1278
+ extra="forbid",
1279
+ )
1280
+ name: str
1281
+ resource_type: ResourceType10
1282
+ package_name: str
1283
+ path: str
1284
+ original_file_path: str
1285
+ unique_id: str
1286
+ macro_sql: str
1287
+ depends_on: Optional[MacroDependsOn] = Field(
1288
+ default_factory=lambda: MacroDependsOn.model_validate({"macros": []})
1289
+ )
1290
+ description: Optional[str] = ""
1291
+ meta: Optional[Dict[str, Any]] = {}
1292
+ docs: Optional[Docs] = Field(
1293
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
1294
+ )
1295
+ patch_path: Optional[str] = None
1296
+ arguments: Optional[List[MacroArgument]] = []
1297
+ created_at: Optional[float] = 1691439003.409885
1298
+ supported_languages: Optional[List[SupportedLanguage]] = None
1299
+
1300
+
1301
+ class Exposure(BaseParserModel):
1302
+ model_config = ConfigDict(
1303
+ extra="forbid",
1304
+ )
1305
+ name: str
1306
+ resource_type: ResourceType12
1307
+ package_name: str
1308
+ path: str
1309
+ original_file_path: str
1310
+ unique_id: str
1311
+ fqn: List[str]
1312
+ type: Type2
1313
+ owner: Owner
1314
+ description: Optional[str] = ""
1315
+ label: Optional[str] = None
1316
+ maturity: Optional[Maturity] = None
1317
+ meta: Optional[Dict[str, Any]] = {}
1318
+ tags: Optional[List[str]] = []
1319
+ config: Optional[ExposureConfig] = Field(
1320
+ default_factory=lambda: ExposureConfig.model_validate({"enabled": True})
1321
+ )
1322
+ unrendered_config: Optional[Dict[str, Any]] = {}
1323
+ url: Optional[str] = None
1324
+ depends_on: Optional[DependsOn] = Field(
1325
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1326
+ )
1327
+ refs: Optional[List[RefArgs]] = []
1328
+ sources: Optional[List[List[str]]] = []
1329
+ metrics: Optional[List[List[str]]] = []
1330
+ created_at: Optional[float] = 1691439003.411563
1331
+
1332
+
1333
+ class MetricInputMeasure(BaseParserModel):
1334
+ model_config = ConfigDict(
1335
+ extra="forbid",
1336
+ )
1337
+ name: str
1338
+ filter: Optional[WhereFilter] = None
1339
+ alias: Optional[str] = None
1340
+
1341
+
1342
+ class MetricInput(BaseParserModel):
1343
+ model_config = ConfigDict(
1344
+ extra="forbid",
1345
+ )
1346
+ name: str
1347
+ filter: Optional[WhereFilter] = None
1348
+ alias: Optional[str] = None
1349
+ offset_window: Optional[MetricTimeWindow] = None
1350
+ offset_to_grain: Optional[OffsetToGrain] = None
1351
+
1352
+
1353
+ class SourceFileMetadata(BaseParserModel):
1354
+ model_config = ConfigDict(
1355
+ extra="forbid",
1356
+ )
1357
+ repo_file_path: str
1358
+ file_slice: FileSlice
1359
+
1360
+
1361
+ class Measure(BaseParserModel):
1362
+ model_config = ConfigDict(
1363
+ extra="forbid",
1364
+ )
1365
+ name: str
1366
+ agg: Agg
1367
+ description: Optional[str] = None
1368
+ create_metric: Optional[bool] = False
1369
+ expr: Optional[str] = None
1370
+ agg_params: Optional[MeasureAggregationParameters] = None
1371
+ non_additive_dimension: Optional[NonAdditiveDimension] = None
1372
+ agg_time_dimension: Optional[str] = None
1373
+
1374
+
1375
+ class DimensionTypeParams(BaseParserModel):
1376
+ model_config = ConfigDict(
1377
+ extra="forbid",
1378
+ )
1379
+ time_granularity: TimeGranularity
1380
+ validity_params: Optional[DimensionValidityParams] = None
1381
+
1382
+
1383
+ class AnalysisNode(BaseParserModel):
1384
+ model_config = ConfigDict(
1385
+ extra="forbid",
1386
+ )
1387
+ database: Optional[str] = None
1388
+ schema_: str = Field(..., alias="schema")
1389
+ name: str
1390
+ resource_type: ResourceType
1391
+ package_name: str
1392
+ path: str
1393
+ original_file_path: str
1394
+ unique_id: str
1395
+ fqn: List[str]
1396
+ alias: str
1397
+ checksum: FileHash
1398
+ config: Optional[NodeConfig] = Field(
1399
+ default_factory=lambda: NodeConfig.model_validate(
1400
+ {
1401
+ "enabled": True,
1402
+ "alias": None,
1403
+ "schema": None,
1404
+ "database": None,
1405
+ "tags": [],
1406
+ "meta": {},
1407
+ "group": None,
1408
+ "materialized": "view",
1409
+ "incremental_strategy": None,
1410
+ "persist_docs": {},
1411
+ "quoting": {},
1412
+ "column_types": {},
1413
+ "full_refresh": None,
1414
+ "unique_key": None,
1415
+ "on_schema_change": "ignore",
1416
+ "on_configuration_change": "apply",
1417
+ "grants": {},
1418
+ "packages": [],
1419
+ "docs": {"show": True, "node_color": None},
1420
+ "contract": {"enforced": False},
1421
+ "post-hook": [],
1422
+ "pre-hook": [],
1423
+ }
1424
+ )
1425
+ )
1426
+ tags: Optional[List[str]] = []
1427
+ description: Optional[str] = ""
1428
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1429
+ meta: Optional[Dict[str, Any]] = {}
1430
+ group: Optional[str] = None
1431
+ docs: Optional[Docs] = Field(
1432
+ default_factory=lambda: Docs.model_validate({"show": True, "node_color": None})
1433
+ )
1434
+ patch_path: Optional[str] = None
1435
+ build_path: Optional[str] = None
1436
+ deferred: Optional[bool] = False
1437
+ unrendered_config: Optional[Dict[str, Any]] = {}
1438
+ created_at: Optional[float] = 1691439003.386713
1439
+ config_call_dict: Optional[Dict[str, Any]] = {}
1440
+ relation_name: Optional[str] = None
1441
+ raw_code: Optional[str] = ""
1442
+ language: Optional[str] = "sql"
1443
+ refs: Optional[List[RefArgs]] = []
1444
+ sources: Optional[List[List[str]]] = []
1445
+ metrics: Optional[List[List[str]]] = []
1446
+ depends_on: Optional[DependsOn] = Field(
1447
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1448
+ )
1449
+ compiled_path: Optional[str] = None
1450
+ compiled: Optional[bool] = False
1451
+ compiled_code: Optional[str] = None
1452
+ extra_ctes_injected: Optional[bool] = False
1453
+ extra_ctes: Optional[List[InjectedCTE]] = []
1454
+ contract: Optional[Contract] = Field(
1455
+ default_factory=lambda: Contract.model_validate(
1456
+ {"enforced": False, "checksum": None}
1457
+ )
1458
+ )
1459
+
1460
+
1461
+ class SourceDefinition(BaseParserModel):
1462
+ model_config = ConfigDict(
1463
+ extra="forbid",
1464
+ )
1465
+ database: Optional[str] = None
1466
+ schema_: str = Field(..., alias="schema")
1467
+ name: str
1468
+ resource_type: ResourceType9
1469
+ package_name: str
1470
+ path: str
1471
+ original_file_path: str
1472
+ unique_id: str
1473
+ fqn: List[str]
1474
+ source_name: str
1475
+ source_description: str
1476
+ loader: str
1477
+ identifier: str
1478
+ quoting: Optional[Quoting] = Field(
1479
+ default_factory=lambda: Quoting.model_validate(
1480
+ {"database": None, "schema": None, "identifier": None, "column": None}
1481
+ )
1482
+ )
1483
+ loaded_at_field: Optional[str] = None
1484
+ freshness: Optional[FreshnessThreshold] = None
1485
+ external: Optional[ExternalTable] = None
1486
+ description: Optional[str] = ""
1487
+ columns: Optional[Dict[str, ColumnInfo]] = {}
1488
+ meta: Optional[Dict[str, Any]] = {}
1489
+ source_meta: Optional[Dict[str, Any]] = {}
1490
+ tags: Optional[List[str]] = []
1491
+ config: Optional[SourceConfig] = Field(
1492
+ default_factory=lambda: SourceConfig.model_validate({"enabled": True})
1493
+ )
1494
+ patch_path: Optional[str] = None
1495
+ unrendered_config: Optional[Dict[str, Any]] = {}
1496
+ relation_name: Optional[str] = None
1497
+ created_at: Optional[float] = 1691439003.408927
1498
+
1499
+
1500
+ class MetricTypeParams(BaseParserModel):
1501
+ model_config = ConfigDict(
1502
+ extra="forbid",
1503
+ )
1504
+ measure: Optional[MetricInputMeasure] = None
1505
+ input_measures: Optional[List[MetricInputMeasure]] = []
1506
+ numerator: Optional[MetricInput] = None
1507
+ denominator: Optional[MetricInput] = None
1508
+ expr: Optional[str] = None
1509
+ window: Optional[MetricTimeWindow] = None
1510
+ grain_to_date: Optional[GrainToDate] = None
1511
+ metrics: Optional[List[MetricInput]] = None
1512
+
1513
+
1514
+ class Dimension(BaseParserModel):
1515
+ model_config = ConfigDict(
1516
+ extra="forbid",
1517
+ )
1518
+ name: str
1519
+ type: Type5
1520
+ description: Optional[str] = None
1521
+ is_partition: Optional[bool] = False
1522
+ type_params: Optional[DimensionTypeParams] = None
1523
+ expr: Optional[str] = None
1524
+ metadata: Optional[SourceFileMetadata] = None
1525
+
1526
+
1527
+ class Metric(BaseParserModel):
1528
+ model_config = ConfigDict(
1529
+ extra="forbid",
1530
+ )
1531
+ name: str
1532
+ resource_type: ResourceType13
1533
+ package_name: str
1534
+ path: str
1535
+ original_file_path: str
1536
+ unique_id: str
1537
+ fqn: List[str]
1538
+ description: str
1539
+ label: str
1540
+ type: Type3
1541
+ type_params: MetricTypeParams
1542
+ filter: Optional[WhereFilter] = None
1543
+ metadata: Optional[SourceFileMetadata] = None
1544
+ meta: Optional[Dict[str, Any]] = {}
1545
+ tags: Optional[List[str]] = []
1546
+ config: Optional[MetricConfig] = Field(
1547
+ default_factory=lambda: MetricConfig.model_validate(
1548
+ {"enabled": True, "group": None}
1549
+ )
1550
+ )
1551
+ unrendered_config: Optional[Dict[str, Any]] = {}
1552
+ sources: Optional[List[List[str]]] = []
1553
+ depends_on: Optional[DependsOn] = Field(
1554
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1555
+ )
1556
+ refs: Optional[List[RefArgs]] = []
1557
+ metrics: Optional[List[List[str]]] = []
1558
+ created_at: Optional[float] = 1691439003.41419
1559
+ group: Optional[str] = None
1560
+
1561
+
1562
+ class SemanticModel(BaseParserModel):
1563
+ model_config = ConfigDict(
1564
+ extra="forbid",
1565
+ )
1566
+ name: str
1567
+ resource_type: ResourceType15
1568
+ package_name: str
1569
+ path: str
1570
+ original_file_path: str
1571
+ unique_id: str
1572
+ fqn: List[str]
1573
+ model: str
1574
+ node_relation: Optional[NodeRelation] = None
1575
+ description: Optional[str] = None
1576
+ defaults: Optional[Defaults] = None
1577
+ entities: Optional[List[Entity]] = []
1578
+ measures: Optional[List[Measure]] = []
1579
+ dimensions: Optional[List[Dimension]] = []
1580
+ metadata: Optional[SourceFileMetadata] = None
1581
+ depends_on: Optional[DependsOn] = Field(
1582
+ default_factory=lambda: DependsOn.model_validate({"macros": [], "nodes": []})
1583
+ )
1584
+ refs: Optional[List[RefArgs]] = []
1585
+ created_at: Optional[float] = 1691439003.4182558
1586
+ config: Optional[SemanticModelConfig] = Field(
1587
+ default_factory=lambda: SemanticModelConfig.model_validate({"enabled": True})
1588
+ )
1589
+ primary_entity: Optional[str] = None
1590
+
1591
+
1592
+ class ManifestV10(BaseParserModel):
1593
+ model_config = ConfigDict(
1594
+ extra="forbid",
1595
+ )
1596
+ metadata: ManifestMetadata = Field(..., description="Metadata about the manifest")
1597
+ nodes: Dict[
1598
+ str,
1599
+ Union[
1600
+ AnalysisNode,
1601
+ SingularTestNode,
1602
+ HookNode,
1603
+ ModelNode,
1604
+ RPCNode,
1605
+ SqlNode,
1606
+ GenericTestNode,
1607
+ SnapshotNode,
1608
+ SeedNode,
1609
+ ],
1610
+ ] = Field(
1611
+ ..., description="The nodes defined in the dbt project and its dependencies"
1612
+ )
1613
+ sources: Dict[str, SourceDefinition] = Field(
1614
+ ..., description="The sources defined in the dbt project and its dependencies"
1615
+ )
1616
+ macros: Dict[str, Macro] = Field(
1617
+ ..., description="The macros defined in the dbt project and its dependencies"
1618
+ )
1619
+ docs: Dict[str, Documentation] = Field(
1620
+ ..., description="The docs defined in the dbt project and its dependencies"
1621
+ )
1622
+ exposures: Dict[str, Exposure] = Field(
1623
+ ..., description="The exposures defined in the dbt project and its dependencies"
1624
+ )
1625
+ metrics: Dict[str, Metric] = Field(
1626
+ ..., description="The metrics defined in the dbt project and its dependencies"
1627
+ )
1628
+ groups: Dict[str, Group] = Field(
1629
+ ..., description="The groups defined in the dbt project"
1630
+ )
1631
+ selectors: Dict[str, Any] = Field(
1632
+ ..., description="The selectors defined in selectors.yml"
1633
+ )
1634
+ disabled: Optional[
1635
+ Dict[
1636
+ str,
1637
+ List[
1638
+ Union[
1639
+ AnalysisNode,
1640
+ SingularTestNode,
1641
+ HookNode,
1642
+ ModelNode,
1643
+ RPCNode,
1644
+ SqlNode,
1645
+ GenericTestNode,
1646
+ SnapshotNode,
1647
+ SeedNode,
1648
+ SourceDefinition,
1649
+ Exposure,
1650
+ Metric,
1651
+ SemanticModel,
1652
+ ]
1653
+ ],
1654
+ ]
1655
+ ] = Field(None, description="A mapping of the disabled nodes in the target")
1656
+ parent_map: Optional[Dict[str, List[str]]] = Field(
1657
+ None, description="A mapping from\xa0child nodes to their dependencies"
1658
+ )
1659
+ child_map: Optional[Dict[str, List[str]]] = Field(
1660
+ None, description="A mapping from parent nodes to their dependents"
1661
+ )
1662
+ group_map: Optional[Dict[str, List[str]]] = Field(
1663
+ None, description="A mapping from group names to their nodes"
1664
+ )
1665
+ semantic_models: Dict[str, SemanticModel] = Field(
1666
+ ..., description="The semantic models defined in the dbt project"
1667
+ )