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,201 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pipeline 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, StrictFloat, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from acceldata.models.api.pipeline.meta import Meta
23
+ from acceldata.models.api.pipeline.metric import Metric
24
+ from acceldata.models.api.pipeline.policy_summary import PolicySummary
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+ from pydantic_core import to_jsonable_python
28
+
29
+ class Node(BaseModel):
30
+ """
31
+ Node
32
+ """ # noqa: E501
33
+ alerts_count: Optional[StrictInt] = Field(default=None, alias="alertsCount")
34
+ asset_id: Optional[StrictInt] = Field(default=None, alias="assetId")
35
+ asset_type: Optional[StrictStr] = Field(default=None, alias="assetType")
36
+ context: Optional[Dict[str, Any]] = None
37
+ created_via: List[StrictStr] = Field(alias="createdVia")
38
+ data_type: Optional[StrictStr] = Field(default=None, alias="dataType")
39
+ description: Optional[StrictStr] = None
40
+ id: Optional[StrictInt] = None
41
+ job_node_metric: Optional[List[Metric]] = Field(default=None, alias="jobNodeMetric")
42
+ job_status: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: SUCCESS, ERROR, ABORTED, RUNNING, SKIPPED.", alias="jobStatus")
43
+ linked_pipeline_run_id: Optional[StrictInt] = Field(default=None, alias="linkedPipelineRunId")
44
+ meta: Optional[Meta] = None
45
+ name: Optional[StrictStr] = None
46
+ node_properties: Optional[Dict[str, Any]] = Field(default=None, alias="nodeProperties")
47
+ parent_id: Optional[StrictInt] = Field(default=None, alias="parentId")
48
+ parent_node_id: Optional[StrictInt] = Field(default=None, alias="parentNodeId")
49
+ pipeline_id: Optional[StrictInt] = Field(default=None, alias="pipelineId")
50
+ related_pipeline_count: Optional[StrictInt] = Field(default=None, alias="relatedPipelineCount")
51
+ reliability_policy_summary: Optional[List[PolicySummary]] = Field(default=None, alias="reliabilityPolicySummary")
52
+ reliability_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="reliabilityScore")
53
+ source_type: Optional[StrictStr] = Field(default=None, alias="sourceType")
54
+ status: StrictStr = Field(description="Allowed values at generation time: ACTIVE, STALE, DELETED.")
55
+ type: StrictStr = Field(description="Allowed values at generation time: ASSET, FUNCTIONAL.")
56
+ uid: Optional[StrictStr] = None
57
+ version_id: Optional[StrictInt] = Field(default=None, alias="versionId")
58
+ __properties: ClassVar[List[str]] = ["alertsCount", "assetId", "assetType", "context", "createdVia", "dataType", "description", "id", "jobNodeMetric", "jobStatus", "linkedPipelineRunId", "meta", "name", "nodeProperties", "parentId", "parentNodeId", "pipelineId", "relatedPipelineCount", "reliabilityPolicySummary", "reliabilityScore", "sourceType", "status", "type", "uid", "versionId"]
59
+
60
+ model_config = ConfigDict(
61
+ validate_by_name=True,
62
+ validate_by_alias=True,
63
+ validate_assignment=True,
64
+ protected_namespaces=(),
65
+ )
66
+
67
+
68
+ def to_str(self) -> str:
69
+ """Returns the string representation of the model using alias"""
70
+ return pprint.pformat(self.model_dump(by_alias=True))
71
+
72
+ def to_json(self) -> str:
73
+ """Returns the JSON representation of the model using alias"""
74
+ return json.dumps(to_jsonable_python(self.to_dict()))
75
+
76
+ @classmethod
77
+ def from_json(cls, json_str: str) -> Optional[Self]:
78
+ """Create an instance of Node from a JSON string"""
79
+ return cls.from_dict(json.loads(json_str))
80
+
81
+ def to_dict(self) -> Dict[str, Any]:
82
+ """Return the dictionary representation of the model using alias.
83
+
84
+ This has the following differences from calling pydantic's
85
+ `self.model_dump(by_alias=True)`:
86
+
87
+ * `None` is only added to the output dict for nullable fields that
88
+ were set at model initialization. Other fields with value `None`
89
+ are ignored.
90
+ """
91
+ excluded_fields: Set[str] = set([
92
+ ])
93
+
94
+ _dict = self.model_dump(
95
+ by_alias=True,
96
+ exclude=excluded_fields,
97
+ exclude_none=True,
98
+ )
99
+ # override the default output from pydantic by calling `to_dict()` of each item in job_node_metric (list)
100
+ _items = []
101
+ if self.job_node_metric:
102
+ for _item_job_node_metric in self.job_node_metric:
103
+ if _item_job_node_metric:
104
+ _items.append(_item_job_node_metric.to_dict())
105
+ _dict['jobNodeMetric'] = _items
106
+ # override the default output from pydantic by calling `to_dict()` of meta
107
+ if self.meta:
108
+ _dict['meta'] = self.meta.to_dict()
109
+ # override the default output from pydantic by calling `to_dict()` of each item in reliability_policy_summary (list)
110
+ _items = []
111
+ if self.reliability_policy_summary:
112
+ for _item_reliability_policy_summary in self.reliability_policy_summary:
113
+ if _item_reliability_policy_summary:
114
+ _items.append(_item_reliability_policy_summary.to_dict())
115
+ _dict['reliabilityPolicySummary'] = _items
116
+ # set to None if asset_type (nullable) is None
117
+ # and model_fields_set contains the field
118
+ if self.asset_type is None and "asset_type" in self.model_fields_set:
119
+ _dict['assetType'] = None
120
+
121
+ # set to None if data_type (nullable) is None
122
+ # and model_fields_set contains the field
123
+ if self.data_type is None and "data_type" in self.model_fields_set:
124
+ _dict['dataType'] = None
125
+
126
+ # set to None if description (nullable) is None
127
+ # and model_fields_set contains the field
128
+ if self.description is None and "description" in self.model_fields_set:
129
+ _dict['description'] = None
130
+
131
+ # set to None if job_node_metric (nullable) is None
132
+ # and model_fields_set contains the field
133
+ if self.job_node_metric is None and "job_node_metric" in self.model_fields_set:
134
+ _dict['jobNodeMetric'] = None
135
+
136
+ # set to None if job_status (nullable) is None
137
+ # and model_fields_set contains the field
138
+ if self.job_status is None and "job_status" in self.model_fields_set:
139
+ _dict['jobStatus'] = None
140
+
141
+ # set to None if name (nullable) is None
142
+ # and model_fields_set contains the field
143
+ if self.name is None and "name" in self.model_fields_set:
144
+ _dict['name'] = None
145
+
146
+ # set to None if reliability_policy_summary (nullable) is None
147
+ # and model_fields_set contains the field
148
+ if self.reliability_policy_summary is None and "reliability_policy_summary" in self.model_fields_set:
149
+ _dict['reliabilityPolicySummary'] = None
150
+
151
+ # set to None if source_type (nullable) is None
152
+ # and model_fields_set contains the field
153
+ if self.source_type is None and "source_type" in self.model_fields_set:
154
+ _dict['sourceType'] = None
155
+
156
+ # set to None if uid (nullable) is None
157
+ # and model_fields_set contains the field
158
+ if self.uid is None and "uid" in self.model_fields_set:
159
+ _dict['uid'] = None
160
+
161
+ return _dict
162
+
163
+ @classmethod
164
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
165
+ """Create an instance of Node from a dict"""
166
+ if obj is None:
167
+ return None
168
+
169
+ if not isinstance(obj, dict):
170
+ return cls.model_validate(obj)
171
+
172
+ _obj = cls.model_validate({
173
+ "alertsCount": obj.get("alertsCount"),
174
+ "assetId": obj.get("assetId"),
175
+ "assetType": obj.get("assetType"),
176
+ "context": obj.get("context"),
177
+ "createdVia": obj.get("createdVia"),
178
+ "dataType": obj.get("dataType"),
179
+ "description": obj.get("description"),
180
+ "id": obj.get("id"),
181
+ "jobNodeMetric": [Metric.from_dict(_item) for _item in obj["jobNodeMetric"]] if obj.get("jobNodeMetric") is not None else None,
182
+ "jobStatus": obj.get("jobStatus"),
183
+ "linkedPipelineRunId": obj.get("linkedPipelineRunId"),
184
+ "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None,
185
+ "name": obj.get("name"),
186
+ "nodeProperties": obj.get("nodeProperties"),
187
+ "parentId": obj.get("parentId"),
188
+ "parentNodeId": obj.get("parentNodeId"),
189
+ "pipelineId": obj.get("pipelineId"),
190
+ "relatedPipelineCount": obj.get("relatedPipelineCount"),
191
+ "reliabilityPolicySummary": [PolicySummary.from_dict(_item) for _item in obj["reliabilityPolicySummary"]] if obj.get("reliabilityPolicySummary") is not None else None,
192
+ "reliabilityScore": obj.get("reliabilityScore"),
193
+ "sourceType": obj.get("sourceType"),
194
+ "status": obj.get("status") if obj.get("status") is not None else 'ACTIVE',
195
+ "type": obj.get("type"),
196
+ "uid": obj.get("uid"),
197
+ "versionId": obj.get("versionId")
198
+ })
199
+ return _obj
200
+
201
+
@@ -0,0 +1,92 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pipeline 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
21
+ from typing import Any, ClassVar, Dict, List
22
+ from acceldata.models.api.pipeline.node import Node
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+ from pydantic_core import to_jsonable_python
26
+
27
+ class NodeResponse(BaseModel):
28
+ """
29
+ NodeResponse
30
+ """ # noqa: E501
31
+ node: Node
32
+ __properties: ClassVar[List[str]] = ["node"]
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 NodeResponse 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
+ # override the default output from pydantic by calling `to_dict()` of node
74
+ if self.node:
75
+ _dict['node'] = self.node.to_dict()
76
+ return _dict
77
+
78
+ @classmethod
79
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
80
+ """Create an instance of NodeResponse from a dict"""
81
+ if obj is None:
82
+ return None
83
+
84
+ if not isinstance(obj, dict):
85
+ return cls.model_validate(obj)
86
+
87
+ _obj = cls.model_validate({
88
+ "node": Node.from_dict(obj["node"]) if obj.get("node") is not None else None
89
+ })
90
+ return _obj
91
+
92
+
@@ -0,0 +1,114 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pipeline 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 NotificationPayload(BaseModel):
27
+ """
28
+ NotificationPayload
29
+ """ # noqa: E501
30
+ alerts_enabled: StrictBool = Field(alias="alertsEnabled")
31
+ configured_notification_group_ids: List[StrictInt] = Field(alias="configuredNotificationGroupIds")
32
+ notify_on: List[StrictStr] = Field(alias="notifyOn")
33
+ notify_on_success: StrictBool = Field(alias="notifyOnSuccess")
34
+ notify_on_warning: StrictBool = Field(alias="notifyOnWarning")
35
+ re_notify_factor: Optional[StrictInt] = Field(default=None, alias="reNotifyFactor")
36
+ re_notify_mode: StrictStr = Field(description="Allowed values at generation time: INTERVAL, RULE_CHANGE.", alias="reNotifyMode")
37
+ severity: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: LOW, MEDIUM, HIGH, CRITICAL.")
38
+ tags: Optional[List[StrictStr]] = None
39
+ __properties: ClassVar[List[str]] = ["alertsEnabled", "configuredNotificationGroupIds", "notifyOn", "notifyOnSuccess", "notifyOnWarning", "reNotifyFactor", "reNotifyMode", "severity", "tags"]
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 NotificationPayload 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 severity (nullable) is None
81
+ # and model_fields_set contains the field
82
+ if self.severity is None and "severity" in self.model_fields_set:
83
+ _dict['severity'] = None
84
+
85
+ # set to None if tags (nullable) is None
86
+ # and model_fields_set contains the field
87
+ if self.tags is None and "tags" in self.model_fields_set:
88
+ _dict['tags'] = None
89
+
90
+ return _dict
91
+
92
+ @classmethod
93
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
94
+ """Create an instance of NotificationPayload from a dict"""
95
+ if obj is None:
96
+ return None
97
+
98
+ if not isinstance(obj, dict):
99
+ return cls.model_validate(obj)
100
+
101
+ _obj = cls.model_validate({
102
+ "alertsEnabled": obj.get("alertsEnabled"),
103
+ "configuredNotificationGroupIds": obj.get("configuredNotificationGroupIds"),
104
+ "notifyOn": obj.get("notifyOn"),
105
+ "notifyOnSuccess": obj.get("notifyOnSuccess"),
106
+ "notifyOnWarning": obj.get("notifyOnWarning"),
107
+ "reNotifyFactor": obj.get("reNotifyFactor"),
108
+ "reNotifyMode": obj.get("reNotifyMode"),
109
+ "severity": obj.get("severity"),
110
+ "tags": obj.get("tags")
111
+ })
112
+ return _obj
113
+
114
+
@@ -0,0 +1,152 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pipeline 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.pipeline.meta import Meta
24
+ from acceldata.models.api.pipeline.notification_payload import NotificationPayload
25
+ from acceldata.models.api.pipeline.pipeline_baseline_metric import PipelineBaselineMetric
26
+ from acceldata.models.api.pipeline.tag import Tag
27
+ from typing import Optional, Set
28
+ from typing_extensions import Self
29
+ from pydantic_core import to_jsonable_python
30
+
31
+ class Pipeline(BaseModel):
32
+ """
33
+ Pipeline
34
+ """ # noqa: E501
35
+ context: Optional[Dict[str, Any]] = None
36
+ created_at: Optional[datetime] = Field(default=None, alias="createdAt")
37
+ description: Optional[StrictStr] = None
38
+ enabled: StrictBool
39
+ id: Optional[StrictInt] = None
40
+ interrupt: StrictBool
41
+ latest_run_id: Optional[StrictInt] = Field(default=None, alias="latestRunId")
42
+ meta: Optional[Meta] = None
43
+ name: StrictStr
44
+ notification_channels: Optional[NotificationPayload] = Field(default=None, alias="notificationChannels")
45
+ pipeline_baseline_metric: Optional[PipelineBaselineMetric] = Field(default=None, alias="pipelineBaselineMetric")
46
+ schedule: Optional[StrictStr] = None
47
+ scheduled: StrictBool
48
+ scheduler_type: StrictStr = Field(description="Allowed values at generation time: INTERNAL, EXTERNAL.", alias="schedulerType")
49
+ source_type: StrictStr = Field(description="Allowed values at generation time: AIRFLOW, AZURE_DATA_FACTORY, TRINO, OTHERS, AUTOSYS, SPARK, DBT, FIVETRAN, SNAPLOGIC.", alias="sourceType")
50
+ tags: List[Tag]
51
+ uid: StrictStr = Field(description="Unique id for the pipeline. When omitted on create, the server assigns a new random UUID.")
52
+ updated_at: Optional[datetime] = Field(default=None, alias="updatedAt")
53
+ __properties: ClassVar[List[str]] = ["context", "createdAt", "description", "enabled", "id", "interrupt", "latestRunId", "meta", "name", "notificationChannels", "pipelineBaselineMetric", "schedule", "scheduled", "schedulerType", "sourceType", "tags", "uid", "updatedAt"]
54
+
55
+ model_config = ConfigDict(
56
+ validate_by_name=True,
57
+ validate_by_alias=True,
58
+ validate_assignment=True,
59
+ protected_namespaces=(),
60
+ )
61
+
62
+
63
+ def to_str(self) -> str:
64
+ """Returns the string representation of the model using alias"""
65
+ return pprint.pformat(self.model_dump(by_alias=True))
66
+
67
+ def to_json(self) -> str:
68
+ """Returns the JSON representation of the model using alias"""
69
+ return json.dumps(to_jsonable_python(self.to_dict()))
70
+
71
+ @classmethod
72
+ def from_json(cls, json_str: str) -> Optional[Self]:
73
+ """Create an instance of Pipeline from a JSON string"""
74
+ return cls.from_dict(json.loads(json_str))
75
+
76
+ def to_dict(self) -> Dict[str, Any]:
77
+ """Return the dictionary representation of the model using alias.
78
+
79
+ This has the following differences from calling pydantic's
80
+ `self.model_dump(by_alias=True)`:
81
+
82
+ * `None` is only added to the output dict for nullable fields that
83
+ were set at model initialization. Other fields with value `None`
84
+ are ignored.
85
+ """
86
+ excluded_fields: Set[str] = set([
87
+ ])
88
+
89
+ _dict = self.model_dump(
90
+ by_alias=True,
91
+ exclude=excluded_fields,
92
+ exclude_none=True,
93
+ )
94
+ # override the default output from pydantic by calling `to_dict()` of meta
95
+ if self.meta:
96
+ _dict['meta'] = self.meta.to_dict()
97
+ # override the default output from pydantic by calling `to_dict()` of notification_channels
98
+ if self.notification_channels:
99
+ _dict['notificationChannels'] = self.notification_channels.to_dict()
100
+ # override the default output from pydantic by calling `to_dict()` of pipeline_baseline_metric
101
+ if self.pipeline_baseline_metric:
102
+ _dict['pipelineBaselineMetric'] = self.pipeline_baseline_metric.to_dict()
103
+ # override the default output from pydantic by calling `to_dict()` of each item in tags (list)
104
+ _items = []
105
+ for _item_tags in self.tags or []:
106
+ if _item_tags:
107
+ _items.append(_item_tags.to_dict())
108
+ _dict['tags'] = _items
109
+ # set to None if description (nullable) is None
110
+ # and model_fields_set contains the field
111
+ if self.description is None and "description" in self.model_fields_set:
112
+ _dict['description'] = None
113
+
114
+ # set to None if schedule (nullable) is None
115
+ # and model_fields_set contains the field
116
+ if self.schedule is None and "schedule" in self.model_fields_set:
117
+ _dict['schedule'] = None
118
+
119
+ return _dict
120
+
121
+ @classmethod
122
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
123
+ """Create an instance of Pipeline from a dict"""
124
+ if obj is None:
125
+ return None
126
+
127
+ if not isinstance(obj, dict):
128
+ return cls.model_validate(obj)
129
+
130
+ _obj = cls.model_validate({
131
+ "context": obj.get("context"),
132
+ "createdAt": obj.get("createdAt"),
133
+ "description": obj.get("description"),
134
+ "enabled": obj.get("enabled") if obj.get("enabled") is not None else True,
135
+ "id": obj.get("id"),
136
+ "interrupt": obj.get("interrupt") if obj.get("interrupt") is not None else False,
137
+ "latestRunId": obj.get("latestRunId"),
138
+ "meta": Meta.from_dict(obj["meta"]) if obj.get("meta") is not None else None,
139
+ "name": obj.get("name"),
140
+ "notificationChannels": NotificationPayload.from_dict(obj["notificationChannels"]) if obj.get("notificationChannels") is not None else None,
141
+ "pipelineBaselineMetric": PipelineBaselineMetric.from_dict(obj["pipelineBaselineMetric"]) if obj.get("pipelineBaselineMetric") is not None else None,
142
+ "schedule": obj.get("schedule"),
143
+ "scheduled": obj.get("scheduled") if obj.get("scheduled") is not None else False,
144
+ "schedulerType": obj.get("schedulerType") if obj.get("schedulerType") is not None else 'INTERNAL',
145
+ "sourceType": obj.get("sourceType") if obj.get("sourceType") is not None else 'OTHERS',
146
+ "tags": [Tag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None,
147
+ "uid": obj.get("uid"),
148
+ "updatedAt": obj.get("updatedAt")
149
+ })
150
+ return _obj
151
+
152
+
@@ -0,0 +1,92 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pipeline 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
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class PipelineBaselineMetric(BaseModel):
27
+ """
28
+ PipelineBaselineMetric
29
+ """ # noqa: E501
30
+ include_successful_runs_only: StrictBool = Field(alias="includeSuccessfulRunsOnly")
31
+ metrics: StrictInt
32
+ unit: StrictStr = Field(description="Allowed values at generation time: DAYS, RUNS.")
33
+ __properties: ClassVar[List[str]] = ["includeSuccessfulRunsOnly", "metrics", "unit"]
34
+
35
+ model_config = ConfigDict(
36
+ validate_by_name=True,
37
+ validate_by_alias=True,
38
+ validate_assignment=True,
39
+ protected_namespaces=(),
40
+ )
41
+
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.model_dump(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ return json.dumps(to_jsonable_python(self.to_dict()))
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> Optional[Self]:
53
+ """Create an instance of PipelineBaselineMetric from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self) -> Dict[str, Any]:
57
+ """Return the dictionary representation of the model using alias.
58
+
59
+ This has the following differences from calling pydantic's
60
+ `self.model_dump(by_alias=True)`:
61
+
62
+ * `None` is only added to the output dict for nullable fields that
63
+ were set at model initialization. Other fields with value `None`
64
+ are ignored.
65
+ """
66
+ excluded_fields: Set[str] = set([
67
+ ])
68
+
69
+ _dict = self.model_dump(
70
+ by_alias=True,
71
+ exclude=excluded_fields,
72
+ exclude_none=True,
73
+ )
74
+ return _dict
75
+
76
+ @classmethod
77
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
78
+ """Create an instance of PipelineBaselineMetric from a dict"""
79
+ if obj is None:
80
+ return None
81
+
82
+ if not isinstance(obj, dict):
83
+ return cls.model_validate(obj)
84
+
85
+ _obj = cls.model_validate({
86
+ "includeSuccessfulRunsOnly": obj.get("includeSuccessfulRunsOnly"),
87
+ "metrics": obj.get("metrics"),
88
+ "unit": obj.get("unit")
89
+ })
90
+ return _obj
91
+
92
+