acceldata-sdk-python 26.7.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 (303) hide show
  1. acceldata/__init__.py +7 -0
  2. acceldata/client/__init__.py +0 -0
  3. acceldata/client/adoc_client.py +666 -0
  4. acceldata/client/http_client.py +346 -0
  5. acceldata/client/transient_retry.py +142 -0
  6. acceldata/constants/__init__.py +1 -0
  7. acceldata/constants/constants.py +13 -0
  8. acceldata/exceptions/__init__.py +52 -0
  9. acceldata/exceptions/api_errors.py +85 -0
  10. acceldata/exceptions/exceptions.py +174 -0
  11. acceldata/exceptions/sdk_exceptions.py +98 -0
  12. acceldata/mappers/__init__.py +21 -0
  13. acceldata/mappers/catalog_executions.py +107 -0
  14. acceldata/models/__init__.py +0 -0
  15. acceldata/models/api/catalog/above_configs.py +99 -0
  16. acceldata/models/api/catalog/above_configs_success.py +138 -0
  17. acceldata/models/api/catalog/absolute_configs.py +197 -0
  18. acceldata/models/api/catalog/absolute_configs_fallback.py +101 -0
  19. acceldata/models/api/catalog/absolute_threshold_config.py +105 -0
  20. acceldata/models/api/catalog/analysis_job_context.py +102 -0
  21. acceldata/models/api/catalog/analytics_pipeline.py +385 -0
  22. acceldata/models/api/catalog/analytics_pipeline_endpoint.py +136 -0
  23. acceldata/models/api/catalog/anomaly_config.py +95 -0
  24. acceldata/models/api/catalog/anomaly_details.py +119 -0
  25. acceldata/models/api/catalog/anomaly_threshold_config.py +105 -0
  26. acceldata/models/api/catalog/artifact.py +92 -0
  27. acceldata/models/api/catalog/assembly.py +171 -0
  28. acceldata/models/api/catalog/asset.py +162 -0
  29. acceldata/models/api/catalog/asset_catalog_listing.py +159 -0
  30. acceldata/models/api/catalog/asset_catalog_listing_response.py +102 -0
  31. acceldata/models/api/catalog/asset_label_request.py +96 -0
  32. acceldata/models/api/catalog/asset_progress.py +96 -0
  33. acceldata/models/api/catalog/asset_progress_details.py +117 -0
  34. acceldata/models/api/catalog/asset_tag.py +124 -0
  35. acceldata/models/api/catalog/asset_tag_info.py +140 -0
  36. acceldata/models/api/catalog/asset_tag_request.py +95 -0
  37. acceldata/models/api/catalog/asset_tag_response.py +96 -0
  38. acceldata/models/api/catalog/asset_tags_response.py +102 -0
  39. acceldata/models/api/catalog/asset_type.py +96 -0
  40. acceldata/models/api/catalog/auto_anomaly_feature_analysis.py +160 -0
  41. acceldata/models/api/catalog/auto_anomaly_item_execution.py +133 -0
  42. acceldata/models/api/catalog/auto_anomaly_meta_data.py +162 -0
  43. acceldata/models/api/catalog/auto_anomaly_rule_execution.py +102 -0
  44. acceldata/models/api/catalog/auto_anomaly_summary.py +124 -0
  45. acceldata/models/api/catalog/backing_asset.py +126 -0
  46. acceldata/models/api/catalog/below_configs.py +99 -0
  47. acceldata/models/api/catalog/big_decimal.py +100 -0
  48. acceldata/models/api/catalog/big_integer.py +98 -0
  49. acceldata/models/api/catalog/bounds_date_time_marker_config.py +110 -0
  50. acceldata/models/api/catalog/bounds_file_event_marker_config.py +108 -0
  51. acceldata/models/api/catalog/bounds_id_marker_config.py +96 -0
  52. acceldata/models/api/catalog/catalog_asset_meta_data.py +128 -0
  53. acceldata/models/api/catalog/changes_by_config.py +105 -0
  54. acceldata/models/api/catalog/column_mapping.py +139 -0
  55. acceldata/models/api/catalog/column_metadata.py +90 -0
  56. acceldata/models/api/catalog/column_metric_with_anomaly_details.py +119 -0
  57. acceldata/models/api/catalog/column_variable.py +111 -0
  58. acceldata/models/api/catalog/composite_policy_execution.py +102 -0
  59. acceldata/models/api/catalog/composite_policy_item_execution.py +104 -0
  60. acceldata/models/api/catalog/connection.py +118 -0
  61. acceldata/models/api/catalog/connection_test_result.py +106 -0
  62. acceldata/models/api/catalog/connection_type.py +90 -0
  63. acceldata/models/api/catalog/connection_types_response.py +96 -0
  64. acceldata/models/api/catalog/crawler.py +88 -0
  65. acceldata/models/api/catalog/crawler_action_response.py +90 -0
  66. acceldata/models/api/catalog/crawler_execution.py +147 -0
  67. acceldata/models/api/catalog/crawler_execution_response.py +102 -0
  68. acceldata/models/api/catalog/crawler_status_response.py +90 -0
  69. acceldata/models/api/catalog/create_profile.py +194 -0
  70. acceldata/models/api/catalog/custom_sql_config.py +121 -0
  71. acceldata/models/api/catalog/data_bricks_spark_resource_config.py +104 -0
  72. acceldata/models/api/catalog/data_cadence_rule.py +236 -0
  73. acceldata/models/api/catalog/data_cadence_rule_details.py +125 -0
  74. acceldata/models/api/catalog/data_cadence_rule_execution.py +102 -0
  75. acceldata/models/api/catalog/data_cadence_rule_item.py +104 -0
  76. acceldata/models/api/catalog/data_cadence_rule_item_execution.py +158 -0
  77. acceldata/models/api/catalog/data_cadence_rule_response.py +98 -0
  78. acceldata/models/api/catalog/data_drift_execution.py +102 -0
  79. acceldata/models/api/catalog/data_drift_item_execution.py +121 -0
  80. acceldata/models/api/catalog/data_quality_engine.py +90 -0
  81. acceldata/models/api/catalog/data_quality_execution.py +106 -0
  82. acceldata/models/api/catalog/data_quality_rule.py +323 -0
  83. acceldata/models/api/catalog/data_quality_rule_details.py +186 -0
  84. acceldata/models/api/catalog/data_quality_rule_response.py +120 -0
  85. acceldata/models/api/catalog/data_quality_rules_response.py +102 -0
  86. acceldata/models/api/catalog/databricks_compute_config.py +113 -0
  87. acceldata/models/api/catalog/dataplane_engine.py +105 -0
  88. acceldata/models/api/catalog/dataplane_health_metrics.py +101 -0
  89. acceldata/models/api/catalog/dataplane_job.py +216 -0
  90. acceldata/models/api/catalog/dataplane_job_status.py +113 -0
  91. acceldata/models/api/catalog/dataplane_request.py +96 -0
  92. acceldata/models/api/catalog/dataproc_compute_config.py +106 -0
  93. acceldata/models/api/catalog/dataproc_spark_resource_config.py +104 -0
  94. acceldata/models/api/catalog/date_based_partition_marker_config.py +116 -0
  95. acceldata/models/api/catalog/date_partitioning_marker_config.py +113 -0
  96. acceldata/models/api/catalog/date_time_marker_config.py +109 -0
  97. acceldata/models/api/catalog/day_month_year_based_partition_marker_config.py +124 -0
  98. acceldata/models/api/catalog/decreased_by_config.py +105 -0
  99. acceldata/models/api/catalog/delete_artifact_response.py +88 -0
  100. acceldata/models/api/catalog/dq_rule_execution.py +248 -0
  101. acceldata/models/api/catalog/drift.py +121 -0
  102. acceldata/models/api/catalog/enable_rule_request.py +88 -0
  103. acceldata/models/api/catalog/engine.py +90 -0
  104. acceldata/models/api/catalog/execution_cancellation_response.py +92 -0
  105. acceldata/models/api/catalog/execution_response.py +144 -0
  106. acceldata/models/api/catalog/execution_result.py +126 -0
  107. acceldata/models/api/catalog/executions_response.py +102 -0
  108. acceldata/models/api/catalog/failed_asset_detail.py +90 -0
  109. acceldata/models/api/catalog/failed_summary.py +98 -0
  110. acceldata/models/api/catalog/file.py +94 -0
  111. acceldata/models/api/catalog/file_marker_config.py +99 -0
  112. acceldata/models/api/catalog/generic_config_fallback.py +101 -0
  113. acceldata/models/api/catalog/generic_execution.py +221 -0
  114. acceldata/models/api/catalog/generic_rule_execution.py +137 -0
  115. acceldata/models/api/catalog/global_storage_config_dto.py +172 -0
  116. acceldata/models/api/catalog/hosted_dp_deployment_response.py +98 -0
  117. acceldata/models/api/catalog/id_marker_config.py +94 -0
  118. acceldata/models/api/catalog/increased_by_config.py +105 -0
  119. acceldata/models/api/catalog/item.py +160 -0
  120. acceldata/models/api/catalog/item_execution.py +192 -0
  121. acceldata/models/api/catalog/item_segment.py +131 -0
  122. acceldata/models/api/catalog/job_schedule.py +118 -0
  123. acceldata/models/api/catalog/job_spec.py +96 -0
  124. acceldata/models/api/catalog/kubernetes_metrics.py +91 -0
  125. acceldata/models/api/catalog/label.py +97 -0
  126. acceldata/models/api/catalog/livy_compute_config.py +103 -0
  127. acceldata/models/api/catalog/livy_spark_resource_config.py +106 -0
  128. acceldata/models/api/catalog/look_back_config.py +90 -0
  129. acceldata/models/api/catalog/manual_tag_request.py +92 -0
  130. acceldata/models/api/catalog/mapping.py +97 -0
  131. acceldata/models/api/catalog/marker.py +88 -0
  132. acceldata/models/api/catalog/marker_config.py +349 -0
  133. acceldata/models/api/catalog/marker_config_fallback.py +101 -0
  134. acceldata/models/api/catalog/meta.py +92 -0
  135. acceldata/models/api/catalog/meta_data.py +92 -0
  136. acceldata/models/api/catalog/meta_data_item.py +94 -0
  137. acceldata/models/api/catalog/mini_profile_request.py +112 -0
  138. acceldata/models/api/catalog/notification_payload.py +114 -0
  139. acceldata/models/api/catalog/offset_based_marker_config.py +97 -0
  140. acceldata/models/api/catalog/operational_config.py +92 -0
  141. acceldata/models/api/catalog/pattern_configuration.py +90 -0
  142. acceldata/models/api/catalog/pipe_line_request.py +92 -0
  143. acceldata/models/api/catalog/pipeline_compute_config.py +110 -0
  144. acceldata/models/api/catalog/policy_execution_marker_config.py +94 -0
  145. acceldata/models/api/catalog/policy_execution_request.py +229 -0
  146. acceldata/models/api/catalog/policy_group.py +114 -0
  147. acceldata/models/api/catalog/policy_transform_udf.py +113 -0
  148. acceldata/models/api/catalog/process_metrics.py +91 -0
  149. acceldata/models/api/catalog/profile_anomaly_details_response.py +109 -0
  150. acceldata/models/api/catalog/profile_anomaly_item_execution.py +127 -0
  151. acceldata/models/api/catalog/profile_anomaly_rule_execution.py +102 -0
  152. acceldata/models/api/catalog/profile_anomaly_rule_item.py +109 -0
  153. acceldata/models/api/catalog/profile_cancellation_response.py +92 -0
  154. acceldata/models/api/catalog/profile_request.py +211 -0
  155. acceldata/models/api/catalog/profile_request_response.py +92 -0
  156. acceldata/models/api/catalog/property_template.py +178 -0
  157. acceldata/models/api/catalog/property_templates.py +123 -0
  158. acceldata/models/api/catalog/pub_sub_lookback_marker_config.py +96 -0
  159. acceldata/models/api/catalog/pub_sub_timestamp_marker_config.py +108 -0
  160. acceldata/models/api/catalog/quality_rule.py +381 -0
  161. acceldata/models/api/catalog/quality_rule_execution_metrics.py +114 -0
  162. acceldata/models/api/catalog/quality_rule_with_latest_execution.py +115 -0
  163. acceldata/models/api/catalog/range_configs.py +109 -0
  164. acceldata/models/api/catalog/reconciliation_item.py +102 -0
  165. acceldata/models/api/catalog/reconciliation_item_execution.py +157 -0
  166. acceldata/models/api/catalog/reconciliation_rule.py +339 -0
  167. acceldata/models/api/catalog/reconciliation_rule_details.py +225 -0
  168. acceldata/models/api/catalog/reconciliation_rule_execution.py +102 -0
  169. acceldata/models/api/catalog/reconciliation_rule_response.py +98 -0
  170. acceldata/models/api/catalog/reconciliation_rules_response.py +102 -0
  171. acceldata/models/api/catalog/relative_config.py +197 -0
  172. acceldata/models/api/catalog/relative_config_fallback.py +101 -0
  173. acceldata/models/api/catalog/relative_threshold_config.py +111 -0
  174. acceldata/models/api/catalog/root_cause_analysis.py +108 -0
  175. acceldata/models/api/catalog/rule_execution.py +327 -0
  176. acceldata/models/api/catalog/rule_execution_result.py +90 -0
  177. acceldata/models/api/catalog/rule_item_result.py +125 -0
  178. acceldata/models/api/catalog/rule_meta_data.py +94 -0
  179. acceldata/models/api/catalog/rule_spark_sql_dynamic_filter_variable_mapping.py +100 -0
  180. acceldata/models/api/catalog/rule_tag.py +101 -0
  181. acceldata/models/api/catalog/rule_threshold_configuration.py +236 -0
  182. acceldata/models/api/catalog/rule_threshold_configuration_fallback.py +101 -0
  183. acceldata/models/api/catalog/rules_with_latest_execution_response.py +102 -0
  184. acceldata/models/api/catalog/sample_data_api_response.py +122 -0
  185. acceldata/models/api/catalog/schema_drift_item_execution.py +131 -0
  186. acceldata/models/api/catalog/schema_drift_rule_execution.py +102 -0
  187. acceldata/models/api/catalog/secret_manager_configuration.py +90 -0
  188. acceldata/models/api/catalog/secret_manager_configuration_with_option.py +98 -0
  189. acceldata/models/api/catalog/security_config.py +90 -0
  190. acceldata/models/api/catalog/segment_metric_json.py +142 -0
  191. acceldata/models/api/catalog/segments_analysis.py +145 -0
  192. acceldata/models/api/catalog/short_segment.py +97 -0
  193. acceldata/models/api/catalog/simple_quality_rule_response.py +92 -0
  194. acceldata/models/api/catalog/snapshot_data.py +117 -0
  195. acceldata/models/api/catalog/source_model.py +90 -0
  196. acceldata/models/api/catalog/source_type.py +100 -0
  197. acceldata/models/api/catalog/source_types_response.py +102 -0
  198. acceldata/models/api/catalog/spark_job_status.py +113 -0
  199. acceldata/models/api/catalog/spark_resource_config.py +114 -0
  200. acceldata/models/api/catalog/standard_response_assembly.py +92 -0
  201. acceldata/models/api/catalog/standard_response_crawler_action_response.py +92 -0
  202. acceldata/models/api/catalog/standard_response_crawler_status_response.py +92 -0
  203. acceldata/models/api/catalog/standard_response_delete_artifact_response.py +92 -0
  204. acceldata/models/api/catalog/standard_response_list.py +96 -0
  205. acceldata/models/api/catalog/standard_response_map.py +88 -0
  206. acceldata/models/api/catalog/standard_response_meta_data.py +92 -0
  207. acceldata/models/api/catalog/standard_response_mini_profile_request.py +92 -0
  208. acceldata/models/api/catalog/standard_response_profile_request.py +92 -0
  209. acceldata/models/api/catalog/start_profiling_request.py +92 -0
  210. acceldata/models/api/catalog/tag_domain.py +116 -0
  211. acceldata/models/api/catalog/threshold_breach_details.py +101 -0
  212. acceldata/models/api/catalog/time_based_config.py +92 -0
  213. acceldata/models/api/catalog/time_based_threshold_config.py +105 -0
  214. acceldata/models/api/catalog/timestamp_based_marker_config.py +115 -0
  215. acceldata/models/api/catalog/udf_variable.py +97 -0
  216. acceldata/models/api/catalog/yunikorn_compute_config.py +133 -0
  217. acceldata/models/api/catalog/yunikorn_spark_resource_config.py +154 -0
  218. acceldata/models/api/pipeline/big_decimal.py +100 -0
  219. acceldata/models/api/pipeline/big_integer.py +98 -0
  220. acceldata/models/api/pipeline/child_span_response.py +96 -0
  221. acceldata/models/api/pipeline/create_span_event.py +109 -0
  222. acceldata/models/api/pipeline/edge.py +108 -0
  223. acceldata/models/api/pipeline/event_alert_object.py +95 -0
  224. acceldata/models/api/pipeline/generic_config_fallback.py +101 -0
  225. acceldata/models/api/pipeline/identifier.py +146 -0
  226. acceldata/models/api/pipeline/job_request.py +130 -0
  227. acceldata/models/api/pipeline/meta.py +107 -0
  228. acceldata/models/api/pipeline/meta_data.py +92 -0
  229. acceldata/models/api/pipeline/metric.py +103 -0
  230. acceldata/models/api/pipeline/node.py +201 -0
  231. acceldata/models/api/pipeline/node_response.py +92 -0
  232. acceldata/models/api/pipeline/notification_payload.py +114 -0
  233. acceldata/models/api/pipeline/pipeline.py +152 -0
  234. acceldata/models/api/pipeline/pipeline_baseline_metric.py +92 -0
  235. acceldata/models/api/pipeline/pipeline_details.py +118 -0
  236. acceldata/models/api/pipeline/pipeline_details_response.py +102 -0
  237. acceldata/models/api/pipeline/pipeline_input_request.py +92 -0
  238. acceldata/models/api/pipeline/pipeline_listing_info.py +118 -0
  239. acceldata/models/api/pipeline/pipeline_response.py +92 -0
  240. acceldata/models/api/pipeline/pipeline_run.py +136 -0
  241. acceldata/models/api/pipeline/pipeline_run_request.py +92 -0
  242. acceldata/models/api/pipeline/pipeline_runs_response.py +102 -0
  243. acceldata/models/api/pipeline/pipeline_summary.py +98 -0
  244. acceldata/models/api/pipeline/pipelines_listing_response.py +102 -0
  245. acceldata/models/api/pipeline/policy_summary.py +102 -0
  246. acceldata/models/api/pipeline/span.py +115 -0
  247. acceldata/models/api/pipeline/span_event.py +114 -0
  248. acceldata/models/api/pipeline/span_event_request.py +92 -0
  249. acceldata/models/api/pipeline/span_event_response.py +92 -0
  250. acceldata/models/api/pipeline/span_request.py +94 -0
  251. acceldata/models/api/pipeline/spans_response.py +96 -0
  252. acceldata/models/api/pipeline/tag.py +97 -0
  253. acceldata/models/sdk/__init__.py +0 -0
  254. acceldata/models/sdk/catalog/__init__.py +105 -0
  255. acceldata/models/sdk/catalog/asset_resource.py +112 -0
  256. acceldata/models/sdk/catalog/asset_source_type.py +59 -0
  257. acceldata/models/sdk/catalog/custom_asset_metadata.py +11 -0
  258. acceldata/models/sdk/catalog/datasource_resource.py +88 -0
  259. acceldata/models/sdk/catalog/executor.py +524 -0
  260. acceldata/models/sdk/catalog/policy_execution_request.py +114 -0
  261. acceldata/models/sdk/catalog/policy_execution_type.py +16 -0
  262. acceldata/models/sdk/catalog/policy_filter.py +94 -0
  263. acceldata/models/sdk/catalog/policy_rule_resources.py +388 -0
  264. acceldata/models/sdk/catalog/profile_request_resource.py +77 -0
  265. acceldata/models/sdk/catalog/profiling.py +82 -0
  266. acceldata/models/sdk/catalog/profiling_configuration_error.py +5 -0
  267. acceldata/models/sdk/pipeline/__init__.py +62 -0
  268. acceldata/models/sdk/pipeline/create_job_input.py +108 -0
  269. acceldata/models/sdk/pipeline/create_pipeline_input_request.py +72 -0
  270. acceldata/models/sdk/pipeline/events/__init__.py +5 -0
  271. acceldata/models/sdk/pipeline/events/generic_event.py +31 -0
  272. acceldata/models/sdk/pipeline/events/log_event.py +34 -0
  273. acceldata/models/sdk/pipeline/events/span_event.py +8 -0
  274. acceldata/models/sdk/pipeline/pipeline_resource.py +171 -0
  275. acceldata/models/sdk/pipeline/pipeline_run_input.py +84 -0
  276. acceldata/models/sdk/pipeline/pipeline_run_resource.py +208 -0
  277. acceldata/models/sdk/pipeline/pipeline_source_type.py +20 -0
  278. acceldata/models/sdk/pipeline/span_resource.py +327 -0
  279. acceldata/openapi_deserialization_patches.py +161 -0
  280. acceldata/openapi_repr_patches.py +62 -0
  281. acceldata/services/__init__.py +0 -0
  282. acceldata/services/api_timestamp.py +31 -0
  283. acceldata/services/asset_service.py +651 -0
  284. acceldata/services/datasource_service.py +120 -0
  285. acceldata/services/generic_service.py +132 -0
  286. acceldata/services/marker_config.py +232 -0
  287. acceldata/services/pipeline_big_decimal_api.py +102 -0
  288. acceldata/services/pipeline_response_parse.py +209 -0
  289. acceldata/services/pipeline_service.py +494 -0
  290. acceldata/services/rule_service.py +620 -0
  291. acceldata/urls/__init__.py +1 -0
  292. acceldata/urls/catalog_urls.py +137 -0
  293. acceldata/urls/pipeline_urls.py +55 -0
  294. acceldata/utils/__init__.py +6 -0
  295. acceldata/utils/datetime_utils.py +16 -0
  296. acceldata/utils/operation_ack.py +22 -0
  297. acceldata/utils/span_helpers.py +95 -0
  298. acceldata/utils/time_range_utils.py +90 -0
  299. acceldata_sdk_python-26.7.0.dist-info/METADATA +26 -0
  300. acceldata_sdk_python-26.7.0.dist-info/RECORD +303 -0
  301. acceldata_sdk_python-26.7.0.dist-info/WHEEL +5 -0
  302. acceldata_sdk_python-26.7.0.dist-info/licenses/LICENSE +22 -0
  303. acceldata_sdk_python-26.7.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,109 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Catalog Control Plane API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class DateTimeMarkerConfig(BaseModel):
