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,111 @@
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 acceldata.models.api.catalog.operational_config import OperationalConfig
24
+ from acceldata.models.api.catalog.relative_config import RelativeConfig
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+ from pydantic_core import to_jsonable_python
28
+
29
+ class RelativeThresholdConfig(BaseModel):
30
+ """
31
+ RelativeThresholdConfig
32
+ """ # noqa: E501
33
+ config: RelativeConfig
34
+ operational_config: OperationalConfig = Field(alias="operationalConfig")
35
+ success: Optional[AboveConfigsSuccess] = None
36
+ type: StrictStr = Field(description="Allowed values at generation time: ANOMALY, RELATIVE, TIME_BASED, ABSOLUTE.")
37
+ warning: Optional[AboveConfigsSuccess] = None
38
+ __properties: ClassVar[List[str]] = ["config", "operationalConfig", "success", "type", "warning"]
39
+
40
+ model_config = ConfigDict(
41
+ validate_by_name=True,
42
+ validate_by_alias=True,
43
+ validate_assignment=True,
44
+ protected_namespaces=(),
45
+ )
46
+
47
+
48
+ def to_str(self) -> str:
49
+ """Returns the string representation of the model using alias"""
50
+ return pprint.pformat(self.model_dump(by_alias=True))
51
+
52
+ def to_json(self) -> str:
53
+ """Returns the JSON representation of the model using alias"""
54
+ return json.dumps(to_jsonable_python(self.to_dict()))
55
+
56
+ @classmethod
57
+ def from_json(cls, json_str: str) -> Optional[Self]:
58
+ """Create an instance of RelativeThresholdConfig from a JSON string"""
59
+ return cls.from_dict(json.loads(json_str))
60
+
61
+ def to_dict(self) -> Dict[str, Any]:
62
+ """Return the dictionary representation of the model using alias.
63
+
64
+ This has the following differences from calling pydantic's
65
+ `self.model_dump(by_alias=True)`:
66
+
67
+ * `None` is only added to the output dict for nullable fields that
68
+ were set at model initialization. Other fields with value `None`
69
+ are ignored.
70
+ """
71
+ excluded_fields: Set[str] = set([
72
+ ])
73
+
74
+ _dict = self.model_dump(
75
+ by_alias=True,
76
+ exclude=excluded_fields,
77
+ exclude_none=True,
78
+ )
79
+ # override the default output from pydantic by calling `to_dict()` of config
80
+ if self.config:
81
+ _dict['config'] = self.config.to_dict()
82
+ # override the default output from pydantic by calling `to_dict()` of operational_config
83
+ if self.operational_config:
84
+ _dict['operationalConfig'] = self.operational_config.to_dict()
85
+ # override the default output from pydantic by calling `to_dict()` of success
86
+ if self.success:
87
+ _dict['success'] = self.success.to_dict()
88
+ # override the default output from pydantic by calling `to_dict()` of warning
89
+ if self.warning:
90
+ _dict['warning'] = self.warning.to_dict()
91
+ return _dict
92
+
93
+ @classmethod
94
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
95
+ """Create an instance of RelativeThresholdConfig from a dict"""
96
+ if obj is None:
97
+ return None
98
+
99
+ if not isinstance(obj, dict):
100
+ return cls.model_validate(obj)
101
+
102
+ _obj = cls.model_validate({
103
+ "config": RelativeConfig.from_dict(obj["config"]) if obj.get("config") is not None else None,
104
+ "operationalConfig": OperationalConfig.from_dict(obj["operationalConfig"]) if obj.get("operationalConfig") is not None else None,
105
+ "success": AboveConfigsSuccess.from_dict(obj["success"]) if obj.get("success") is not None else None,
106
+ "type": obj.get("type"),
107
+ "warning": AboveConfigsSuccess.from_dict(obj["warning"]) if obj.get("warning") is not None else None
108
+ })
109
+ return _obj
110
+
111
+
@@ -0,0 +1,108 @@
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
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 RootCauseAnalysis(BaseModel):
28
+ """
29
+ RootCauseAnalysis
30
+ """ # noqa: E501
31
+ bad: StrictInt
32
+ bad_fraction: AboveConfigsSuccess = Field(alias="badFraction")
33
+ good: StrictInt
34
+ good_fraction: AboveConfigsSuccess = Field(alias="goodFraction")
35
+ key: StrictStr
36
+ total_fraction: AboveConfigsSuccess = Field(alias="totalFraction")
37
+ __properties: ClassVar[List[str]] = ["bad", "badFraction", "good", "goodFraction", "key", "totalFraction"]
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 RootCauseAnalysis 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 bad_fraction
79
+ if self.bad_fraction:
80
+ _dict['badFraction'] = self.bad_fraction.to_dict()
81
+ # override the default output from pydantic by calling `to_dict()` of good_fraction
82
+ if self.good_fraction:
83
+ _dict['goodFraction'] = self.good_fraction.to_dict()
84
+ # override the default output from pydantic by calling `to_dict()` of total_fraction
85
+ if self.total_fraction:
86
+ _dict['totalFraction'] = self.total_fraction.to_dict()
87
+ return _dict
88
+
89
+ @classmethod
90
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
91
+ """Create an instance of RootCauseAnalysis from a dict"""
92
+ if obj is None:
93
+ return None
94
+
95
+ if not isinstance(obj, dict):
96
+ return cls.model_validate(obj)
97
+
98
+ _obj = cls.model_validate({
99
+ "bad": obj.get("bad"),
100
+ "badFraction": AboveConfigsSuccess.from_dict(obj["badFraction"]) if obj.get("badFraction") is not None else None,
101
+ "good": obj.get("good"),
102
+ "goodFraction": AboveConfigsSuccess.from_dict(obj["goodFraction"]) if obj.get("goodFraction") is not None else None,
103
+ "key": obj.get("key"),
104
+ "totalFraction": AboveConfigsSuccess.from_dict(obj["totalFraction"]) if obj.get("totalFraction") is not None else None
105
+ })
106
+ return _obj
107
+
108
+
@@ -0,0 +1,327 @@
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 RuleExecution(BaseModel):
34
+ """
35
+ RuleExecution
36
+ """ # noqa: E501
37
+ allow_rerun: StrictBool = Field(alias="allowRerun")
38
+ analysis_job: Optional[DataplaneJob] = Field(default=None, alias="analysisJob")
39
+ analytics_pipeline_id: Optional[StrictInt] = Field(default=None, alias="analyticsPipelineId")
40
+ auto_retries: Optional[StrictInt] = Field(default=None, alias="autoRetries")
41
+ auto_retry_enabled: StrictBool = Field(alias="autoRetryEnabled")
42
+ data_persistence_enabled: StrictBool = Field(alias="dataPersistenceEnabled")
43
+ driver_pod_name: Optional[StrictStr] = Field(default=None, alias="driverPodName")
44
+ engine_type: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: SPARK, JDBC_SQL, POD.", alias="engineType")
45
+ executed_by: Optional[StrictStr] = Field(default=None, alias="executedBy")
46
+ execution_error: Optional[StrictStr] = Field(default=None, alias="executionError")
47
+ execution_mode: StrictStr = Field(description="Allowed values at generation time: SCHEDULED, MANUAL, WEBHOOK, API.", alias="executionMode")
48
+ execution_rank: Optional[StrictInt] = Field(default=None, alias="executionRank")
49
+ execution_status: StrictStr = Field(description="Allowed values at generation time: STARTED, RUNNING, ERRORED, WARNING, SUCCESSFUL, ABORTED, SKIPPED, WAITING, ANOMALY_DETECTION, EXECUTION_RESULT.", alias="executionStatus")
50
+ execution_type: StrictStr = Field(description="Allowed values at generation time: SELECTIVE, FULL, INCREMENTAL.", alias="executionType")
51
+ filter: Optional[StrictStr] = None
52
+ finished_at: Optional[datetime] = Field(default=None, alias="finishedAt")
53
+ id: Optional[StrictInt] = None
54
+ include_in_quality_score: StrictBool = Field(alias="includeInQualityScore")
55
+ is_protected_resource: StrictBool = Field(alias="isProtectedResource")
56
+ is_resource_requested_at_run_time: StrictBool = Field(alias="isResourceRequestedAtRunTime")
57
+ job_state: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: ACKNOWLEDGED, SUBMITTED, QUEUED, SKIPPED, RUNNING, READ_DATA, REFERENCE_DATA, PROFILE_STAGE_1, PROFILE_STAGE_2, PROFILE_STAGE_3, PROFILE_STAGE_4, DQ_BATCH_RULES, DQ_ROW_RULES, DQ_CUSTOM_RULES, DQ_SEGMENT, DQ_GOOD_RESULT_STORE, DQ_BAD_RESULT_STORE, VALIDATE, PROCESSING, PREPARE_RESULT, SEND_RESULT, SEND_RESULT_FAILED, SUCCESSFUL, FAILED, ABORTED, WAITING, METRICS_REQUEST_SENT, PARTIAL_RESPONSE_PUBLISHED, COMPLETE_RESPONSE_PUBLISHED, METRICS_RESPONSE_RECEIVED, ANOMALY_DETECTION_INITIATED, PARTIAL_ANOMALY_RESULT_RECEIVED, COMPLETE_ANOMALY_RESULT_RECEIVED, POLICY_EXECUTION_SUCCESSFUL, POLICY_EXECUTION_FAILURE, EXECUTION_RESULT.", alias="jobState")
58
+ last_health_update_at: Optional[datetime] = Field(default=None, alias="lastHealthUpdateAt")
59
+ last_marker: Optional[Marker] = Field(default=None, alias="lastMarker")
60
+ left_last_marker: Optional[Marker] = Field(default=None, alias="leftLastMarker")
61
+ left_marker_config: Optional[MarkerConfig] = Field(default=None, alias="leftMarkerConfig")
62
+ marker_config: Optional[MarkerConfig] = Field(default=None, alias="markerConfig")
63
+ parent_id: Optional[StrictInt] = Field(default=None, alias="parentId")
64
+ participating_columns: List[StrictStr] = Field(alias="participatingColumns")
65
+ persistence_path: Optional[StrictStr] = Field(default=None, alias="persistencePath")
66
+ pipeline_additional_configuration: Optional[Dict[str, StrictStr]] = Field(default=None, alias="pipelineAdditionalConfiguration")
67
+ policy_result_status_strategy: StrictStr = Field(description="Allowed values at generation time: CUSTOM, WEIGHTAGE, RULES.", alias="policyResultStatusStrategy")
68
+ request_id: Optional[StrictStr] = Field(default=None, alias="requestId")
69
+ reset_point: Optional[StrictInt] = Field(default=None, alias="resetPoint")
70
+ resource_strategy_type: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: INVENTORY, CUSTOM.", alias="resourceStrategyType")
71
+ result_persistence_path: Optional[Dict[str, StrictStr]] = Field(default=None, alias="resultPersistencePath")
72
+ result_status: StrictStr = Field(description="Allowed values at generation time: STARTED, RUNNING, ERRORED, WARNING, SUCCESSFUL, ABORTED, SKIPPED, WAITING, ANOMALY_DETECTION, EXECUTION_RESULT.", alias="resultStatus")
73
+ right_engine_type: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: SPARK, JDBC_SQL, POD.", alias="rightEngineType")
74
+ right_filter: Optional[StrictStr] = Field(default=None, alias="rightFilter")
75
+ right_last_marker: Optional[Marker] = Field(default=None, alias="rightLastMarker")
76
+ right_marker_config: Optional[MarkerConfig] = Field(default=None, alias="rightMarkerConfig")
77
+ right_spark_filter_selected_columns: Optional[List[StrictStr]] = Field(default=None, alias="rightSparkFilterSelectedColumns")
78
+ right_spark_sql_dynamic_filter_variable_mapping: Optional[RuleSparkSQLDynamicFilterVariableMapping] = Field(default=None, alias="rightSparkSQLDynamicFilterVariableMapping")
79
+ right_spark_sql_filter_type: StrictStr = Field(description="Allowed values at generation time: STATIC, DYNAMIC.", alias="rightSparkSQLFilterType")
80
+ rule_id: StrictInt = Field(alias="ruleId")
81
+ rule_name: Optional[StrictStr] = Field(default=None, alias="ruleName")
82
+ rule_selection_enabled: StrictBool = Field(alias="ruleSelectionEnabled")
83
+ 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")
84
+ rule_version: StrictInt = Field(alias="ruleVersion")
85
+ schedule_instance_id: Optional[StrictStr] = Field(default=None, alias="scheduleInstanceId")
86
+ selected_resource_inventory: Optional[StrictStr] = Field(default=None, alias="selectedResourceInventory")
87
+ source_execution_id: Optional[StrictInt] = Field(default=None, alias="sourceExecutionId")
88
+ spark_filter_selected_columns: Optional[List[StrictStr]] = Field(default=None, alias="sparkFilterSelectedColumns")
89
+ spark_resource_config: Optional[SparkResourceConfig] = Field(default=None, alias="sparkResourceConfig")
90
+ spark_sql_dynamic_filter_variable_mapping: Optional[RuleSparkSQLDynamicFilterVariableMapping] = Field(default=None, alias="sparkSQLDynamicFilterVariableMapping")
91
+ spark_sql_filter_type: StrictStr = Field(description="Allowed values at generation time: STATIC, DYNAMIC.", alias="sparkSQLFilterType")
92
+ started_at: datetime = Field(alias="startedAt")
93
+ threshold_level: RuleThresholdConfiguration = Field(alias="thresholdLevel")
94
+ treat_zero_rows_as_success: Optional[StrictBool] = Field(default=None, alias="treatZeroRowsAsSuccess")
95
+ __properties: ClassVar[List[str]] = ["allowRerun", "analysisJob", "analyticsPipelineId", "autoRetries", "autoRetryEnabled", "dataPersistenceEnabled", "driverPodName", "engineType", "executedBy", "executionError", "executionMode", "executionRank", "executionStatus", "executionType", "filter", "finishedAt", "id", "includeInQualityScore", "isProtectedResource", "isResourceRequestedAtRunTime", "jobState", "lastHealthUpdateAt", "lastMarker", "leftLastMarker", "leftMarkerConfig", "markerConfig", "parentId", "participatingColumns", "persistencePath", "pipelineAdditionalConfiguration", "policyResultStatusStrategy", "requestId", "resetPoint", "resourceStrategyType", "resultPersistencePath", "resultStatus", "rightEngineType", "rightFilter", "rightLastMarker", "rightMarkerConfig", "rightSparkFilterSelectedColumns", "rightSparkSQLDynamicFilterVariableMapping", "rightSparkSQLFilterType", "ruleId", "ruleName", "ruleSelectionEnabled", "ruleType", "ruleVersion", "scheduleInstanceId", "selectedResourceInventory", "sourceExecutionId", "sparkFilterSelectedColumns", "sparkResourceConfig", "sparkSQLDynamicFilterVariableMapping", "sparkSQLFilterType", "startedAt", "thresholdLevel", "treatZeroRowsAsSuccess"]
96
+
97
+ model_config = ConfigDict(
98
+ validate_by_name=True,
99
+ validate_by_alias=True,
100
+ validate_assignment=True,
101
+ protected_namespaces=(),
102
+ )
103
+
104
+
105
+ def to_str(self) -> str:
106
+ """Returns the string representation of the model using alias"""
107
+ return pprint.pformat(self.model_dump(by_alias=True))
108
+
109
+ def to_json(self) -> str:
110
+ """Returns the JSON representation of the model using alias"""
111
+ return json.dumps(to_jsonable_python(self.to_dict()))
112
+
113
+ @classmethod
114
+ def from_json(cls, json_str: str) -> Optional[Self]:
115
+ """Create an instance of RuleExecution from a JSON string"""
116
+ return cls.from_dict(json.loads(json_str))
117
+
118
+ def to_dict(self) -> Dict[str, Any]:
119
+ """Return the dictionary representation of the model using alias.
120
+
121
+ This has the following differences from calling pydantic's
122
+ `self.model_dump(by_alias=True)`:
123
+
124
+ * `None` is only added to the output dict for nullable fields that
125
+ were set at model initialization. Other fields with value `None`
126
+ are ignored.
127
+ """
128
+ excluded_fields: Set[str] = set([
129
+ ])
130
+
131
+ _dict = self.model_dump(
132
+ by_alias=True,
133
+ exclude=excluded_fields,
134
+ exclude_none=True,
135
+ )
136
+ # override the default output from pydantic by calling `to_dict()` of analysis_job
137
+ if self.analysis_job:
138
+ _dict['analysisJob'] = self.analysis_job.to_dict()
139
+ # override the default output from pydantic by calling `to_dict()` of last_marker
140
+ if self.last_marker:
141
+ _dict['lastMarker'] = self.last_marker.to_dict()
142
+ # override the default output from pydantic by calling `to_dict()` of left_last_marker
143
+ if self.left_last_marker:
144
+ _dict['leftLastMarker'] = self.left_last_marker.to_dict()
145
+ # override the default output from pydantic by calling `to_dict()` of left_marker_config
146
+ if self.left_marker_config:
147
+ _dict['leftMarkerConfig'] = self.left_marker_config.to_dict()
148
+ # override the default output from pydantic by calling `to_dict()` of marker_config
149
+ if self.marker_config:
150
+ _dict['markerConfig'] = self.marker_config.to_dict()
151
+ # override the default output from pydantic by calling `to_dict()` of right_last_marker
152
+ if self.right_last_marker:
153
+ _dict['rightLastMarker'] = self.right_last_marker.to_dict()
154
+ # override the default output from pydantic by calling `to_dict()` of right_marker_config
155
+ if self.right_marker_config:
156
+ _dict['rightMarkerConfig'] = self.right_marker_config.to_dict()
157
+ # override the default output from pydantic by calling `to_dict()` of right_spark_sql_dynamic_filter_variable_mapping
158
+ if self.right_spark_sql_dynamic_filter_variable_mapping:
159
+ _dict['rightSparkSQLDynamicFilterVariableMapping'] = self.right_spark_sql_dynamic_filter_variable_mapping.to_dict()
160
+ # override the default output from pydantic by calling `to_dict()` of spark_resource_config
161
+ if self.spark_resource_config:
162
+ _dict['sparkResourceConfig'] = self.spark_resource_config.to_dict()
163
+ # override the default output from pydantic by calling `to_dict()` of spark_sql_dynamic_filter_variable_mapping
164
+ if self.spark_sql_dynamic_filter_variable_mapping:
165
+ _dict['sparkSQLDynamicFilterVariableMapping'] = self.spark_sql_dynamic_filter_variable_mapping.to_dict()
166
+ # override the default output from pydantic by calling `to_dict()` of threshold_level
167
+ if self.threshold_level:
168
+ _dict['thresholdLevel'] = self.threshold_level.to_dict()
169
+ # set to None if driver_pod_name (nullable) is None
170
+ # and model_fields_set contains the field
171
+ if self.driver_pod_name is None and "driver_pod_name" in self.model_fields_set:
172
+ _dict['driverPodName'] = None
173
+
174
+ # set to None if engine_type (nullable) is None
175
+ # and model_fields_set contains the field
176
+ if self.engine_type is None and "engine_type" in self.model_fields_set:
177
+ _dict['engineType'] = None
178
+
179
+ # set to None if executed_by (nullable) is None
180
+ # and model_fields_set contains the field
181
+ if self.executed_by is None and "executed_by" in self.model_fields_set:
182
+ _dict['executedBy'] = None
183
+
184
+ # set to None if execution_error (nullable) is None
185
+ # and model_fields_set contains the field
186
+ if self.execution_error is None and "execution_error" in self.model_fields_set:
187
+ _dict['executionError'] = None
188
+
189
+ # set to None if filter (nullable) is None
190
+ # and model_fields_set contains the field
191
+ if self.filter is None and "filter" in self.model_fields_set:
192
+ _dict['filter'] = None
193
+
194
+ # set to None if job_state (nullable) is None
195
+ # and model_fields_set contains the field
196
+ if self.job_state is None and "job_state" in self.model_fields_set:
197
+ _dict['jobState'] = None
198
+
199
+ # set to None if persistence_path (nullable) is None
200
+ # and model_fields_set contains the field
201
+ if self.persistence_path is None and "persistence_path" in self.model_fields_set:
202
+ _dict['persistencePath'] = None
203
+
204
+ # set to None if request_id (nullable) is None
205
+ # and model_fields_set contains the field
206
+ if self.request_id is None and "request_id" in self.model_fields_set:
207
+ _dict['requestId'] = None
208
+
209
+ # set to None if resource_strategy_type (nullable) is None
210
+ # and model_fields_set contains the field
211
+ if self.resource_strategy_type is None and "resource_strategy_type" in self.model_fields_set:
212
+ _dict['resourceStrategyType'] = None
213
+
214
+ # set to None if right_engine_type (nullable) is None
215
+ # and model_fields_set contains the field
216
+ if self.right_engine_type is None and "right_engine_type" in self.model_fields_set:
217
+ _dict['rightEngineType'] = None
218
+
219
+ # set to None if right_filter (nullable) is None
220
+ # and model_fields_set contains the field
221
+ if self.right_filter is None and "right_filter" in self.model_fields_set:
222
+ _dict['rightFilter'] = None
223
+
224
+ # set to None if right_spark_filter_selected_columns (nullable) is None
225
+ # and model_fields_set contains the field
226
+ if self.right_spark_filter_selected_columns is None and "right_spark_filter_selected_columns" in self.model_fields_set:
227
+ _dict['rightSparkFilterSelectedColumns'] = None
228
+
229
+ # set to None if rule_name (nullable) is None
230
+ # and model_fields_set contains the field
231
+ if self.rule_name is None and "rule_name" in self.model_fields_set:
232
+ _dict['ruleName'] = None
233
+
234
+ # set to None if rule_type (nullable) is None
235
+ # and model_fields_set contains the field
236
+ if self.rule_type is None and "rule_type" in self.model_fields_set:
237
+ _dict['ruleType'] = None
238
+
239
+ # set to None if schedule_instance_id (nullable) is None
240
+ # and model_fields_set contains the field
241
+ if self.schedule_instance_id is None and "schedule_instance_id" in self.model_fields_set:
242
+ _dict['scheduleInstanceId'] = None
243
+
244
+ # set to None if selected_resource_inventory (nullable) is None
245
+ # and model_fields_set contains the field
246
+ if self.selected_resource_inventory is None and "selected_resource_inventory" in self.model_fields_set:
247
+ _dict['selectedResourceInventory'] = None
248
+
249
+ # set to None if spark_filter_selected_columns (nullable) is None
250
+ # and model_fields_set contains the field
251
+ if self.spark_filter_selected_columns is None and "spark_filter_selected_columns" in self.model_fields_set:
252
+ _dict['sparkFilterSelectedColumns'] = None
253
+
254
+ return _dict
255
+
256
+ @classmethod
257
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
258
+ """Create an instance of RuleExecution from a dict"""
259
+ if obj is None:
260
+ return None
261
+
262
+ if not isinstance(obj, dict):
263
+ return cls.model_validate(obj)
264
+
265
+ _obj = cls.model_validate({
266
+ "allowRerun": obj.get("allowRerun"),
267
+ "analysisJob": DataplaneJob.from_dict(obj["analysisJob"]) if obj.get("analysisJob") is not None else None,
268
+ "analyticsPipelineId": obj.get("analyticsPipelineId"),
269
+ "autoRetries": obj.get("autoRetries"),
270
+ "autoRetryEnabled": obj.get("autoRetryEnabled"),
271
+ "dataPersistenceEnabled": obj.get("dataPersistenceEnabled"),
272
+ "driverPodName": obj.get("driverPodName"),
273
+ "engineType": obj.get("engineType"),
274
+ "executedBy": obj.get("executedBy"),
275
+ "executionError": obj.get("executionError"),
276
+ "executionMode": obj.get("executionMode"),
277
+ "executionRank": obj.get("executionRank"),
278
+ "executionStatus": obj.get("executionStatus"),
279
+ "executionType": obj.get("executionType"),
280
+ "filter": obj.get("filter"),
281
+ "finishedAt": obj.get("finishedAt"),
282
+ "id": obj.get("id"),
283
+ "includeInQualityScore": obj.get("includeInQualityScore"),
284
+ "isProtectedResource": obj.get("isProtectedResource"),
285
+ "isResourceRequestedAtRunTime": obj.get("isResourceRequestedAtRunTime"),
286
+ "jobState": obj.get("jobState"),
287
+ "lastHealthUpdateAt": obj.get("lastHealthUpdateAt"),
288
+ "lastMarker": Marker.from_dict(obj["lastMarker"]) if obj.get("lastMarker") is not None else None,
289
+ "leftLastMarker": Marker.from_dict(obj["leftLastMarker"]) if obj.get("leftLastMarker") is not None else None,
290
+ "leftMarkerConfig": MarkerConfig.from_dict(obj["leftMarkerConfig"]) if obj.get("leftMarkerConfig") is not None else None,
291
+ "markerConfig": MarkerConfig.from_dict(obj["markerConfig"]) if obj.get("markerConfig") is not None else None,
292
+ "parentId": obj.get("parentId"),
293
+ "participatingColumns": obj.get("participatingColumns"),
294
+ "persistencePath": obj.get("persistencePath"),
295
+ "pipelineAdditionalConfiguration": obj.get("pipelineAdditionalConfiguration"),
296
+ "policyResultStatusStrategy": obj.get("policyResultStatusStrategy"),
297
+ "requestId": obj.get("requestId"),
298
+ "resetPoint": obj.get("resetPoint"),
299
+ "resourceStrategyType": obj.get("resourceStrategyType"),
300
+ "resultPersistencePath": obj.get("resultPersistencePath"),
301
+ "resultStatus": obj.get("resultStatus"),
302
+ "rightEngineType": obj.get("rightEngineType"),
303
+ "rightFilter": obj.get("rightFilter"),
304
+ "rightLastMarker": Marker.from_dict(obj["rightLastMarker"]) if obj.get("rightLastMarker") is not None else None,
305
+ "rightMarkerConfig": MarkerConfig.from_dict(obj["rightMarkerConfig"]) if obj.get("rightMarkerConfig") is not None else None,
306
+ "rightSparkFilterSelectedColumns": obj.get("rightSparkFilterSelectedColumns"),
307
+ "rightSparkSQLDynamicFilterVariableMapping": RuleSparkSQLDynamicFilterVariableMapping.from_dict(obj["rightSparkSQLDynamicFilterVariableMapping"]) if obj.get("rightSparkSQLDynamicFilterVariableMapping") is not None else None,
308
+ "rightSparkSQLFilterType": obj.get("rightSparkSQLFilterType"),
309
+ "ruleId": obj.get("ruleId"),
310
+ "ruleName": obj.get("ruleName"),
311
+ "ruleSelectionEnabled": obj.get("ruleSelectionEnabled"),
312
+ "ruleType": obj.get("ruleType"),
313
+ "ruleVersion": obj.get("ruleVersion"),
314
+ "scheduleInstanceId": obj.get("scheduleInstanceId"),
315
+ "selectedResourceInventory": obj.get("selectedResourceInventory"),
316
+ "sourceExecutionId": obj.get("sourceExecutionId"),
317
+ "sparkFilterSelectedColumns": obj.get("sparkFilterSelectedColumns"),
318
+ "sparkResourceConfig": SparkResourceConfig.from_dict(obj["sparkResourceConfig"]) if obj.get("sparkResourceConfig") is not None else None,
319
+ "sparkSQLDynamicFilterVariableMapping": RuleSparkSQLDynamicFilterVariableMapping.from_dict(obj["sparkSQLDynamicFilterVariableMapping"]) if obj.get("sparkSQLDynamicFilterVariableMapping") is not None else None,
320
+ "sparkSQLFilterType": obj.get("sparkSQLFilterType"),
321
+ "startedAt": obj.get("startedAt"),
322
+ "thresholdLevel": RuleThresholdConfiguration.from_dict(obj["thresholdLevel"]) if obj.get("thresholdLevel") is not None else None,
323
+ "treatZeroRowsAsSuccess": obj.get("treatZeroRowsAsSuccess")
324
+ })
325
+ return _obj
326
+
327
+
@@ -0,0 +1,90 @@
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
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class RuleExecutionResult(BaseModel):
27
+ """
28
+ RuleExecutionResult
29
+ """ # noqa: E501
30
+ rule_execution_type: StrictStr = Field(description="Allowed values at generation time: RECONCILIATION_RULE_TYPE_EXECUTION, DQ_RULE_TYPE_EXECUTION, DATA_DRIFT_EXECUTION, SCHEMA_DRIFT_EXECUTION, DATA_CADENCE_TYPE_EXECUTION, PROFILE_ANOMALY_TYPE_EXECUTION, AUTO_ANOMALY_TYPE_EXECUTION.", alias="ruleExecutionType")
31
+ status: StrictStr = Field(description="Allowed values at generation time: STARTED, RUNNING, ERRORED, WARNING, SUCCESSFUL, ABORTED, SKIPPED, WAITING, ANOMALY_DETECTION, EXECUTION_RESULT.")
32
+ __properties: ClassVar[List[str]] = ["ruleExecutionType", "status"]
33
+
34
+ model_config = ConfigDict(
35
+ validate_by_name=True,
36
+ validate_by_alias=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.model_dump(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(to_jsonable_python(self.to_dict()))
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of RuleExecutionResult from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ return _dict
74
+
75
+ @classmethod
76
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
77
+ """Create an instance of RuleExecutionResult from a dict"""
78
+ if obj is None:
79
+ return None
80
+
81
+ if not isinstance(obj, dict):
82
+ return cls.model_validate(obj)
83
+
84
+ _obj = cls.model_validate({
85
+ "ruleExecutionType": obj.get("ruleExecutionType"),
86
+ "status": obj.get("status")
87
+ })
88
+ return _obj
89
+
90
+