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,119 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Catalog Control Plane API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+ from pydantic_core import to_jsonable_python
25
+
26
+ class AnomalyDetails(BaseModel):
27
+ """
28
+ AnomalyDetails
29
+ """ # noqa: E501
30
+ actual: StrictStr
31
+ anomaly_strength: Optional[StrictStr] = Field(default=None, alias="anomalyStrength")
32
+ expected: StrictStr
33
+ feedback: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: NOT_ANOMALY, ANOMALY, EXCLUDE, NO_FEEDBACK.")
34
+ is_anomaly: Optional[StrictBool] = Field(default=None, alias="isAnomaly")
35
+ lower: Optional[Union[StrictFloat, StrictInt]] = None
36
+ strength: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: HIGH, MEDIUM, LOW.")
37
+ upper: Optional[Union[StrictFloat, StrictInt]] = None
38
+ value: Optional[Union[StrictFloat, StrictInt]] = None
39
+ __properties: ClassVar[List[str]] = ["actual", "anomalyStrength", "expected", "feedback", "isAnomaly", "lower", "strength", "upper", "value"]
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 AnomalyDetails 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 anomaly_strength (nullable) is None
81
+ # and model_fields_set contains the field
82
+ if self.anomaly_strength is None and "anomaly_strength" in self.model_fields_set:
83
+ _dict['anomalyStrength'] = None
84
+
85
+ # set to None if feedback (nullable) is None
86
+ # and model_fields_set contains the field
87
+ if self.feedback is None and "feedback" in self.model_fields_set:
88
+ _dict['feedback'] = None
89
+
90
+ # set to None if strength (nullable) is None
91
+ # and model_fields_set contains the field
92
+ if self.strength is None and "strength" in self.model_fields_set:
93
+ _dict['strength'] = None
94
+
95
+ return _dict
96
+
97
+ @classmethod
98
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
99
+ """Create an instance of AnomalyDetails from a dict"""
100
+ if obj is None:
101
+ return None
102
+
103
+ if not isinstance(obj, dict):
104
+ return cls.model_validate(obj)
105
+
106
+ _obj = cls.model_validate({
107
+ "actual": obj.get("actual"),
108
+ "anomalyStrength": obj.get("anomalyStrength"),
109
+ "expected": obj.get("expected"),
110
+ "feedback": obj.get("feedback"),
111
+ "isAnomaly": obj.get("isAnomaly"),
112
+ "lower": obj.get("lower"),
113
+ "strength": obj.get("strength"),
114
+ "upper": obj.get("upper"),
115
+ "value": obj.get("value")
116
+ })
117
+ return _obj
118
+
119
+
@@ -0,0 +1,105 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Catalog Control Plane API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
+
8
+ The version of the OpenAPI document: 1.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from acceldata.models.api.catalog.above_configs_success import AboveConfigsSuccess
23
+ from acceldata.models.api.catalog.anomaly_config import AnomalyConfig
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+ from pydantic_core import to_jsonable_python
27
+
28
+ class AnomalyThresholdConfig(BaseModel):
29
+ """
30
+ AnomalyThresholdConfig
31
+ """ # noqa: E501
32
+ config: AnomalyConfig
33
+ success: Optional[AboveConfigsSuccess] = None
34
+ type: StrictStr = Field(description="Allowed values at generation time: ANOMALY, RELATIVE, TIME_BASED, ABSOLUTE.")
35
+ warning: Optional[AboveConfigsSuccess] = None
36
+ __properties: ClassVar[List[str]] = ["config", "success", "type", "warning"]
37
+
38
+ model_config = ConfigDict(
39
+ validate_by_name=True,
40
+ validate_by_alias=True,
41
+ validate_assignment=True,
42
+ protected_namespaces=(),
43
+ )
44
+
45
+
46
+ def to_str(self) -> str:
47
+ """Returns the string representation of the model using alias"""
48
+ return pprint.pformat(self.model_dump(by_alias=True))
49
+
50
+ def to_json(self) -> str:
51
+ """Returns the JSON representation of the model using alias"""
52
+ return json.dumps(to_jsonable_python(self.to_dict()))
53
+
54
+ @classmethod
55
+ def from_json(cls, json_str: str) -> Optional[Self]:
56
+ """Create an instance of AnomalyThresholdConfig from a JSON string"""
57
+ return cls.from_dict(json.loads(json_str))
58
+
59
+ def to_dict(self) -> Dict[str, Any]:
60
+ """Return the dictionary representation of the model using alias.
61
+
62
+ This has the following differences from calling pydantic's
63
+ `self.model_dump(by_alias=True)`:
64
+
65
+ * `None` is only added to the output dict for nullable fields that
66
+ were set at model initialization. Other fields with value `None`
67
+ are ignored.
68
+ """
69
+ excluded_fields: Set[str] = set([
70
+ ])
71
+
72
+ _dict = self.model_dump(
73
+ by_alias=True,
74
+ exclude=excluded_fields,
75
+ exclude_none=True,
76
+ )
77
+ # override the default output from pydantic by calling `to_dict()` of config
78
+ if self.config:
79
+ _dict['config'] = self.config.to_dict()
80
+ # override the default output from pydantic by calling `to_dict()` of success
81
+ if self.success:
82
+ _dict['success'] = self.success.to_dict()
83
+ # override the default output from pydantic by calling `to_dict()` of warning
84
+ if self.warning:
85
+ _dict['warning'] = self.warning.to_dict()
86
+ return _dict
87
+
88
+ @classmethod
89
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
90
+ """Create an instance of AnomalyThresholdConfig from a dict"""
91
+ if obj is None:
92
+ return None
93
+
94
+ if not isinstance(obj, dict):
95
+ return cls.model_validate(obj)
96
+
97
+ _obj = cls.model_validate({
98
+ "config": AnomalyConfig.from_dict(obj["config"]) if obj.get("config") is not None else None,
99
+ "success": AboveConfigsSuccess.from_dict(obj["success"]) if obj.get("success") is not None else None,
100
+ "type": obj.get("type"),
101
+ "warning": AboveConfigsSuccess.from_dict(obj["warning"]) if obj.get("warning") is not None else None
102
+ })
103
+ return _obj
104
+
105
+
@@ -0,0 +1,92 @@
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, 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 Artifact(BaseModel):
27
+ """
28
+ Artifact
29
+ """ # noqa: E501
30
+ name: StrictStr
31
+ path: StrictStr
32
+ version: StrictStr
33
+ __properties: ClassVar[List[str]] = ["name", "path", "version"]
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 Artifact 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 Artifact 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
+ "name": obj.get("name"),
87
+ "path": obj.get("path"),
88
+ "version": obj.get("version")
89
+ })
90
+ return _obj
91
+
92
+
@@ -0,0 +1,171 @@
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.connection import Connection
24
+ from acceldata.models.api.catalog.crawler import Crawler
25
+ from acceldata.models.api.catalog.security_config import SecurityConfig
26
+ from acceldata.models.api.catalog.source_type import SourceType
27
+ from typing import Optional, Set
28
+ from typing_extensions import Self
29
+ from pydantic_core import to_jsonable_python
30
+
31
+ class Assembly(BaseModel):
32
+ """
33
+ Assembly
34
+ """ # noqa: E501
35
+ analytics_pipeline_id: Optional[StrictInt] = Field(default=None, alias="analyticsPipelineId")
36
+ assembly_properties: Optional[Dict[str, Any]] = Field(default=None, alias="assemblyProperties")
37
+ auto_profile: StrictBool = Field(alias="autoProfile")
38
+ configuration: Optional[Dict[str, Any]] = None
39
+ conn: Optional[Connection] = None
40
+ connection_id: Optional[StrictInt] = Field(default=None, alias="connectionId")
41
+ crawler: Crawler
42
+ created_at: datetime = Field(alias="createdAt")
43
+ created_by: Optional[StrictStr] = Field(default=None, alias="createdBy")
44
+ current_snapshot: Optional[StrictStr] = Field(default=None, alias="currentSnapshot")
45
+ description: StrictStr
46
+ id: Optional[StrictInt] = None
47
+ integration_id: Optional[StrictStr] = Field(default=None, alias="integrationId")
48
+ is_protected_resource: Optional[StrictBool] = Field(default=False, alias="isProtectedResource")
49
+ is_secured: StrictBool = Field(alias="isSecured")
50
+ is_virtual: StrictBool = Field(alias="isVirtual")
51
+ name: StrictStr
52
+ schedule: Optional[StrictStr] = None
53
+ security_config: Optional[SecurityConfig] = Field(default=None, alias="securityConfig")
54
+ source_type: SourceType = Field(alias="sourceType")
55
+ status: StrictStr = Field(description="Allowed values at generation time: ACTIVE, MARKED_FOR_DELETED.")
56
+ tenant_id: StrictStr = Field(alias="tenantId")
57
+ time_zone: StrictStr = Field(alias="timeZone")
58
+ updated_at: datetime = Field(alias="updatedAt")
59
+ __properties: ClassVar[List[str]] = ["analyticsPipelineId", "assemblyProperties", "autoProfile", "configuration", "conn", "connectionId", "crawler", "createdAt", "createdBy", "currentSnapshot", "description", "id", "integrationId", "isProtectedResource", "isSecured", "isVirtual", "name", "schedule", "securityConfig", "sourceType", "status", "tenantId", "timeZone", "updatedAt"]
60
+
61
+ model_config = ConfigDict(
62
+ validate_by_name=True,
63
+ validate_by_alias=True,
64
+ validate_assignment=True,
65
+ protected_namespaces=(),
66
+ )
67
+
68
+
69
+ def to_str(self) -> str:
70
+ """Returns the string representation of the model using alias"""
71
+ return pprint.pformat(self.model_dump(by_alias=True))
72
+
73
+ def to_json(self) -> str:
74
+ """Returns the JSON representation of the model using alias"""
75
+ return json.dumps(to_jsonable_python(self.to_dict()))
76
+
77
+ @classmethod
78
+ def from_json(cls, json_str: str) -> Optional[Self]:
79
+ """Create an instance of Assembly from a JSON string"""
80
+ return cls.from_dict(json.loads(json_str))
81
+
82
+ def to_dict(self) -> Dict[str, Any]:
83
+ """Return the dictionary representation of the model using alias.
84
+
85
+ This has the following differences from calling pydantic's
86
+ `self.model_dump(by_alias=True)`:
87
+
88
+ * `None` is only added to the output dict for nullable fields that
89
+ were set at model initialization. Other fields with value `None`
90
+ are ignored.
91
+ """
92
+ excluded_fields: Set[str] = set([
93
+ ])
94
+
95
+ _dict = self.model_dump(
96
+ by_alias=True,
97
+ exclude=excluded_fields,
98
+ exclude_none=True,
99
+ )
100
+ # override the default output from pydantic by calling `to_dict()` of conn
101
+ if self.conn:
102
+ _dict['conn'] = self.conn.to_dict()
103
+ # override the default output from pydantic by calling `to_dict()` of crawler
104
+ if self.crawler:
105
+ _dict['crawler'] = self.crawler.to_dict()
106
+ # override the default output from pydantic by calling `to_dict()` of security_config
107
+ if self.security_config:
108
+ _dict['securityConfig'] = self.security_config.to_dict()
109
+ # override the default output from pydantic by calling `to_dict()` of source_type
110
+ if self.source_type:
111
+ _dict['sourceType'] = self.source_type.to_dict()
112
+ # set to None if created_by (nullable) is None
113
+ # and model_fields_set contains the field
114
+ if self.created_by is None and "created_by" in self.model_fields_set:
115
+ _dict['createdBy'] = None
116
+
117
+ # set to None if current_snapshot (nullable) is None
118
+ # and model_fields_set contains the field
119
+ if self.current_snapshot is None and "current_snapshot" in self.model_fields_set:
120
+ _dict['currentSnapshot'] = None
121
+
122
+ # set to None if integration_id (nullable) is None
123
+ # and model_fields_set contains the field
124
+ if self.integration_id is None and "integration_id" in self.model_fields_set:
125
+ _dict['integrationId'] = None
126
+
127
+ # set to None if schedule (nullable) is None
128
+ # and model_fields_set contains the field
129
+ if self.schedule is None and "schedule" in self.model_fields_set:
130
+ _dict['schedule'] = None
131
+
132
+ return _dict
133
+
134
+ @classmethod
135
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
136
+ """Create an instance of Assembly from a dict"""
137
+ if obj is None:
138
+ return None
139
+
140
+ if not isinstance(obj, dict):
141
+ return cls.model_validate(obj)
142
+
143
+ _obj = cls.model_validate({
144
+ "analyticsPipelineId": obj.get("analyticsPipelineId"),
145
+ "assemblyProperties": obj.get("assemblyProperties"),
146
+ "autoProfile": obj.get("autoProfile") if obj.get("autoProfile") is not None else False,
147
+ "configuration": obj.get("configuration"),
148
+ "conn": Connection.from_dict(obj["conn"]) if obj.get("conn") is not None else None,
149
+ "connectionId": obj.get("connectionId"),
150
+ "crawler": Crawler.from_dict(obj["crawler"]) if obj.get("crawler") is not None else None,
151
+ "createdAt": obj.get("createdAt"),
152
+ "createdBy": obj.get("createdBy"),
153
+ "currentSnapshot": obj.get("currentSnapshot"),
154
+ "description": obj.get("description"),
155
+ "id": obj.get("id"),
156
+ "integrationId": obj.get("integrationId"),
157
+ "isProtectedResource": obj.get("isProtectedResource") if obj.get("isProtectedResource") is not None else False,
158
+ "isSecured": obj.get("isSecured") if obj.get("isSecured") is not None else False,
159
+ "isVirtual": obj.get("isVirtual") if obj.get("isVirtual") is not None else False,
160
+ "name": obj.get("name"),
161
+ "schedule": obj.get("schedule"),
162
+ "securityConfig": SecurityConfig.from_dict(obj["securityConfig"]) if obj.get("securityConfig") is not None else None,
163
+ "sourceType": SourceType.from_dict(obj["sourceType"]) if obj.get("sourceType") is not None else None,
164
+ "status": obj.get("status") if obj.get("status") is not None else 'ACTIVE',
165
+ "tenantId": obj.get("tenantId"),
166
+ "timeZone": obj.get("timeZone") if obj.get("timeZone") is not None else 'GMT',
167
+ "updatedAt": obj.get("updatedAt")
168
+ })
169
+ return _obj
170
+
171
+
@@ -0,0 +1,162 @@
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.assembly import Assembly
24
+ from acceldata.models.api.catalog.asset_type import AssetType
25
+ from acceldata.models.api.catalog.source_type import SourceType
26
+ from typing import Optional, Set
27
+ from typing_extensions import Self
28
+ from pydantic_core import to_jsonable_python
29
+
30
+ class Asset(BaseModel):
31
+ """
32
+ Asset
33
+ """ # noqa: E501
34
+ alias: Optional[StrictStr] = None
35
+ assembly: Assembly
36
+ asset_type: AssetType = Field(alias="assetType")
37
+ created_at: datetime = Field(alias="createdAt")
38
+ current_snapshot: Optional[StrictStr] = Field(default=None, alias="currentSnapshot")
39
+ custom_asset_type: Optional[StrictStr] = Field(default=None, description="Allowed values at generation time: SQL_VIEW, SQL_VIEW_COLUMN, VISUAL_VIEW, VISUAL_VIEW_COLUMN.", alias="customAssetType")
40
+ description: StrictStr
41
+ id: Optional[StrictInt] = None
42
+ imprint: Optional[StrictStr] = None
43
+ is_active: StrictBool = Field(alias="isActive")
44
+ is_custom: StrictBool = Field(alias="isCustom")
45
+ is_deleted: StrictBool = Field(alias="isDeleted")
46
+ is_segmented: StrictBool = Field(alias="isSegmented")
47
+ name: StrictStr
48
+ parent_id: Optional[StrictInt] = Field(default=None, alias="parentId")
49
+ snapshots: Optional[List[StrictStr]] = None
50
+ source_type: SourceType = Field(alias="sourceType")
51
+ uid: StrictStr
52
+ updated_at: datetime = Field(alias="updatedAt")
53
+ __properties: ClassVar[List[str]] = ["alias", "assembly", "assetType", "createdAt", "currentSnapshot", "customAssetType", "description", "id", "imprint", "isActive", "isCustom", "isDeleted", "isSegmented", "name", "parentId", "snapshots", "sourceType", "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 Asset 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 assembly
95
+ if self.assembly:
96
+ _dict['assembly'] = self.assembly.to_dict()
97
+ # override the default output from pydantic by calling `to_dict()` of asset_type
98
+ if self.asset_type:
99
+ _dict['assetType'] = self.asset_type.to_dict()
100
+ # override the default output from pydantic by calling `to_dict()` of source_type
101
+ if self.source_type:
102
+ _dict['sourceType'] = self.source_type.to_dict()
103
+ # set to None if alias (nullable) is None
104
+ # and model_fields_set contains the field
105
+ if self.alias is None and "alias" in self.model_fields_set:
106
+ _dict['alias'] = None
107
+
108
+ # set to None if current_snapshot (nullable) is None
109
+ # and model_fields_set contains the field
110
+ if self.current_snapshot is None and "current_snapshot" in self.model_fields_set:
111
+ _dict['currentSnapshot'] = None
112
+
113
+ # set to None if custom_asset_type (nullable) is None
114
+ # and model_fields_set contains the field
115
+ if self.custom_asset_type is None and "custom_asset_type" in self.model_fields_set:
116
+ _dict['customAssetType'] = None
117
+
118
+ # set to None if imprint (nullable) is None
119
+ # and model_fields_set contains the field
120
+ if self.imprint is None and "imprint" in self.model_fields_set:
121
+ _dict['imprint'] = None
122
+
123
+ # set to None if snapshots (nullable) is None
124
+ # and model_fields_set contains the field
125
+ if self.snapshots is None and "snapshots" in self.model_fields_set:
126
+ _dict['snapshots'] = None
127
+
128
+ return _dict
129
+
130
+ @classmethod
131
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
132
+ """Create an instance of Asset from a dict"""
133
+ if obj is None:
134
+ return None
135
+
136
+ if not isinstance(obj, dict):
137
+ return cls.model_validate(obj)
138
+
139
+ _obj = cls.model_validate({
140
+ "alias": obj.get("alias"),
141
+ "assembly": Assembly.from_dict(obj["assembly"]) if obj.get("assembly") is not None else None,
142
+ "assetType": AssetType.from_dict(obj["assetType"]) if obj.get("assetType") is not None else None,
143
+ "createdAt": obj.get("createdAt"),
144
+ "currentSnapshot": obj.get("currentSnapshot"),
145
+ "customAssetType": obj.get("customAssetType"),
146
+ "description": obj.get("description"),
147
+ "id": obj.get("id"),
148
+ "imprint": obj.get("imprint"),
149
+ "isActive": obj.get("isActive"),
150
+ "isCustom": obj.get("isCustom"),
151
+ "isDeleted": obj.get("isDeleted"),
152
+ "isSegmented": obj.get("isSegmented"),
153
+ "name": obj.get("name"),
154
+ "parentId": obj.get("parentId"),
155
+ "snapshots": obj.get("snapshots"),
156
+ "sourceType": SourceType.from_dict(obj["sourceType"]) if obj.get("sourceType") is not None else None,
157
+ "uid": obj.get("uid"),
158
+ "updatedAt": obj.get("updatedAt")
159
+ })
160
+ return _obj
161
+
162
+