27
+ """
28
+ DateTimeMarkerConfig
29
+ """ # noqa: E501
30
+ base_asset_id: Optional[StrictInt] = Field(default=None, alias="baseAssetId")
31
+ date_column_name: StrictStr = Field(alias="dateColumnName")
32
+ format: StrictStr
33
+ initial_offset: Optional[StrictStr] = Field(default=None, alias="initialOffset")
34
+ offset: StrictInt
35
+ round_end_date: StrictBool = Field(alias="roundEndDate")
36
+ time_frequency: StrictStr = Field(description="Allowed values at generation time: HOURLY, DAILY, WEEKLY, MONTHLY, QUARTERLY, YEARLY.", alias="timeFrequency")
37
+ time_zone_id: StrictStr = Field(alias="timeZoneId")
38
+ type: StrictStr
39
+ __properties: ClassVar[List[str]] = ["baseAssetId", "dateColumnName", "format", "initialOffset", "offset", "roundEndDate", "timeFrequency", "timeZoneId", "type"]
40
+
41
+ model_config = ConfigDict(
42
+ validate_by_name=True,
43
+ validate_by_alias=True,
44
+ validate_assignment=True,
45
+ protected_namespaces=(),
46
+ )
47
+
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.model_dump(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ return json.dumps(to_jsonable_python(self.to_dict()))
56
+
57
+ @classmethod
58
+ def from_json(cls, json_str: str) -> Optional[Self]:
59
+ """Create an instance of DateTimeMarkerConfig from a JSON string"""
60
+ return cls.from_dict(json.loads(json_str))
61
+
62
+ def to_dict(self) -> Dict[str, Any]:
63
+ """Return the dictionary representation of the model using alias.
64
+
65
+ This has the following differences from calling pydantic's
66
+ `self.model_dump(by_alias=True)`:
67
+
68
+ * `None` is only added to the output dict for nullable fields that
69
+ were set at model initialization. Other fields with value `None`
70
+ are ignored.
71
+ """
72
+ excluded_fields: Set[str] = set([
73
+ ])
74
+
75
+ _dict = self.model_dump(
76
+ by_alias=True,
77
+ exclude=excluded_fields,
78
+ exclude_none=True,
79
+ )
80
+ # set to None if initial_offset (nullable) is None
81
+ # and model_fields_set contains the field
82
+ if self.initial_offset is None and "initial_offset" in self.model_fields_set:
83
+ _dict['initialOffset'] = None
84
+
85
+ return _dict
86
+
87
+ @classmethod
88
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
89
+ """Create an instance of DateTimeMarkerConfig from a dict"""
90
+ if obj is None:
91
+ return None
92
+
93
+ if not isinstance(obj, dict):
94
+ return cls.model_validate(obj)
95
+
96
+ _obj = cls.model_validate({
97
+ "baseAssetId": obj.get("baseAssetId"),
98
+ "dateColumnName": obj.get("dateColumnName"),
99
+ "format": obj.get("format"),
100
+ "initialOffset": obj.get("initialOffset"),
101
+ "offset": obj.get("offset"),
102
+ "roundEndDate": obj.get("roundEndDate"),
103
+ "timeFrequency": obj.get("timeFrequency"),
104
+ "timeZoneId": obj.get("timeZoneId"),
105
+ "type": obj.get("type")
106
+ })
107
+ return _obj
108
+
109
+
@@ -0,0 +1,124 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Catalog Control Plane API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class DayMonthYearBasedPartitionMarkerConfig(BaseModel):
27
+ """
28
+ DayMonthYearBasedPartitionMarkerConfig
29
+ """ # noqa: E501
30
+ base_asset_id: Optional[StrictInt] = Field(default=None, alias="baseAssetId")
31
+ day_column_name: StrictStr = Field(alias="dayColumnName")
32
+ day_format: StrictStr = Field(alias="dayFormat")
33
+ frequency: StrictStr = Field(description="Allowed values at generation time: HOURLY, DAILY, WEEKLY, MONTHLY, QUARTERLY, YEARLY.")
34
+ from_date: Optional[StrictStr] = Field(default=None, alias="fromDate")
35
+ month_column_name: StrictStr = Field(alias="monthColumnName")
36
+ month_format: StrictStr = Field(alias="monthFormat")
37
+ offset: StrictInt
38
+ time_zone_id: StrictStr = Field(alias="timeZoneId")
39
+ to_date: Optional[StrictStr] = Field(default=None, alias="toDate")
40
+ year_column_name: StrictStr = Field(alias="yearColumnName")
41
+ year_format: StrictStr = Field(alias="yearFormat")
42
+ sub_type: StrictStr = Field(alias="subType")
43
+ type: StrictStr
44
+ __properties: ClassVar[List[str]] = ["baseAssetId", "dayColumnName", "dayFormat", "frequency", "fromDate", "monthColumnName", "monthFormat", "offset", "timeZoneId", "toDate", "yearColumnName", "yearFormat", "subType", "type"]
45
+
46
+ model_config = ConfigDict(
47
+ validate_by_name=True,
48
+ validate_by_alias=True,
49
+ validate_assignment=True,
50
+ protected_namespaces=(),
51
+ )
52
+
53
+
54
+ def to_str(self) -> str:
55
+ """Returns the string representation of the model using alias"""
56
+ return pprint.pformat(self.model_dump(by_alias=True))
57
+
58
+ def to_json(self) -> str:
59
+ """Returns the JSON representation of the model using alias"""
60
+ return json.dumps(to_jsonable_python(self.to_dict()))
61
+
62
+ @classmethod
63
+ def from_json(cls, json_str: str) -> Optional[Self]:
64
+ """Create an instance of DayMonthYearBasedPartitionMarkerConfig from a JSON string"""
65
+ return cls.from_dict(json.loads(json_str))
66
+
67
+ def to_dict(self) -> Dict[str, Any]:
68
+ """Return the dictionary representation of the model using alias.
69
+
70
+ This has the following differences from calling pydantic's
71
+ `self.model_dump(by_alias=True)`:
72
+
73
+ * `None` is only added to the output dict for nullable fields that
74
+ were set at model initialization. Other fields with value `None`
75
+ are ignored.
76
+ """
77
+ excluded_fields: Set[str] = set([
78
+ ])
79
+
80
+ _dict = self.model_dump(
81
+ by_alias=True,
82
+ exclude=excluded_fields,
83
+ exclude_none=True,
84
+ )
85
+ # set to None if from_date (nullable) is None
86
+ # and model_fields_set contains the field
87
+ if self.from_date is None and "from_date" in self.model_fields_set:
88
+ _dict['fromDate'] = None
89
+
90
+ # set to None if to_date (nullable) is None
91
+ # and model_fields_set contains the field
92
+ if self.to_date is None and "to_date" in self.model_fields_set:
93
+ _dict['toDate'] = None
94
+
95
+ return _dict
96
+
97
+ @classmethod
98
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
99
+ """Create an instance of DayMonthYearBasedPartitionMarkerConfig from a dict"""
100
+ if obj is None:
101
+ return None
102
+
103
+ if not isinstance(obj, dict):
104
+ return cls.model_validate(obj)
105
+
106
+ _obj = cls.model_validate({
107
+ "baseAssetId": obj.get("baseAssetId"),
108
+ "dayColumnName": obj.get("dayColumnName"),
109
+ "dayFormat": obj.get("dayFormat"),
110
+ "frequency": obj.get("frequency"),
111
+ "fromDate": obj.get("fromDate"),
112
+ "monthColumnName": obj.get("monthColumnName"),
113
+ "monthFormat": obj.get("monthFormat"),
114
+ "offset": obj.get("offset"),
115
+ "timeZoneId": obj.get("timeZoneId"),
116
+ "toDate": obj.get("toDate"),
117
+ "yearColumnName": obj.get("yearColumnName"),
118
+ "yearFormat": obj.get("yearFormat"),
119
+ "subType": obj.get("subType"),
120
+ "type": obj.get("type")
121
+ })
122
+ return _obj
123
+
124
+
@@ -0,0 +1,105 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Catalog Control Plane API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from acceldata.models.api.catalog.above_configs_success import AboveConfigsSuccess
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+ from pydantic_core import to_jsonable_python
26
+
27
+ class DecreasedByConfig(BaseModel):
28
+ """
29
+ DecreasedByConfig
30
+ """ # noqa: E501
31
+ direction: StrictStr = Field(description="Allowed values at generation time: ABOVE, BELOW, RANGE, CHANGES_BY, DECREASED_BY, INCREASED_BY.")
32
+ operator: StrictStr = Field(description="Allowed values at generation time: LEGACY, EQ, NEQ, GT, GTE, LT, LTE.")
33
+ success: AboveConfigsSuccess
34
+ unit: StrictStr = Field(description="Allowed values at generation time: PERCENTAGE, ABSOLUTE.")
35
+ warning: Optional[AboveConfigsSuccess] = None
36
+ type: StrictStr
37
+ __properties: ClassVar[List[str]] = ["direction", "operator", "success", "unit", "warning", "type"]
38
+
39
+ model_config = ConfigDict(
40
+ validate_by_name=True,
41
+ validate_by_alias=True,
42
+ validate_assignment=True,
43
+ protected_namespaces=(),
44
+ )
45
+
46
+
47
+ def to_str(self) -> str:
48
+ """Returns the string representation of the model using alias"""
49
+ return pprint.pformat(self.model_dump(by_alias=True))
50
+
51
+ def to_json(self) -> str:
52
+ """Returns the JSON representation of the model using alias"""
53
+ return json.dumps(to_jsonable_python(self.to_dict()))
54
+
55
+ @classmethod
56
+ def from_json(cls, json_str: str) -> Optional[Self]:
57
+ """Create an instance of DecreasedByConfig from a JSON string"""
58
+ return cls.from_dict(json.loads(json_str))
59
+
60
+ def to_dict(self) -> Dict[str, Any]:
61
+ """Return the dictionary representation of the model using alias.
62
+
63
+ This has the following differences from calling pydantic's
64
+ `self.model_dump(by_alias=True)`:
65
+
66
+ * `None` is only added to the output dict for nullable fields that
67
+ were set at model initialization. Other fields with value `None`
68
+ are ignored.
69
+ """
70
+ excluded_fields: Set[str] = set([
71
+ ])
72
+
73
+ _dict = self.model_dump(
74
+ by_alias=True,
75
+ exclude=excluded_fields,
76
+ exclude_none=True,
77
+ )
78
+ # override the default output from pydantic by calling `to_dict()` of success
79
+ if self.success:
80
+ _dict['success'] = self.success.to_dict()
81
+ # override the default output from pydantic by calling `to_dict()` of warning
82
+ if self.warning:
83
+ _dict['warning'] = self.warning.to_dict()
84
+ return _dict
85
+
86
+ @classmethod
87
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
88
+ """Create an instance of DecreasedByConfig from a dict"""
89
+ if obj is None:
90
+ return None
91
+
92
+ if not isinstance(obj, dict):
93
+ return cls.model_validate(obj)
94
+
95
+ _obj = cls.model_validate({
96
+ "direction": obj.get("direction") if obj.get("direction") is not None else 'DECREASED_BY',
97
+ "operator": obj.get("operator") if obj.get("operator") is not None else 'LEGACY',
98
+ "success": AboveConfigsSuccess.from_dict(obj["success"]) if obj.get("success") is not None else None,
99
+ "unit": obj.get("unit") if obj.get("unit") is not None else 'PERCENTAGE',
100
+ "warning": AboveConfigsSuccess.from_dict(obj["warning"]) if obj.get("warning") is not None else None,
101
+ "type": obj.get("type") if obj.get("type") is not None else 'io.ad.catalog.api.model.quality.DecreasedByConfig'
102
+ })
103
+ return _obj
104
+
105
+
@@ -0,0 +1,88 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Catalog Control Plane API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, StrictInt
21
+ from typing import Any, ClassVar, Dict, List
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class DeleteArtifactResponse(BaseModel):
27
+ """
28
+ DeleteArtifactResponse
29
+ """ # noqa: E501
30
+ count: StrictInt
31
+ __properties: ClassVar[List[str]] = ["count"]
32
+
33
+ model_config = ConfigDict(
34
+ validate_by_name=True,
35
+ validate_by_alias=True,
36
+ validate_assignment=True,
37
+ protected_namespaces=(),
38
+ )
39
+
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.model_dump(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ return json.dumps(to_jsonable_python(self.to_dict()))
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> Optional[Self]:
51
+ """Create an instance of DeleteArtifactResponse from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self) -> Dict[str, Any]:
55
+ """Return the dictionary representation of the model using alias.
56
+
57
+ This has the following differences from calling pydantic's
58
+ `self.model_dump(by_alias=True)`:
59
+
60
+ * `None` is only added to the output dict for nullable fields that
61
+ were set at model initialization. Other fields with value `None`
62
+ are ignored.
63
+ """
64
+ excluded_fields: Set[str] = set([
65
+ ])
66
+
67
+ _dict = self.model_dump(
68
+ by_alias=True,
69
+ exclude=excluded_fields,
70
+ exclude_none=True,
71
+ )
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
76
+ """Create an instance of DeleteArtifactResponse from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return cls.model_validate(obj)
82
+
83
+ _obj = cls.model_validate({
84
+ "count": obj.get("count")
85
+ })
86
+ return _obj
87
+
88
+
@@ -0,0 +1,248 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Catalog Control Plane API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from acceldata.models.api.catalog.dataplane_job import DataplaneJob
24
+ from acceldata.models.api.catalog.marker import Marker
25
+ from acceldata.models.api.catalog.marker_config import MarkerConfig
26
+ from acceldata.models.api.catalog.rule_spark_sql_dynamic_filter_variable_mapping import RuleSparkSQLDynamicFilterVariableMapping
27
+ from acceldata.models.api.catalog.rule_threshold_configuration import RuleThresholdConfiguration
28
+ from acceldata.models.api.catalog.spark_resource_config import SparkResourceConfig
29
+ from typing import Optional, Set
30
+ from typing_extensions import Self
31
+ from pydantic_core import to_jsonable_python
32
+
33
+ class DQRuleExecution(BaseModel):
34
+ """
35
+ DQRuleExecution
36
+ """ # noqa: E501
37
+ analysis_job: Optional[DataplaneJob] = Field(default=None, alias="analysisJob")
38
+ auto_retries: Optional[StrictInt] = Field(default=None, alias="autoRetries")
39
+ auto_retry_enabled: Optional[StrictBool] = Field(default=None, alias="autoRetryEnabled")
40
+ data_persistence_enabled: StrictBool = Field(alias="dataPersistenceEnabled")
41
+ engine_type: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: SPARK, JDBC_SQL, POD.", alias="engineType")
42
+ execution_error: Optional[StrictStr] = Field(default=None, alias="executionError")
43
+ execution_mode: StrictStr = Field(description="Allowed values at generation time: SCHEDULED, MANUAL, WEBHOOK, API.", alias="executionMode")
44
+ execution_status: StrictStr = Field(description="Allowed values at generation time: STARTED, RUNNING, ERRORED, WARNING, SUCCESSFUL, ABORTED, SKIPPED, WAITING, ANOMALY_DETECTION, EXECUTION_RESULT.", alias="executionStatus")
45
+ execution_type: StrictStr = Field(description="Allowed values at generation time: SELECTIVE, FULL, INCREMENTAL.", alias="executionType")
46
+ filter: Optional[StrictStr] = None
47
+ finished_at: Optional[datetime] = Field(default=None, alias="finishedAt")
48
+ id: Optional[StrictInt] = None
49
+ include_in_quality_score: StrictBool = Field(alias="includeInQualityScore")
50
+ last_marker: Optional[Marker] = Field(default=None, alias="lastMarker")
51
+ left_last_marker: Optional[Marker] = Field(default=None, alias="leftLastMarker")
52
+ left_marker_config: Optional[MarkerConfig] = Field(default=None, alias="leftMarkerConfig")
53
+ marker_config: Optional[MarkerConfig] = Field(default=None, alias="markerConfig")
54
+ parent_id: Optional[StrictInt] = Field(default=None, alias="parentId")
55
+ participating_columns: List[StrictStr] = Field(alias="participatingColumns")
56
+ persistence_path: Optional[StrictStr] = Field(default=None, alias="persistencePath")
57
+ policy_score_strategy: StrictStr = Field(description="Allowed values at generation time: CUSTOM, WEIGHTAGE, RULES.", alias="policyScoreStrategy")
58
+ reset_point: Optional[StrictInt] = Field(default=None, alias="resetPoint")
59
+ resource_strategy_type: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: INVENTORY, CUSTOM.", alias="resourceStrategyType")
60
+ result_persistence_path: Optional[Dict[str, StrictStr]] = Field(default=None, alias="resultPersistencePath")
61
+ result_status: StrictStr = Field(description="Allowed values at generation time: STARTED, RUNNING, ERRORED, WARNING, SUCCESSFUL, ABORTED, SKIPPED, WAITING, ANOMALY_DETECTION, EXECUTION_RESULT.", alias="resultStatus")
62
+ right_last_marker: Optional[Marker] = Field(default=None, alias="rightLastMarker")
63
+ right_marker_config: Optional[MarkerConfig] = Field(default=None, alias="rightMarkerConfig")
64
+ rule_id: StrictInt = Field(alias="ruleId")
65
+ rule_name: Optional[StrictStr] = Field(default=None, alias="ruleName")
66
+ rule_selection_enabled: StrictBool = Field(alias="ruleSelectionEnabled")
67
+ rule_type: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: DATA_QUALITY, RECONCILIATION, EQUALITY, DATA_DRIFT, SCHEMA_DRIFT, DATA_CADENCE, PROFILE_ANOMALY, AUTO_ANOMALY.", alias="ruleType")
68
+ rule_version: StrictInt = Field(alias="ruleVersion")
69
+ selected_resource_inventory: Optional[StrictStr] = Field(default=None, alias="selectedResourceInventory")
70
+ spark_filter_selected_columns: Optional[List[StrictStr]] = Field(default=None, alias="sparkFilterSelectedColumns")
71
+ spark_resource_config: Optional[SparkResourceConfig] = Field(default=None, alias="sparkResourceConfig")
72
+ spark_sql_dynamic_filter_variable_mapping: Optional[RuleSparkSQLDynamicFilterVariableMapping] = Field(default=None, alias="sparkSQLDynamicFilterVariableMapping")
73
+ spark_sql_filter_type: StrictStr = Field(description="Allowed values at generation time: STATIC, DYNAMIC.", alias="sparkSQLFilterType")
74
+ started_at: datetime = Field(alias="startedAt")
75
+ threshold_level: RuleThresholdConfiguration = Field(alias="thresholdLevel")
76
+ treat_zero_rows_as_success: Optional[StrictBool] = Field(default=None, alias="treatZeroRowsAsSuccess")
77
+ __properties: ClassVar[List[str]] = ["analysisJob", "autoRetries", "autoRetryEnabled", "dataPersistenceEnabled", "engineType", "executionError", "executionMode", "executionStatus", "executionType", "filter", "finishedAt", "id", "includeInQualityScore", "lastMarker", "leftLastMarker", "leftMarkerConfig", "markerConfig", "parentId", "participatingColumns", "persistencePath", "policyScoreStrategy", "resetPoint", "resourceStrategyType", "resultPersistencePath", "resultStatus", "rightLastMarker", "rightMarkerConfig", "ruleId", "ruleName", "ruleSelectionEnabled", "ruleType", "ruleVersion", "selectedResourceInventory", "sparkFilterSelectedColumns", "sparkResourceConfig", "sparkSQLDynamicFilterVariableMapping", "sparkSQLFilterType", "startedAt", "thresholdLevel", "treatZeroRowsAsSuccess"]
78
+
79
+ model_config = ConfigDict(
80
+ validate_by_name=True,
81
+ validate_by_alias=True,
82
+ validate_assignment=True,
83
+ protected_namespaces=(),
84
+ )
85
+
86
+
87
+ def to_str(self) -> str:
88
+ """Returns the string representation of the model using alias"""
89
+ return pprint.pformat(self.model_dump(by_alias=True))
90
+
91
+ def to_json(self) -> str:
92
+ """Returns the JSON representation of the model using alias"""
93
+ return json.dumps(to_jsonable_python(self.to_dict()))
94
+
95
+ @classmethod
96
+ def from_json(cls, json_str: str) -> Optional[Self]:
97
+ """Create an instance of DQRuleExecution from a JSON string"""
98
+ return cls.from_dict(json.loads(json_str))
99
+
100
+ def to_dict(self) -> Dict[str, Any]:
101
+ """Return the dictionary representation of the model using alias.
102
+
103
+ This has the following differences from calling pydantic's
104
+ `self.model_dump(by_alias=True)`:
105
+
106
+ * `None` is only added to the output dict for nullable fields that
107
+ were set at model initialization. Other fields with value `None`
108
+ are ignored.
109
+ """
110
+ excluded_fields: Set[str] = set([
111
+ ])
112
+
113
+ _dict = self.model_dump(
114
+ by_alias=True,
115
+ exclude=excluded_fields,
116
+ exclude_none=True,
117
+ )
118
+ # override the default output from pydantic by calling `to_dict()` of analysis_job
119
+ if self.analysis_job:
120
+ _dict['analysisJob'] = self.analysis_job.to_dict()
121
+ # override the default output from pydantic by calling `to_dict()` of last_marker
122
+ if self.last_marker:
123
+ _dict['lastMarker'] = self.last_marker.to_dict()
124
+ # override the default output from pydantic by calling `to_dict()` of left_last_marker
125
+ if self.left_last_marker:
126
+ _dict['leftLastMarker'] = self.left_last_marker.to_dict()
127
+ # override the default output from pydantic by calling `to_dict()` of left_marker_config
128
+ if self.left_marker_config:
129
+ _dict['leftMarkerConfig'] = self.left_marker_config.to_dict()
130
+ # override the default output from pydantic by calling `to_dict()` of marker_config
131
+ if self.marker_config:
132
+ _dict['markerConfig'] = self.marker_config.to_dict()
133
+ # override the default output from pydantic by calling `to_dict()` of right_last_marker
134
+ if self.right_last_marker:
135
+ _dict['rightLastMarker'] = self.right_last_marker.to_dict()
136
+ # override the default output from pydantic by calling `to_dict()` of right_marker_config
137
+ if self.right_marker_config:
138
+ _dict['rightMarkerConfig'] = self.right_marker_config.to_dict()
139
+ # override the default output from pydantic by calling `to_dict()` of spark_resource_config
140
+ if self.spark_resource_config:
141
+ _dict['sparkResourceConfig'] = self.spark_resource_config.to_dict()
142
+ # override the default output from pydantic by calling `to_dict()` of spark_sql_dynamic_filter_variable_mapping
143
+ if self.spark_sql_dynamic_filter_variable_mapping:
144
+ _dict['sparkSQLDynamicFilterVariableMapping'] = self.spark_sql_dynamic_filter_variable_mapping.to_dict()
145
+ # override the default output from pydantic by calling `to_dict()` of threshold_level
146
+ if self.threshold_level:
147
+ _dict['thresholdLevel'] = self.threshold_level.to_dict()
148
+ # set to None if engine_type (nullable) is None
149
+ # and model_fields_set contains the field
150
+ if self.engine_type is None and "engine_type" in self.model_fields_set:
151
+ _dict['engineType'] = None
152
+
153
+ # set to None if execution_error (nullable) is None
154
+ # and model_fields_set contains the field
155
+ if self.execution_error is None and "execution_error" in self.model_fields_set:
156
+ _dict['executionError'] = None
157
+
158
+ # set to None if filter (nullable) is None
159
+ # and model_fields_set contains the field
160
+ if self.filter is None and "filter" in self.model_fields_set:
161
+ _dict['filter'] = None
162
+
163
+ # set to None if persistence_path (nullable) is None
164
+ # and model_fields_set contains the field
165
+ if self.persistence_path is None and "persistence_path" in self.model_fields_set:
166
+ _dict['persistencePath'] = None
167
+
168
+ # set to None if resource_strategy_type (nullable) is None
169
+ # and model_fields_set contains the field
170
+ if self.resource_strategy_type is None and "resource_strategy_type" in self.model_fields_set:
171
+ _dict['resourceStrategyType'] = None
172
+
173
+ # set to None if rule_name (nullable) is None
174
+ # and model_fields_set contains the field
175
+ if self.rule_name is None and "rule_name" in self.model_fields_set:
176
+ _dict['ruleName'] = None
177
+
178
+ # set to None if rule_type (nullable) is None
179
+ # and model_fields_set contains the field
180
+ if self.rule_type is None and "rule_type" in self.model_fields_set:
181
+ _dict['ruleType'] = None
182
+
183
+ # set to None if selected_resource_inventory (nullable) is None
184
+ # and model_fields_set contains the field
185
+ if self.selected_resource_inventory is None and "selected_resource_inventory" in self.model_fields_set:
186
+ _dict['selectedResourceInventory'] = None
187
+
188
+ # set to None if spark_filter_selected_columns (nullable) is None
189
+ # and model_fields_set contains the field
190
+ if self.spark_filter_selected_columns is None and "spark_filter_selected_columns" in self.model_fields_set:
191
+ _dict['sparkFilterSelectedColumns'] = None
192
+
193
+ return _dict
194
+
195
+ @classmethod
196
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
197
+ """Create an instance of DQRuleExecution from a dict"""
198
+ if obj is None:
199
+ return None
200
+
201
+ if not isinstance(obj, dict):
202
+ return cls.model_validate(obj)
203
+
204
+ _obj = cls.model_validate({
205
+ "analysisJob": DataplaneJob.from_dict(obj["analysisJob"]) if obj.get("analysisJob") is not None else None,
206
+ "autoRetries": obj.get("autoRetries"),
207
+ "autoRetryEnabled": obj.get("autoRetryEnabled"),
208
+ "dataPersistenceEnabled": obj.get("dataPersistenceEnabled"),
209
+ "engineType": obj.get("engineType"),
210
+ "executionError": obj.get("executionError"),
211
+ "executionMode": obj.get("executionMode"),
212
+ "executionStatus": obj.get("executionStatus"),
213
+ "executionType": obj.get("executionType"),
214
+ "filter": obj.get("filter"),
215
+ "finishedAt": obj.get("finishedAt"),
216
+ "id": obj.get("id"),
217
+ "includeInQualityScore": obj.get("includeInQualityScore"),
218
+ "lastMarker": Marker.from_dict(obj["lastMarker"]) if obj.get("lastMarker") is not None else None,
219
+ "leftLastMarker": Marker.from_dict(obj["leftLastMarker"]) if obj.get("leftLastMarker") is not None else None,
220
+ "leftMarkerConfig": MarkerConfig.from_dict(obj["leftMarkerConfig"]) if obj.get("leftMarkerConfig") is not None else None,
221
+ "markerConfig": MarkerConfig.from_dict(obj["markerConfig"]) if obj.get("markerConfig") is not None else None,
222
+ "parentId": obj.get("parentId"),
223
+ "participatingColumns": obj.get("participatingColumns"),
224
+ "persistencePath": obj.get("persistencePath"),
225
+ "policyScoreStrategy": obj.get("policyScoreStrategy"),
226
+ "resetPoint": obj.get("resetPoint"),
227
+ "resourceStrategyType": obj.get("resourceStrategyType"),
228
+ "resultPersistencePath": obj.get("resultPersistencePath"),
229
+ "resultStatus": obj.get("resultStatus"),
230
+ "rightLastMarker": Marker.from_dict(obj["rightLastMarker"]) if obj.get("rightLastMarker") is not None else None,
231
+ "rightMarkerConfig": MarkerConfig.from_dict(obj["rightMarkerConfig"]) if obj.get("rightMarkerConfig") is not None else None,
232
+ "ruleId": obj.get("ruleId"),
233
+ "ruleName": obj.get("ruleName"),
234
+ "ruleSelectionEnabled": obj.get("ruleSelectionEnabled"),
235
+ "ruleType": obj.get("ruleType"),
236
+ "ruleVersion": obj.get("ruleVersion"),
237
+ "selectedResourceInventory": obj.get("selectedResourceInventory"),
238
+ "sparkFilterSelectedColumns": obj.get("sparkFilterSelectedColumns"),
239
+ "sparkResourceConfig": SparkResourceConfig.from_dict(obj["sparkResourceConfig"]) if obj.get("sparkResourceConfig") is not None else None,
240
+ "sparkSQLDynamicFilterVariableMapping": RuleSparkSQLDynamicFilterVariableMapping.from_dict(obj["sparkSQLDynamicFilterVariableMapping"]) if obj.get("sparkSQLDynamicFilterVariableMapping") is not None else None,
241
+ "sparkSQLFilterType": obj.get("sparkSQLFilterType"),
242
+ "startedAt": obj.get("startedAt"),
243
+ "thresholdLevel": RuleThresholdConfiguration.from_dict(obj["thresholdLevel"]) if obj.get("thresholdLevel") is not None else None,
244
+ "treatZeroRowsAsSuccess": obj.get("treatZeroRowsAsSuccess")
245
+ })
246
+ return _obj
247
+
248
+