openmetadata-ingestion 1.4.7.2__py3-none-any.whl → 1.5.0.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.

Potentially problematic release.


This version of openmetadata-ingestion might be problematic. Click here for more details.

Files changed (1085) hide show
  1. _openmetadata_testutils/data/dvdrental.zip +0 -0
  2. _openmetadata_testutils/helpers/assumption.py +118 -0
  3. _openmetadata_testutils/helpers/docker.py +38 -0
  4. _openmetadata_testutils/helpers/markers.py +5 -0
  5. _openmetadata_testutils/kafka/load_csv_data.py +133 -0
  6. _openmetadata_testutils/kafka/schema_registry_container.py +31 -0
  7. _openmetadata_testutils/ometa.py +23 -0
  8. _openmetadata_testutils/postgres/conftest.py +75 -0
  9. _openmetadata_testutils/pydantic/test_utils.py +79 -0
  10. airflow_provider_openmetadata/lineage/callback.py +3 -3
  11. airflow_provider_openmetadata/lineage/config/loader.py +1 -1
  12. airflow_provider_openmetadata/lineage/runner.py +5 -5
  13. airflow_provider_openmetadata/lineage/status.py +2 -2
  14. metadata/automations/runner.py +1 -1
  15. metadata/cli/app.py +1 -3
  16. metadata/cli/dataquality.py +8 -8
  17. metadata/cli/ingest.py +8 -8
  18. metadata/cli/lineage.py +10 -5
  19. metadata/cli/profile.py +8 -8
  20. metadata/cli/usage.py +6 -8
  21. metadata/clients/aws_client.py +4 -4
  22. metadata/clients/azure_client.py +1 -1
  23. metadata/clients/domo_client.py +12 -18
  24. metadata/cmd.py +16 -20
  25. metadata/config/common.py +3 -4
  26. metadata/data_quality/api/models.py +2 -2
  27. metadata/data_quality/builders/i_validator_builder.py +100 -0
  28. metadata/{data_insight/producer/producer_interface.py → data_quality/builders/pandas_validator_builder.py} +12 -12
  29. metadata/data_quality/{validations/validator.py → builders/sqa_validator_builder.py} +7 -8
  30. metadata/data_quality/interface/pandas/pandas_test_suite_interface.py +9 -42
  31. metadata/data_quality/interface/sqlalchemy/sqa_test_suite_interface.py +7 -40
  32. metadata/data_quality/interface/test_suite_interface.py +84 -2
  33. metadata/data_quality/processor/test_case_runner.py +76 -40
  34. metadata/data_quality/runner/base_test_suite_source.py +1 -1
  35. metadata/data_quality/runner/core.py +2 -2
  36. metadata/data_quality/source/test_suite.py +17 -15
  37. metadata/data_quality/validations/base_test_handler.py +25 -5
  38. metadata/data_quality/validations/column/base/columnValueLengthsToBeBetween.py +2 -0
  39. metadata/data_quality/validations/column/base/columnValueMaxToBeBetween.py +2 -0
  40. metadata/data_quality/validations/column/base/columnValueMeanToBeBetween.py +2 -0
  41. metadata/data_quality/validations/column/base/columnValueMedianToBeBetween.py +2 -0
  42. metadata/data_quality/validations/column/base/columnValueMinToBeBetween.py +2 -0
  43. metadata/data_quality/validations/column/base/columnValueStdDevToBeBetween.py +2 -0
  44. metadata/data_quality/validations/column/base/columnValuesSumToBeBetween.py +2 -0
  45. metadata/data_quality/validations/column/base/columnValuesToBeBetween.py +24 -14
  46. metadata/data_quality/validations/column/base/columnValuesToBeInSet.py +13 -1
  47. metadata/data_quality/validations/column/base/columnValuesToBeNotInSet.py +1 -1
  48. metadata/data_quality/validations/column/pandas/columnValueLengthsToBeBetween.py +1 -1
  49. metadata/data_quality/validations/column/pandas/columnValueMaxToBeBetween.py +1 -1
  50. metadata/data_quality/validations/column/pandas/columnValueMeanToBeBetween.py +1 -1
  51. metadata/data_quality/validations/column/pandas/columnValueMedianToBeBetween.py +1 -1
  52. metadata/data_quality/validations/column/pandas/columnValueMinToBeBetween.py +1 -1
  53. metadata/data_quality/validations/column/pandas/columnValueStdDevToBeBetween.py +1 -1
  54. metadata/data_quality/validations/column/pandas/columnValuesMissingCount.py +1 -1
  55. metadata/data_quality/validations/column/pandas/columnValuesSumToBeBetween.py +1 -1
  56. metadata/data_quality/validations/column/pandas/columnValuesToBeBetween.py +1 -1
  57. metadata/data_quality/validations/column/pandas/columnValuesToBeInSet.py +1 -1
  58. metadata/data_quality/validations/column/pandas/columnValuesToBeNotInSet.py +1 -1
  59. metadata/data_quality/validations/column/pandas/columnValuesToBeNotNull.py +1 -1
  60. metadata/data_quality/validations/column/pandas/columnValuesToBeUnique.py +1 -1
  61. metadata/data_quality/validations/column/pandas/columnValuesToMatchRegex.py +1 -1
  62. metadata/data_quality/validations/column/pandas/columnValuesToNotMatchRegex.py +1 -1
  63. metadata/data_quality/validations/column/sqlalchemy/columnValueLengthsToBeBetween.py +8 -7
  64. metadata/data_quality/validations/column/sqlalchemy/columnValueMaxToBeBetween.py +1 -1
  65. metadata/data_quality/validations/column/sqlalchemy/columnValueMeanToBeBetween.py +1 -1
  66. metadata/data_quality/validations/column/sqlalchemy/columnValueMedianToBeBetween.py +1 -1
  67. metadata/data_quality/validations/column/sqlalchemy/columnValueMinToBeBetween.py +1 -1
  68. metadata/data_quality/validations/column/sqlalchemy/columnValueStdDevToBeBetween.py +1 -1
  69. metadata/data_quality/validations/column/sqlalchemy/columnValuesMissingCount.py +1 -1
  70. metadata/data_quality/validations/column/sqlalchemy/columnValuesSumToBeBetween.py +1 -1
  71. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeBetween.py +8 -3
  72. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeInSet.py +1 -1
  73. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeNotInSet.py +1 -1
  74. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeNotNull.py +1 -1
  75. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeUnique.py +1 -1
  76. metadata/data_quality/validations/column/sqlalchemy/columnValuesToMatchRegex.py +1 -1
  77. metadata/data_quality/validations/column/sqlalchemy/columnValuesToNotMatchRegex.py +1 -1
  78. metadata/data_quality/validations/models.py +21 -0
  79. metadata/data_quality/validations/runtime_param_setter/param_setter.py +42 -0
  80. metadata/data_quality/validations/runtime_param_setter/param_setter_factory.py +54 -0
  81. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +190 -0
  82. metadata/data_quality/validations/table/base/tableRowCountToBeBetween.py +4 -13
  83. metadata/data_quality/validations/table/pandas/tableRowInsertedCountToBeBetween.py +2 -2
  84. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +434 -0
  85. metadata/examples/workflows/alationsink.yaml +34 -0
  86. metadata/examples/workflows/bigquery_profiler.yaml +1 -1
  87. metadata/examples/workflows/dbtcloud.yaml +26 -0
  88. metadata/examples/workflows/deltalake.yaml +6 -5
  89. metadata/examples/workflows/flink.yaml +33 -0
  90. metadata/examples/workflows/saperp.yaml +24 -0
  91. metadata/examples/workflows/synapse.yaml +24 -0
  92. metadata/generated/antlr/EntityLinkLexer.py +380 -352
  93. metadata/generated/schema/analytics/__init__.py +1 -1
  94. metadata/generated/schema/analytics/basic.py +19 -16
  95. metadata/generated/schema/analytics/reportData.py +26 -18
  96. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  97. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +64 -43
  98. metadata/generated/schema/analytics/reportDataType/entityReportData.py +35 -24
  99. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +18 -11
  100. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +24 -16
  101. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +23 -12
  102. metadata/generated/schema/analytics/webAnalyticEvent.py +75 -42
  103. metadata/generated/schema/analytics/webAnalyticEventData.py +17 -12
  104. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  105. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +24 -16
  106. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +31 -21
  107. metadata/generated/schema/api/__init__.py +1 -1
  108. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +28 -18
  109. metadata/generated/schema/api/analytics/__init__.py +1 -1
  110. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +33 -20
  111. metadata/generated/schema/api/automations/__init__.py +1 -1
  112. metadata/generated/schema/api/automations/createWorkflow.py +46 -27
  113. metadata/generated/schema/api/bulkAssets.py +14 -8
  114. metadata/generated/schema/api/classification/__init__.py +1 -1
  115. metadata/generated/schema/api/classification/createClassification.py +28 -15
  116. metadata/generated/schema/api/classification/createTag.py +43 -24
  117. metadata/generated/schema/api/classification/loadTags.py +11 -6
  118. metadata/generated/schema/api/createBot.py +30 -14
  119. metadata/generated/schema/api/createEventPublisherJob.py +42 -26
  120. metadata/generated/schema/api/createType.py +33 -21
  121. metadata/generated/schema/api/data/__init__.py +1 -1
  122. metadata/generated/schema/api/data/createAPICollection.py +97 -0
  123. metadata/generated/schema/api/data/createAPIEndpoint.py +107 -0
  124. metadata/generated/schema/api/data/createChart.py +71 -39
  125. metadata/generated/schema/api/data/createContainer.py +105 -68
  126. metadata/generated/schema/api/data/createCustomProperty.py +22 -14
  127. metadata/generated/schema/api/data/createDashboard.py +95 -58
  128. metadata/generated/schema/api/data/createDashboardDataModel.py +88 -51
  129. metadata/generated/schema/api/data/createDatabase.py +85 -53
  130. metadata/generated/schema/api/data/createDatabaseSchema.py +81 -50
  131. metadata/generated/schema/api/data/createGlossary.py +51 -34
  132. metadata/generated/schema/api/data/createGlossaryTerm.py +75 -48
  133. metadata/generated/schema/api/data/createMlModel.py +105 -68
  134. metadata/generated/schema/api/data/createPipeline.py +95 -58
  135. metadata/generated/schema/api/data/createQuery.py +85 -54
  136. metadata/generated/schema/api/data/createSearchIndex.py +76 -49
  137. metadata/generated/schema/api/data/createStoredProcedure.py +70 -46
  138. metadata/generated/schema/api/data/createTable.py +87 -58
  139. metadata/generated/schema/api/data/createTableProfile.py +16 -11
  140. metadata/generated/schema/api/data/createTopic.py +120 -75
  141. metadata/generated/schema/api/data/loadGlossary.py +12 -8
  142. metadata/generated/schema/api/data/restoreEntity.py +11 -7
  143. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  144. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +41 -26
  145. metadata/generated/schema/api/dataInsight/custom/__init__.py +3 -0
  146. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +53 -0
  147. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  148. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +49 -21
  149. metadata/generated/schema/api/docStore/__init__.py +1 -1
  150. metadata/generated/schema/api/docStore/createDocument.py +24 -12
  151. metadata/generated/schema/api/domains/__init__.py +1 -1
  152. metadata/generated/schema/api/domains/createDataProduct.py +50 -30
  153. metadata/generated/schema/api/domains/createDomain.py +38 -25
  154. metadata/generated/schema/api/feed/__init__.py +1 -1
  155. metadata/generated/schema/api/feed/closeTask.py +17 -10
  156. metadata/generated/schema/api/feed/createPost.py +16 -11
  157. metadata/generated/schema/api/feed/createSuggestion.py +56 -16
  158. metadata/generated/schema/api/feed/createThread.py +55 -34
  159. metadata/generated/schema/api/feed/resolveTask.py +21 -14
  160. metadata/generated/schema/api/feed/threadCount.py +29 -19
  161. metadata/generated/schema/api/lineage/__init__.py +1 -1
  162. metadata/generated/schema/api/lineage/addLineage.py +11 -6
  163. metadata/generated/schema/api/openMetadataServerVersion.py +18 -11
  164. metadata/generated/schema/api/policies/__init__.py +1 -1
  165. metadata/generated/schema/api/policies/createPolicy.py +38 -18
  166. metadata/generated/schema/api/services/__init__.py +1 -1
  167. metadata/generated/schema/api/services/createApiService.py +60 -0
  168. metadata/generated/schema/api/services/createDashboardService.py +42 -28
  169. metadata/generated/schema/api/services/createDatabaseService.py +42 -28
  170. metadata/generated/schema/api/services/createMessagingService.py +45 -29
  171. metadata/generated/schema/api/services/createMetadataService.py +34 -20
  172. metadata/generated/schema/api/services/createMlModelService.py +42 -28
  173. metadata/generated/schema/api/services/createPipelineService.py +50 -34
  174. metadata/generated/schema/api/services/createSearchService.py +45 -29
  175. metadata/generated/schema/api/services/createStorageService.py +45 -29
  176. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  177. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +45 -24
  178. metadata/generated/schema/api/setOwner.py +17 -8
  179. metadata/generated/schema/api/teams/__init__.py +1 -1
  180. metadata/generated/schema/api/teams/createPersona.py +32 -15
  181. metadata/generated/schema/api/teams/createRole.py +31 -16
  182. metadata/generated/schema/api/teams/createTeam.py +72 -46
  183. metadata/generated/schema/api/teams/createUser.py +75 -47
  184. metadata/generated/schema/api/tests/__init__.py +1 -1
  185. metadata/generated/schema/api/tests/createCustomMetric.py +38 -26
  186. metadata/generated/schema/api/tests/createLogicalTestCases.py +14 -10
  187. metadata/generated/schema/api/tests/createTestCase.py +46 -26
  188. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +25 -17
  189. metadata/generated/schema/api/tests/createTestDefinition.py +29 -15
  190. metadata/generated/schema/api/tests/createTestSuite.py +50 -27
  191. metadata/generated/schema/api/voteRequest.py +12 -6
  192. metadata/generated/schema/auth/__init__.py +1 -1
  193. metadata/generated/schema/auth/basicAuth.py +9 -6
  194. metadata/generated/schema/auth/basicLoginRequest.py +10 -7
  195. metadata/generated/schema/auth/changePasswordRequest.py +18 -13
  196. metadata/generated/schema/auth/createPersonalToken.py +9 -6
  197. metadata/generated/schema/auth/emailRequest.py +9 -6
  198. metadata/generated/schema/auth/emailVerificationToken.py +17 -13
  199. metadata/generated/schema/auth/generateToken.py +7 -5
  200. metadata/generated/schema/auth/jwtAuth.py +15 -9
  201. metadata/generated/schema/auth/loginRequest.py +10 -7
  202. metadata/generated/schema/auth/logoutRequest.py +14 -9
  203. metadata/generated/schema/auth/passwordResetRequest.py +16 -12
  204. metadata/generated/schema/auth/passwordResetToken.py +27 -18
  205. metadata/generated/schema/auth/personalAccessToken.py +21 -16
  206. metadata/generated/schema/auth/refreshToken.py +21 -16
  207. metadata/generated/schema/auth/registrationRequest.py +13 -10
  208. metadata/generated/schema/auth/revokePersonalToken.py +11 -7
  209. metadata/generated/schema/auth/revokeToken.py +7 -5
  210. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  211. metadata/generated/schema/auth/ssoAuth.py +24 -17
  212. metadata/generated/schema/auth/tokenRefreshRequest.py +11 -6
  213. metadata/generated/schema/configuration/__init__.py +1 -1
  214. metadata/generated/schema/configuration/appsPrivateConfiguration.py +23 -17
  215. metadata/generated/schema/configuration/authConfig.py +31 -22
  216. metadata/generated/schema/configuration/authenticationConfiguration.py +46 -33
  217. metadata/generated/schema/configuration/authorizerConfiguration.py +43 -37
  218. metadata/generated/schema/configuration/changeEventConfiguration.py +7 -5
  219. metadata/generated/schema/configuration/dataQualityConfiguration.py +10 -7
  220. metadata/generated/schema/configuration/elasticSearchConfiguration.py +52 -34
  221. metadata/generated/schema/configuration/eventHandlerConfiguration.py +10 -7
  222. metadata/generated/schema/configuration/fernetConfiguration.py +9 -6
  223. metadata/generated/schema/configuration/jwtTokenConfiguration.py +15 -12
  224. metadata/generated/schema/configuration/kafkaEventConfiguration.py +50 -36
  225. metadata/generated/schema/configuration/ldapConfiguration.py +72 -57
  226. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  227. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +23 -17
  228. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +13 -8
  229. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +10 -7
  230. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +11 -7
  231. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +23 -16
  232. metadata/generated/schema/configuration/limitsConfiguration.py +30 -0
  233. metadata/generated/schema/configuration/loginConfiguration.py +21 -14
  234. metadata/generated/schema/configuration/logoConfiguration.py +16 -13
  235. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +80 -49
  236. metadata/generated/schema/configuration/profilerConfiguration.py +18 -11
  237. metadata/generated/schema/configuration/slackAppConfiguration.py +27 -11
  238. metadata/generated/schema/configuration/taskNotificationConfiguration.py +11 -6
  239. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +21 -14
  240. metadata/generated/schema/configuration/themeConfiguration.py +42 -23
  241. metadata/generated/schema/configuration/uiThemePreference.py +19 -12
  242. metadata/generated/schema/dataInsight/__init__.py +1 -1
  243. metadata/generated/schema/dataInsight/custom/__init__.py +3 -0
  244. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +111 -0
  245. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +21 -0
  246. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +25 -0
  247. metadata/generated/schema/dataInsight/custom/formulaHolder.py +24 -0
  248. metadata/generated/schema/dataInsight/custom/lineChart.py +76 -0
  249. metadata/generated/schema/dataInsight/custom/summaryCard.py +49 -0
  250. metadata/generated/schema/dataInsight/dataInsightChart.py +79 -48
  251. metadata/generated/schema/dataInsight/dataInsightChartResult.py +34 -45
  252. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  253. metadata/generated/schema/dataInsight/kpi/basic.py +43 -32
  254. metadata/generated/schema/dataInsight/kpi/kpi.py +81 -52
  255. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  256. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +19 -12
  257. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +19 -12
  258. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +32 -19
  259. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +32 -18
  260. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +16 -8
  261. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +28 -19
  262. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +18 -13
  263. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +17 -9
  264. metadata/generated/schema/dataInsight/type/unusedAssets.py +17 -9
  265. metadata/generated/schema/email/__init__.py +1 -1
  266. metadata/generated/schema/email/emailRequest.py +26 -18
  267. metadata/generated/schema/email/emailTemplate.py +25 -0
  268. metadata/generated/schema/email/emailTemplatePlaceholder.py +20 -0
  269. metadata/generated/schema/email/smtpSettings.py +34 -18
  270. metadata/generated/schema/email/templateValidationReponse.py +29 -0
  271. metadata/generated/schema/entity/__init__.py +1 -1
  272. metadata/generated/schema/entity/applications/__init__.py +1 -1
  273. metadata/generated/schema/entity/applications/app.py +164 -107
  274. metadata/generated/schema/entity/applications/appRunRecord.py +42 -30
  275. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  276. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +24 -7
  277. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  278. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  279. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +28 -18
  280. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +22 -13
  281. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +23 -14
  282. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +28 -18
  283. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +20 -13
  284. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +19 -12
  285. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +11 -7
  286. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +19 -12
  287. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +11 -7
  288. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +11 -7
  289. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +20 -13
  290. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +11 -7
  291. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +68 -39
  292. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +47 -19
  293. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  294. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +65 -6
  295. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +17 -11
  296. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +34 -24
  297. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  298. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +19 -16
  299. metadata/generated/schema/entity/applications/createAppRequest.py +35 -23
  300. metadata/generated/schema/entity/applications/jobStatus.py +10 -6
  301. metadata/generated/schema/entity/applications/liveExecutionContext.py +15 -6
  302. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  303. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +144 -89
  304. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +95 -64
  305. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +8 -3
  306. metadata/generated/schema/entity/automations/__init__.py +1 -1
  307. metadata/generated/schema/entity/automations/testServiceConnection.py +47 -29
  308. metadata/generated/schema/entity/automations/workflow.py +82 -48
  309. metadata/generated/schema/entity/bot.py +64 -37
  310. metadata/generated/schema/entity/classification/__init__.py +1 -1
  311. metadata/generated/schema/entity/classification/classification.py +90 -50
  312. metadata/generated/schema/entity/classification/tag.py +104 -53
  313. metadata/generated/schema/entity/data/__init__.py +1 -1
  314. metadata/generated/schema/entity/data/apiCollection.py +145 -0
  315. metadata/generated/schema/entity/data/apiEndpoint.py +173 -0
  316. metadata/generated/schema/entity/data/chart.py +120 -72
  317. metadata/generated/schema/entity/data/container.py +178 -116
  318. metadata/generated/schema/entity/data/dashboard.py +141 -89
  319. metadata/generated/schema/entity/data/dashboardDataModel.py +129 -77
  320. metadata/generated/schema/entity/data/database.py +167 -104
  321. metadata/generated/schema/entity/data/databaseSchema.py +157 -98
  322. metadata/generated/schema/entity/data/glossary.py +118 -64
  323. metadata/generated/schema/entity/data/glossaryTerm.py +173 -105
  324. metadata/generated/schema/entity/data/metrics.py +93 -55
  325. metadata/generated/schema/entity/data/mlmodel.py +213 -148
  326. metadata/generated/schema/entity/data/pipeline.py +227 -150
  327. metadata/generated/schema/entity/data/query.py +126 -80
  328. metadata/generated/schema/entity/data/report.py +90 -49
  329. metadata/generated/schema/entity/data/searchIndex.py +171 -114
  330. metadata/generated/schema/entity/data/storedProcedure.py +140 -86
  331. metadata/generated/schema/entity/data/table.py +637 -436
  332. metadata/generated/schema/entity/data/topic.py +175 -111
  333. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  334. metadata/generated/schema/entity/docStore/document.py +52 -31
  335. metadata/generated/schema/entity/domains/__init__.py +1 -1
  336. metadata/generated/schema/entity/domains/dataProduct.py +72 -43
  337. metadata/generated/schema/entity/domains/domain.py +69 -45
  338. metadata/generated/schema/entity/events/__init__.py +1 -1
  339. metadata/generated/schema/entity/events/webhook.py +46 -25
  340. metadata/generated/schema/entity/feed/__init__.py +1 -1
  341. metadata/generated/schema/entity/feed/assets.py +7 -5
  342. metadata/generated/schema/entity/feed/customProperty.py +14 -7
  343. metadata/generated/schema/entity/feed/description.py +21 -13
  344. metadata/generated/schema/entity/feed/domain.py +15 -10
  345. metadata/generated/schema/entity/feed/entityInfo.py +14 -8
  346. metadata/generated/schema/entity/feed/owner.py +16 -11
  347. metadata/generated/schema/entity/feed/suggestion.py +112 -35
  348. metadata/generated/schema/entity/feed/tag.py +15 -10
  349. metadata/generated/schema/entity/feed/testCaseResult.py +19 -13
  350. metadata/generated/schema/entity/feed/thread.py +226 -148
  351. metadata/generated/schema/entity/policies/__init__.py +1 -1
  352. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  353. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +25 -12
  354. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +42 -28
  355. metadata/generated/schema/entity/policies/accessControl/rule.py +36 -23
  356. metadata/generated/schema/entity/policies/filters.py +14 -12
  357. metadata/generated/schema/entity/policies/policy.py +107 -67
  358. metadata/generated/schema/entity/services/__init__.py +1 -1
  359. metadata/generated/schema/entity/services/apiService.py +114 -0
  360. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  361. metadata/generated/schema/entity/services/connections/apiService/__init__.py +5 -0
  362. metadata/generated/schema/entity/services/connections/apiService/restConnection.py +38 -0
  363. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -3
  364. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +21 -13
  365. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +30 -19
  366. metadata/generated/schema/entity/services/connections/common/sslConfig.py +14 -8
  367. metadata/generated/schema/entity/services/connections/connectionBasicType.py +71 -55
  368. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  369. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +23 -15
  370. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +44 -30
  371. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +50 -36
  372. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +51 -37
  373. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +31 -24
  374. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +35 -27
  375. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +35 -27
  376. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +97 -63
  377. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +25 -18
  379. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +23 -14
  380. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +25 -18
  381. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +25 -18
  382. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +27 -19
  383. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +53 -36
  384. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +38 -23
  385. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +30 -21
  386. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +30 -22
  387. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +46 -35
  388. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +70 -52
  390. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +131 -89
  391. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +83 -56
  392. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +31 -22
  393. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +109 -72
  394. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +11 -7
  396. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +10 -8
  397. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +11 -7
  398. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +10 -8
  399. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +46 -32
  400. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +23 -15
  401. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +87 -60
  402. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +11 -7
  404. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +11 -7
  405. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +11 -7
  406. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +59 -43
  407. metadata/generated/schema/entity/services/connections/database/db2Connection.py +64 -48
  408. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +41 -85
  409. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +3 -0
  410. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +109 -0
  411. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +42 -0
  412. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +52 -33
  413. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +73 -52
  414. metadata/generated/schema/entity/services/connections/database/druidConnection.py +66 -47
  415. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +38 -27
  416. metadata/generated/schema/entity/services/connections/database/glueConnection.py +34 -24
  417. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +85 -56
  418. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +108 -75
  419. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +11 -6
  421. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +7 -5
  422. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +14 -9
  423. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +36 -25
  424. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +7 -5
  425. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +67 -46
  426. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +23 -15
  427. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +102 -67
  428. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +75 -52
  429. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +56 -38
  430. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +89 -60
  431. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +88 -60
  432. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +105 -74
  433. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +78 -54
  434. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +97 -65
  435. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +90 -61
  436. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +78 -55
  437. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +75 -47
  438. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +84 -0
  439. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +15 -9
  441. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +33 -24
  442. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +53 -38
  443. metadata/generated/schema/entity/services/connections/database/sasConnection.py +45 -31
  444. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +82 -54
  445. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +121 -80
  446. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +82 -56
  447. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +168 -0
  448. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +92 -62
  449. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +108 -72
  450. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +89 -60
  451. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +71 -50
  452. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  453. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +23 -15
  454. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +101 -61
  455. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +18 -13
  456. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +15 -10
  457. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +85 -54
  458. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  459. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  460. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +117 -74
  461. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +72 -0
  462. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +43 -28
  463. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +40 -27
  464. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +50 -40
  465. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +151 -92
  466. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  467. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +23 -15
  468. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +29 -20
  469. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +20 -13
  470. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +15 -10
  471. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  472. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +25 -18
  473. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +34 -26
  474. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +11 -7
  475. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +23 -15
  476. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +29 -20
  477. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +37 -27
  478. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +43 -0
  479. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +44 -28
  480. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +37 -27
  481. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +35 -0
  482. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +18 -13
  483. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +62 -40
  484. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +71 -45
  485. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +71 -41
  486. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +11 -7
  487. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +28 -18
  488. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  489. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +23 -15
  490. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  491. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +22 -15
  492. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +14 -11
  493. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +48 -31
  494. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +54 -35
  495. metadata/generated/schema/entity/services/connections/serviceConnection.py +38 -22
  496. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  497. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +27 -19
  498. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +23 -15
  499. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +34 -20
  500. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +32 -22
  501. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +96 -57
  502. metadata/generated/schema/entity/services/connections/testConnectionResult.py +40 -26
  503. metadata/generated/schema/entity/services/dashboardService.py +93 -62
  504. metadata/generated/schema/entity/services/databaseService.py +101 -63
  505. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  506. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +198 -122
  507. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +24 -13
  508. metadata/generated/schema/entity/services/ingestionPipelines/status.py +47 -37
  509. metadata/generated/schema/entity/services/messagingService.py +103 -69
  510. metadata/generated/schema/entity/services/metadataService.py +96 -56
  511. metadata/generated/schema/entity/services/mlmodelService.py +96 -63
  512. metadata/generated/schema/entity/services/pipelineService.py +102 -63
  513. metadata/generated/schema/entity/services/searchService.py +92 -62
  514. metadata/generated/schema/entity/services/serviceType.py +2 -1
  515. metadata/generated/schema/entity/services/storageService.py +93 -62
  516. metadata/generated/schema/entity/teams/__init__.py +1 -1
  517. metadata/generated/schema/entity/teams/persona.py +59 -35
  518. metadata/generated/schema/entity/teams/role.py +82 -51
  519. metadata/generated/schema/entity/teams/team.py +128 -82
  520. metadata/generated/schema/entity/teams/teamHierarchy.py +52 -35
  521. metadata/generated/schema/entity/teams/user.py +122 -81
  522. metadata/generated/schema/entity/type.py +94 -48
  523. metadata/generated/schema/entity/utils/__init__.py +1 -1
  524. metadata/generated/schema/entity/utils/entitiesCount.py +25 -18
  525. metadata/generated/schema/entity/utils/servicesCount.py +25 -22
  526. metadata/generated/schema/entity/utils/supersetApiConnection.py +19 -14
  527. metadata/generated/schema/events/__init__.py +1 -1
  528. metadata/generated/schema/events/alertMetrics.py +22 -14
  529. metadata/generated/schema/events/api/__init__.py +1 -1
  530. metadata/generated/schema/events/api/createEventSubscription.py +63 -35
  531. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +27 -0
  532. metadata/generated/schema/events/emailAlertConfig.py +20 -12
  533. metadata/generated/schema/events/eventFilterRule.py +40 -24
  534. metadata/generated/schema/events/eventSubscription.py +220 -142
  535. metadata/generated/schema/events/eventSubscriptionOffset.py +12 -8
  536. metadata/generated/schema/events/failedEvent.py +25 -13
  537. metadata/generated/schema/events/filterResourceDescriptor.py +24 -14
  538. metadata/generated/schema/events/subscriptionResourceDescriptor.py +20 -11
  539. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  540. metadata/generated/schema/metadataIngestion/application.py +39 -25
  541. metadata/generated/schema/metadataIngestion/applicationPipeline.py +23 -16
  542. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +125 -67
  543. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +9 -6
  544. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +182 -106
  545. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +117 -73
  546. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +75 -47
  547. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +51 -32
  548. metadata/generated/schema/metadataIngestion/dbtPipeline.py +75 -51
  549. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  550. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +37 -25
  551. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +23 -14
  552. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +36 -27
  553. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +37 -25
  554. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +31 -20
  555. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +31 -20
  556. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +37 -25
  557. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +45 -22
  558. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +65 -43
  559. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +35 -17
  560. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +99 -50
  561. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +51 -27
  562. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  563. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +60 -33
  564. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +59 -38
  565. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +22 -14
  566. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +15 -10
  567. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +15 -10
  568. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +14 -9
  569. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +14 -9
  570. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +14 -10
  571. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +57 -28
  572. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +32 -17
  573. metadata/generated/schema/metadataIngestion/workflow.py +114 -62
  574. metadata/generated/schema/monitoring/__init__.py +1 -1
  575. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  576. metadata/generated/schema/security/__init__.py +1 -1
  577. metadata/generated/schema/security/client/__init__.py +1 -1
  578. metadata/generated/schema/security/client/auth0SSOClientConfig.py +10 -9
  579. metadata/generated/schema/security/client/azureSSOClientConfig.py +12 -11
  580. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +11 -10
  581. metadata/generated/schema/security/client/googleSSOClientConfig.py +17 -12
  582. metadata/generated/schema/security/client/oidcClientConfig.py +45 -30
  583. metadata/generated/schema/security/client/oktaSSOClientConfig.py +14 -11
  584. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +9 -8
  585. metadata/generated/schema/security/client/samlSSOClientConfig.py +104 -67
  586. metadata/generated/schema/security/credentials/__init__.py +1 -1
  587. metadata/generated/schema/security/credentials/accessTokenAuth.py +17 -13
  588. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +10 -8
  589. metadata/generated/schema/security/credentials/awsCredentials.py +57 -38
  590. metadata/generated/schema/security/credentials/azureCredentials.py +47 -29
  591. metadata/generated/schema/security/credentials/basicAuth.py +13 -11
  592. metadata/generated/schema/security/credentials/bitbucketCredentials.py +22 -14
  593. metadata/generated/schema/security/credentials/gcpCredentials.py +66 -33
  594. metadata/generated/schema/security/credentials/gcpExternalAccount.py +55 -26
  595. metadata/generated/schema/security/credentials/gcpValues.py +70 -49
  596. metadata/generated/schema/security/credentials/gitCredentials.py +32 -25
  597. metadata/generated/schema/security/credentials/githubCredentials.py +13 -7
  598. metadata/generated/schema/security/credentials/gitlabCredentials.py +34 -0
  599. metadata/generated/schema/security/sasl/__init__.py +3 -0
  600. metadata/generated/schema/security/sasl/saslClientConfig.py +40 -0
  601. metadata/generated/schema/security/secrets/__init__.py +1 -1
  602. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  603. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +39 -24
  604. metadata/generated/schema/security/secrets/secretsManagerProvider.py +2 -1
  605. metadata/generated/schema/security/securityConfiguration.py +15 -9
  606. metadata/generated/schema/security/ssl/__init__.py +1 -1
  607. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +30 -20
  608. metadata/generated/schema/security/ssl/verifySSLConfig.py +16 -18
  609. metadata/generated/schema/settings/__init__.py +1 -1
  610. metadata/generated/schema/settings/settings.py +10 -5
  611. metadata/generated/schema/system/__init__.py +1 -1
  612. metadata/generated/schema/system/entityError.py +7 -5
  613. metadata/generated/schema/system/eventPublisherJob.py +58 -37
  614. metadata/generated/schema/system/indexingError.py +7 -5
  615. metadata/generated/schema/system/limitsResponse.py +20 -0
  616. metadata/generated/schema/system/ui/__init__.py +1 -1
  617. metadata/generated/schema/system/ui/knowledgePanel.py +12 -8
  618. metadata/generated/schema/system/ui/page.py +24 -18
  619. metadata/generated/schema/system/validationResponse.py +40 -28
  620. metadata/generated/schema/tests/__init__.py +1 -1
  621. metadata/generated/schema/tests/assigned.py +11 -7
  622. metadata/generated/schema/tests/basic.py +98 -55
  623. metadata/generated/schema/tests/customMetric.py +41 -29
  624. metadata/generated/schema/tests/dataQualityReport.py +40 -0
  625. metadata/generated/schema/tests/resolved.py +17 -13
  626. metadata/generated/schema/tests/testCase.py +137 -76
  627. metadata/generated/schema/tests/testCaseResolutionStatus.py +49 -33
  628. metadata/generated/schema/tests/testDefinition.py +129 -67
  629. metadata/generated/schema/tests/testSuite.py +137 -75
  630. metadata/generated/schema/type/__init__.py +1 -1
  631. metadata/generated/schema/type/apiSchema.py +27 -0
  632. metadata/generated/schema/type/auditLog.py +29 -20
  633. metadata/generated/schema/type/basic.py +177 -110
  634. metadata/generated/schema/type/bulkOperationResult.py +45 -30
  635. metadata/generated/schema/type/changeEvent.py +72 -40
  636. metadata/generated/schema/type/changeEventType.py +1 -1
  637. metadata/generated/schema/type/collectionDescriptor.py +24 -15
  638. metadata/generated/schema/type/csvDocumentation.py +11 -8
  639. metadata/generated/schema/type/csvErrorType.py +1 -1
  640. metadata/generated/schema/type/csvFile.py +25 -17
  641. metadata/generated/schema/type/csvImportResult.py +34 -21
  642. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  643. metadata/generated/schema/type/customProperties/complexTypes.py +110 -64
  644. metadata/generated/schema/type/customProperties/enumConfig.py +7 -5
  645. metadata/generated/schema/type/customProperty.py +34 -25
  646. metadata/generated/schema/type/dailyCount.py +10 -7
  647. metadata/generated/schema/type/databaseConnectionConfig.py +69 -42
  648. metadata/generated/schema/type/entityHierarchy.py +35 -26
  649. metadata/generated/schema/type/entityHistory.py +71 -45
  650. metadata/generated/schema/type/entityLineage.py +89 -57
  651. metadata/generated/schema/type/entityReference.py +51 -30
  652. metadata/generated/schema/type/entityReferenceList.py +11 -8
  653. metadata/generated/schema/type/entityRelationship.py +68 -39
  654. metadata/generated/schema/type/entityUsage.py +15 -10
  655. metadata/generated/schema/type/filterPattern.py +21 -12
  656. metadata/generated/schema/type/function.py +30 -21
  657. metadata/generated/schema/type/include.py +1 -1
  658. metadata/generated/schema/type/jdbcConnection.py +24 -19
  659. metadata/generated/schema/type/lifeCycle.py +47 -26
  660. metadata/generated/schema/type/paging.py +32 -21
  661. metadata/generated/schema/type/profile.py +13 -11
  662. metadata/generated/schema/type/queryParserData.py +47 -32
  663. metadata/generated/schema/type/reaction.py +13 -8
  664. metadata/generated/schema/type/schedule.py +18 -11
  665. metadata/generated/schema/type/schema.py +64 -44
  666. metadata/generated/schema/type/tableQuery.py +53 -40
  667. metadata/generated/schema/type/tableUsageCount.py +46 -33
  668. metadata/generated/schema/type/tagLabel.py +36 -24
  669. metadata/generated/schema/type/usageDetails.py +40 -24
  670. metadata/generated/schema/type/usageRequest.py +10 -7
  671. metadata/generated/schema/type/votes.py +21 -12
  672. metadata/great_expectations/action.py +14 -12
  673. metadata/great_expectations/utils/ometa_config_handler.py +1 -1
  674. metadata/ingestion/api/common.py +3 -4
  675. metadata/ingestion/api/delete.py +1 -1
  676. metadata/ingestion/api/models.py +6 -8
  677. metadata/ingestion/api/parser.py +13 -17
  678. metadata/ingestion/api/status.py +35 -13
  679. metadata/ingestion/api/topology_runner.py +2 -1
  680. metadata/ingestion/bulksink/metadata_usage.py +17 -14
  681. metadata/ingestion/connections/builders.py +18 -12
  682. metadata/ingestion/connections/secrets.py +8 -6
  683. metadata/ingestion/connections/test_connections.py +12 -2
  684. metadata/ingestion/lineage/models.py +9 -4
  685. metadata/ingestion/lineage/sql_lineage.py +43 -13
  686. metadata/ingestion/models/custom_properties.py +9 -9
  687. metadata/ingestion/models/custom_pydantic.py +70 -44
  688. metadata/ingestion/models/lf_tags_model.py +3 -3
  689. metadata/ingestion/models/ometa_classification.py +1 -1
  690. metadata/ingestion/models/ometa_lineage.py +24 -0
  691. metadata/ingestion/models/patch_request.py +96 -56
  692. metadata/ingestion/models/table_metadata.py +2 -2
  693. metadata/ingestion/models/topology.py +18 -12
  694. metadata/ingestion/ometa/client.py +34 -8
  695. metadata/ingestion/ometa/client_utils.py +6 -7
  696. metadata/ingestion/ometa/mixins/custom_property_mixin.py +2 -4
  697. metadata/ingestion/ometa/mixins/dashboard_mixin.py +2 -2
  698. metadata/ingestion/ometa/mixins/data_insight_mixin.py +10 -6
  699. metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py +5 -3
  700. metadata/ingestion/ometa/mixins/lineage_mixin.py +36 -15
  701. metadata/ingestion/ometa/mixins/mlmodel_mixin.py +2 -2
  702. metadata/ingestion/ometa/mixins/patch_mixin.py +32 -30
  703. metadata/ingestion/ometa/mixins/pipeline_mixin.py +3 -3
  704. metadata/ingestion/ometa/mixins/query_mixin.py +4 -4
  705. metadata/ingestion/ometa/mixins/role_policy_mixin.py +13 -13
  706. metadata/ingestion/ometa/mixins/search_index_mixin.py +5 -5
  707. metadata/ingestion/ometa/mixins/server_mixin.py +4 -5
  708. metadata/ingestion/ometa/mixins/service_mixin.py +2 -2
  709. metadata/ingestion/ometa/mixins/suggestions_mixin.py +2 -2
  710. metadata/ingestion/ometa/mixins/table_mixin.py +20 -20
  711. metadata/ingestion/ometa/mixins/tests_mixin.py +21 -18
  712. metadata/ingestion/ometa/mixins/topic_mixin.py +2 -2
  713. metadata/ingestion/ometa/mixins/user_mixin.py +44 -23
  714. metadata/ingestion/ometa/models.py +1 -1
  715. metadata/ingestion/ometa/ometa_api.py +6 -7
  716. metadata/ingestion/ometa/routes.py +18 -0
  717. metadata/ingestion/ometa/ttl_cache.py +47 -0
  718. metadata/ingestion/ometa/utils.py +3 -3
  719. metadata/ingestion/processor/query_parser.py +3 -3
  720. metadata/ingestion/sink/file.py +2 -2
  721. metadata/ingestion/sink/metadata_rest.py +59 -29
  722. metadata/ingestion/source/connections.py +19 -0
  723. metadata/ingestion/source/dashboard/dashboard_service.py +45 -45
  724. metadata/ingestion/source/dashboard/domodashboard/metadata.py +31 -19
  725. metadata/ingestion/source/dashboard/lightdash/client.py +1 -1
  726. metadata/ingestion/source/dashboard/lightdash/metadata.py +26 -14
  727. metadata/ingestion/source/dashboard/lightdash/models.py +11 -11
  728. metadata/ingestion/source/dashboard/looker/bulk_parser.py +3 -3
  729. metadata/ingestion/source/dashboard/looker/connection.py +1 -1
  730. metadata/ingestion/source/dashboard/looker/metadata.py +67 -42
  731. metadata/ingestion/source/dashboard/looker/parser.py +3 -3
  732. metadata/ingestion/source/dashboard/looker/utils.py +8 -5
  733. metadata/ingestion/source/dashboard/metabase/client.py +19 -2
  734. metadata/ingestion/source/dashboard/metabase/metadata.py +45 -14
  735. metadata/ingestion/source/dashboard/metabase/models.py +46 -28
  736. metadata/ingestion/source/dashboard/mode/client.py +1 -1
  737. metadata/ingestion/source/dashboard/mode/metadata.py +24 -14
  738. metadata/ingestion/source/dashboard/mstr/client.py +1 -1
  739. metadata/ingestion/source/dashboard/mstr/metadata.py +18 -11
  740. metadata/ingestion/source/dashboard/mstr/models.py +4 -4
  741. metadata/ingestion/source/dashboard/powerbi/client.py +2 -3
  742. metadata/ingestion/source/dashboard/powerbi/metadata.py +52 -31
  743. metadata/ingestion/source/dashboard/powerbi/models.py +25 -22
  744. metadata/ingestion/source/dashboard/qlikcloud/client.py +2 -2
  745. metadata/ingestion/source/dashboard/qlikcloud/metadata.py +28 -16
  746. metadata/ingestion/source/dashboard/qlikcloud/models.py +4 -4
  747. metadata/ingestion/source/dashboard/qliksense/client.py +3 -3
  748. metadata/ingestion/source/dashboard/qliksense/metadata.py +35 -19
  749. metadata/ingestion/source/dashboard/qliksense/models.py +8 -8
  750. metadata/ingestion/source/dashboard/quicksight/metadata.py +26 -18
  751. metadata/ingestion/source/dashboard/quicksight/models.py +16 -16
  752. metadata/ingestion/source/dashboard/redash/client.py +1 -1
  753. metadata/ingestion/source/dashboard/redash/metadata.py +31 -19
  754. metadata/ingestion/source/dashboard/superset/api_source.py +46 -18
  755. metadata/ingestion/source/dashboard/superset/client.py +2 -2
  756. metadata/ingestion/source/dashboard/superset/db_source.py +44 -18
  757. metadata/ingestion/source/dashboard/superset/metadata.py +2 -2
  758. metadata/ingestion/source/dashboard/superset/mixin.py +12 -13
  759. metadata/ingestion/source/dashboard/superset/models.py +68 -68
  760. metadata/ingestion/source/dashboard/tableau/connection.py +2 -2
  761. metadata/ingestion/source/dashboard/tableau/metadata.py +406 -99
  762. metadata/ingestion/source/dashboard/tableau/models.py +33 -35
  763. metadata/ingestion/source/dashboard/tableau/queries.py +14 -0
  764. metadata/ingestion/source/database/athena/connection.py +34 -5
  765. metadata/ingestion/source/database/athena/metadata.py +43 -168
  766. metadata/ingestion/source/database/athena/models.py +10 -10
  767. metadata/ingestion/source/database/athena/query_parser.py +2 -2
  768. metadata/ingestion/source/database/athena/utils.py +191 -0
  769. metadata/ingestion/source/database/azuresql/metadata.py +4 -4
  770. metadata/ingestion/source/database/azuresql/query_parser.py +2 -2
  771. metadata/ingestion/source/database/bigquery/connection.py +17 -5
  772. metadata/ingestion/source/database/bigquery/helper.py +1 -1
  773. metadata/ingestion/source/database/bigquery/metadata.py +91 -52
  774. metadata/ingestion/source/database/bigquery/query_parser.py +3 -3
  775. metadata/ingestion/source/database/bigtable/connection.py +2 -2
  776. metadata/ingestion/source/database/bigtable/metadata.py +2 -2
  777. metadata/ingestion/source/database/clickhouse/connection.py +3 -3
  778. metadata/ingestion/source/database/clickhouse/metadata.py +11 -8
  779. metadata/ingestion/source/database/clickhouse/query_parser.py +4 -4
  780. metadata/ingestion/source/database/column_type_parser.py +20 -12
  781. metadata/ingestion/source/database/common_db_source.py +112 -49
  782. metadata/ingestion/source/database/common_nosql_source.py +22 -17
  783. metadata/ingestion/source/database/couchbase/connection.py +1 -1
  784. metadata/ingestion/source/database/couchbase/metadata.py +3 -3
  785. metadata/ingestion/source/database/database_service.py +30 -17
  786. metadata/ingestion/source/database/databricks/connection.py +1 -1
  787. metadata/ingestion/source/database/databricks/lineage.py +4 -3
  788. metadata/ingestion/source/database/databricks/metadata.py +125 -25
  789. metadata/ingestion/source/database/databricks/queries.py +5 -1
  790. metadata/ingestion/source/database/databricks/query_parser.py +2 -2
  791. metadata/ingestion/source/database/databricks/usage.py +4 -3
  792. metadata/ingestion/source/database/datalake/clients/azure_blob.py +72 -0
  793. metadata/ingestion/source/database/datalake/clients/base.py +47 -0
  794. metadata/ingestion/source/database/datalake/clients/gcs.py +136 -0
  795. metadata/ingestion/source/database/datalake/clients/s3.py +79 -0
  796. metadata/ingestion/source/database/datalake/connection.py +12 -70
  797. metadata/ingestion/source/database/datalake/metadata.py +75 -219
  798. metadata/ingestion/source/database/db2/metadata.py +13 -13
  799. metadata/ingestion/source/database/dbt/constants.py +1 -7
  800. metadata/ingestion/source/database/dbt/dbt_config.py +21 -21
  801. metadata/ingestion/source/database/dbt/dbt_service.py +19 -9
  802. metadata/ingestion/source/database/dbt/metadata.py +135 -86
  803. metadata/ingestion/source/database/dbt/models.py +9 -9
  804. metadata/ingestion/source/database/deltalake/clients/__init__.py +0 -0
  805. metadata/ingestion/source/database/deltalake/clients/base.py +82 -0
  806. metadata/ingestion/source/database/deltalake/clients/pyspark.py +304 -0
  807. metadata/ingestion/source/database/deltalake/clients/s3.py +200 -0
  808. metadata/ingestion/source/database/deltalake/connection.py +56 -84
  809. metadata/ingestion/source/database/deltalake/metadata.py +67 -193
  810. metadata/ingestion/source/database/domodatabase/metadata.py +83 -38
  811. metadata/ingestion/source/database/domodatabase/models.py +6 -6
  812. metadata/ingestion/source/database/doris/metadata.py +3 -3
  813. metadata/ingestion/source/database/druid/metadata.py +2 -2
  814. metadata/ingestion/source/database/dynamodb/metadata.py +5 -5
  815. metadata/ingestion/source/database/dynamodb/models.py +2 -2
  816. metadata/ingestion/source/database/extended_sample_data.py +41 -41
  817. metadata/ingestion/source/database/external_table_lineage_mixin.py +58 -3
  818. metadata/ingestion/source/database/glue/metadata.py +23 -18
  819. metadata/ingestion/source/database/glue/models.py +6 -6
  820. metadata/ingestion/source/database/greenplum/metadata.py +4 -4
  821. metadata/ingestion/source/database/hive/connection.py +2 -2
  822. metadata/ingestion/source/database/hive/metadata.py +2 -2
  823. metadata/ingestion/source/database/iceberg/catalog/hive.py +1 -1
  824. metadata/ingestion/source/database/iceberg/catalog/rest.py +1 -1
  825. metadata/ingestion/source/database/iceberg/fs/__init__.py +1 -1
  826. metadata/ingestion/source/database/iceberg/fs/s3.py +1 -1
  827. metadata/ingestion/source/database/iceberg/helper.py +4 -4
  828. metadata/ingestion/source/database/iceberg/metadata.py +28 -22
  829. metadata/ingestion/source/database/iceberg/models.py +6 -6
  830. metadata/ingestion/source/database/impala/connection.py +3 -3
  831. metadata/ingestion/source/database/impala/metadata.py +2 -2
  832. metadata/ingestion/source/database/incremental_metadata_extraction.py +1 -1
  833. metadata/ingestion/source/database/life_cycle_query_mixin.py +12 -8
  834. metadata/ingestion/source/database/lineage_source.py +25 -13
  835. metadata/ingestion/source/database/mariadb/metadata.py +2 -2
  836. metadata/ingestion/source/database/mongodb/connection.py +1 -1
  837. metadata/ingestion/source/database/mongodb/metadata.py +2 -2
  838. metadata/ingestion/source/database/mssql/constants.py +23 -0
  839. metadata/ingestion/source/database/mssql/lineage.py +25 -0
  840. metadata/ingestion/source/database/mssql/metadata.py +30 -10
  841. metadata/ingestion/source/database/mssql/queries.py +2 -0
  842. metadata/ingestion/source/database/mssql/query_parser.py +2 -2
  843. metadata/ingestion/source/database/mssql/usage.py +42 -0
  844. metadata/ingestion/source/database/mssql/utils.py +16 -1
  845. metadata/ingestion/source/database/mysql/metadata.py +2 -2
  846. metadata/ingestion/source/database/oracle/metadata.py +23 -13
  847. metadata/ingestion/source/database/oracle/models.py +1 -1
  848. metadata/ingestion/source/database/oracle/queries.py +45 -11
  849. metadata/ingestion/source/database/oracle/query_parser.py +2 -2
  850. metadata/ingestion/source/database/oracle/utils.py +33 -0
  851. metadata/ingestion/source/database/pinotdb/metadata.py +2 -2
  852. metadata/ingestion/source/database/postgres/converter_orm.py +52 -0
  853. metadata/ingestion/source/database/postgres/lineage.py +2 -1
  854. metadata/ingestion/source/database/postgres/metadata.py +34 -6
  855. metadata/ingestion/source/database/postgres/metrics.py +42 -0
  856. metadata/ingestion/source/database/postgres/pgspider/lineage.py +2 -2
  857. metadata/ingestion/source/database/postgres/queries.py +7 -0
  858. metadata/ingestion/source/database/postgres/query_parser.py +4 -4
  859. metadata/ingestion/source/database/postgres/types/money.py +37 -0
  860. metadata/ingestion/source/database/postgres/usage.py +15 -2
  861. metadata/ingestion/source/database/presto/connection.py +2 -2
  862. metadata/ingestion/source/database/presto/metadata.py +2 -2
  863. metadata/ingestion/source/database/query/lineage.py +1 -1
  864. metadata/ingestion/source/database/query/usage.py +5 -3
  865. metadata/ingestion/source/database/query_parser_source.py +1 -1
  866. metadata/ingestion/source/database/redshift/connection.py +37 -9
  867. metadata/ingestion/source/database/redshift/metadata.py +7 -7
  868. metadata/ingestion/source/database/redshift/models.py +1 -1
  869. metadata/ingestion/source/database/redshift/queries.py +30 -7
  870. metadata/ingestion/source/database/redshift/query_parser.py +2 -2
  871. metadata/ingestion/source/database/salesforce/connection.py +1 -3
  872. metadata/ingestion/source/database/salesforce/metadata.py +22 -17
  873. metadata/ingestion/source/database/sample_data.py +198 -98
  874. metadata/ingestion/source/database/sample_usage.py +5 -7
  875. metadata/ingestion/source/database/saperp/__init__.py +0 -0
  876. metadata/ingestion/source/database/saperp/client.py +170 -0
  877. metadata/ingestion/source/database/saperp/connection.py +50 -0
  878. metadata/ingestion/source/database/saperp/constants.py +27 -0
  879. metadata/ingestion/source/database/saperp/metadata.py +322 -0
  880. metadata/ingestion/source/database/saperp/models.py +100 -0
  881. metadata/ingestion/source/database/saphana/metadata.py +2 -2
  882. metadata/ingestion/source/database/sas/client.py +2 -2
  883. metadata/ingestion/source/database/sas/metadata.py +35 -44
  884. metadata/ingestion/source/database/singlestore/metadata.py +2 -2
  885. metadata/ingestion/source/database/snowflake/connection.py +3 -3
  886. metadata/ingestion/source/database/snowflake/metadata.py +39 -12
  887. metadata/ingestion/source/database/snowflake/models.py +7 -7
  888. metadata/ingestion/source/database/snowflake/query_parser.py +2 -2
  889. metadata/ingestion/source/database/sql_column_handler.py +4 -3
  890. metadata/ingestion/source/database/sqlite/metadata.py +2 -2
  891. metadata/ingestion/source/database/stored_procedures_mixin.py +10 -11
  892. metadata/ingestion/source/database/teradata/metadata.py +4 -4
  893. metadata/ingestion/source/database/trino/connection.py +5 -7
  894. metadata/ingestion/source/database/trino/metadata.py +2 -2
  895. metadata/ingestion/source/database/trino/query_parser.py +2 -2
  896. metadata/ingestion/source/database/unitycatalog/client.py +21 -0
  897. metadata/ingestion/source/database/unitycatalog/lineage.py +7 -7
  898. metadata/ingestion/source/database/unitycatalog/metadata.py +82 -42
  899. metadata/ingestion/source/database/unitycatalog/models.py +16 -16
  900. metadata/ingestion/source/database/unitycatalog/query_parser.py +2 -2
  901. metadata/ingestion/source/database/usage_source.py +51 -34
  902. metadata/ingestion/source/database/vertica/metadata.py +3 -3
  903. metadata/ingestion/source/database/vertica/query_parser.py +4 -4
  904. metadata/ingestion/source/messaging/common_broker_source.py +18 -4
  905. metadata/ingestion/source/messaging/kafka/connection.py +1 -1
  906. metadata/ingestion/source/messaging/kafka/metadata.py +7 -9
  907. metadata/ingestion/source/messaging/kinesis/metadata.py +10 -5
  908. metadata/ingestion/source/messaging/kinesis/models.py +3 -5
  909. metadata/ingestion/source/messaging/messaging_service.py +12 -7
  910. metadata/ingestion/source/messaging/redpanda/metadata.py +2 -2
  911. metadata/ingestion/source/metadata/alationsink/__init__.py +0 -0
  912. metadata/ingestion/source/metadata/alationsink/client.py +213 -0
  913. metadata/ingestion/source/metadata/alationsink/connection.py +53 -0
  914. metadata/ingestion/source/metadata/alationsink/constants.py +60 -0
  915. metadata/ingestion/source/metadata/alationsink/metadata.py +397 -0
  916. metadata/ingestion/source/metadata/alationsink/models.py +148 -0
  917. metadata/ingestion/source/metadata/amundsen/connection.py +1 -1
  918. metadata/ingestion/source/metadata/amundsen/metadata.py +14 -10
  919. metadata/ingestion/source/metadata/atlas/client.py +1 -1
  920. metadata/ingestion/source/metadata/atlas/metadata.py +11 -12
  921. metadata/ingestion/source/mlmodel/mlflow/metadata.py +12 -6
  922. metadata/ingestion/source/mlmodel/mlmodel_service.py +13 -6
  923. metadata/ingestion/source/mlmodel/sagemaker/metadata.py +34 -21
  924. metadata/ingestion/source/pipeline/airbyte/client.py +1 -1
  925. metadata/ingestion/source/pipeline/airbyte/metadata.py +15 -11
  926. metadata/ingestion/source/pipeline/airflow/lineage_parser.py +3 -4
  927. metadata/ingestion/source/pipeline/airflow/metadata.py +28 -17
  928. metadata/ingestion/source/pipeline/airflow/models.py +21 -24
  929. metadata/ingestion/source/pipeline/dagster/client.py +3 -3
  930. metadata/ingestion/source/pipeline/dagster/metadata.py +31 -17
  931. metadata/ingestion/source/pipeline/dagster/models.py +14 -14
  932. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +120 -126
  933. metadata/ingestion/source/pipeline/databrickspipeline/models.py +72 -0
  934. metadata/ingestion/source/pipeline/dbtcloud/__init__.py +0 -0
  935. metadata/ingestion/source/pipeline/dbtcloud/client.py +143 -0
  936. metadata/ingestion/source/pipeline/dbtcloud/connection.py +60 -0
  937. metadata/ingestion/source/pipeline/dbtcloud/metadata.py +345 -0
  938. metadata/ingestion/source/pipeline/dbtcloud/models.py +72 -0
  939. metadata/ingestion/source/pipeline/dbtcloud/queries.py +45 -0
  940. metadata/ingestion/source/pipeline/domopipeline/metadata.py +21 -12
  941. metadata/ingestion/source/pipeline/fivetran/client.py +20 -6
  942. metadata/ingestion/source/pipeline/fivetran/metadata.py +124 -50
  943. metadata/ingestion/source/pipeline/fivetran/models.py +20 -0
  944. metadata/ingestion/source/pipeline/flink/client.py +53 -0
  945. metadata/ingestion/source/pipeline/flink/connection.py +52 -0
  946. metadata/ingestion/source/pipeline/flink/metadata.py +188 -0
  947. metadata/ingestion/source/pipeline/flink/models.py +44 -0
  948. metadata/ingestion/source/pipeline/gluepipeline/metadata.py +23 -11
  949. metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +7 -8
  950. metadata/ingestion/source/pipeline/nifi/metadata.py +17 -8
  951. metadata/ingestion/source/pipeline/openlineage/connection.py +12 -3
  952. metadata/ingestion/source/pipeline/openlineage/metadata.py +3 -27
  953. metadata/ingestion/source/pipeline/pipeline_service.py +52 -8
  954. metadata/ingestion/source/pipeline/spline/client.py +1 -1
  955. metadata/ingestion/source/pipeline/spline/metadata.py +3 -3
  956. metadata/ingestion/source/pipeline/spline/models.py +12 -12
  957. metadata/ingestion/source/search/elasticsearch/connection.py +2 -2
  958. metadata/ingestion/source/search/elasticsearch/metadata.py +5 -4
  959. metadata/ingestion/source/search/search_service.py +13 -6
  960. metadata/ingestion/source/storage/gcs/client.py +58 -0
  961. metadata/ingestion/source/storage/gcs/connection.py +159 -0
  962. metadata/ingestion/source/storage/gcs/metadata.py +465 -0
  963. metadata/ingestion/source/storage/gcs/models.py +86 -0
  964. metadata/ingestion/source/storage/s3/metadata.py +268 -18
  965. metadata/ingestion/source/storage/s3/models.py +30 -11
  966. metadata/ingestion/source/storage/storage_service.py +43 -7
  967. metadata/ingestion/stage/table_usage.py +3 -3
  968. metadata/mixins/pandas/pandas_mixin.py +2 -2
  969. metadata/mixins/sqalchemy/sqa_mixin.py +1 -1
  970. metadata/parsers/avro_parser.py +12 -10
  971. metadata/parsers/json_schema_parser.py +4 -4
  972. metadata/parsers/protobuf_parser.py +4 -5
  973. metadata/pii/processor.py +4 -6
  974. metadata/profiler/adaptors/dynamodb.py +2 -2
  975. metadata/profiler/adaptors/mongodb.py +5 -17
  976. metadata/profiler/api/models.py +9 -9
  977. metadata/profiler/interface/nosql/profiler_interface.py +5 -8
  978. metadata/profiler/interface/pandas/profiler_interface.py +8 -10
  979. metadata/profiler/interface/profiler_interface.py +3 -3
  980. metadata/profiler/interface/profiler_interface_factory.py +46 -51
  981. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +28 -17
  982. metadata/profiler/interface/sqlalchemy/profiler_interface.py +26 -6
  983. metadata/profiler/metrics/composed/null_ratio.py +5 -8
  984. metadata/profiler/metrics/hybrid/histogram.py +9 -3
  985. metadata/profiler/metrics/static/mean.py +16 -8
  986. metadata/profiler/metrics/static/null_count.py +4 -2
  987. metadata/profiler/metrics/system/queries/snowflake.py +1 -1
  988. metadata/profiler/metrics/window/percentille_mixin.py +1 -1
  989. metadata/profiler/orm/converter/base.py +21 -13
  990. metadata/profiler/orm/converter/common.py +3 -4
  991. metadata/profiler/orm/functions/datetime.py +1 -1
  992. metadata/profiler/orm/functions/median.py +11 -4
  993. metadata/profiler/orm/functions/sum.py +8 -1
  994. metadata/profiler/orm/functions/table_metric_computer.py +6 -7
  995. metadata/profiler/orm/registry.py +19 -1
  996. metadata/profiler/orm/types/custom_hex_byte_string.py +5 -3
  997. metadata/profiler/orm/types/undetermined_type.py +38 -0
  998. metadata/profiler/processor/core.py +19 -13
  999. metadata/profiler/processor/default.py +4 -1
  1000. metadata/profiler/processor/processor.py +4 -4
  1001. metadata/profiler/processor/sample_data_handler.py +5 -5
  1002. metadata/profiler/processor/sampler/nosql/sampler.py +9 -4
  1003. metadata/profiler/processor/sampler/sampler_factory.py +36 -6
  1004. metadata/profiler/processor/sampler/sqlalchemy/azuresql/sampler.py +40 -0
  1005. metadata/profiler/processor/sampler/sqlalchemy/sampler.py +33 -62
  1006. metadata/profiler/processor/sampler/sqlalchemy/snowflake/sampler.py +60 -0
  1007. metadata/profiler/source/base/profiler_source.py +12 -14
  1008. metadata/profiler/source/bigquery/profiler_source.py +2 -2
  1009. metadata/profiler/source/bigquery/type_mapper.py +2 -2
  1010. metadata/profiler/source/metadata.py +14 -16
  1011. metadata/profiler/source/metadata_ext.py +3 -3
  1012. metadata/readers/dataframe/avro.py +1 -3
  1013. metadata/readers/dataframe/models.py +29 -12
  1014. metadata/readers/dataframe/parquet.py +3 -3
  1015. metadata/readers/dataframe/reader_factory.py +6 -0
  1016. metadata/readers/file/api_reader.py +5 -2
  1017. metadata/readers/file/bitbucket.py +4 -4
  1018. metadata/readers/file/credentials.py +5 -5
  1019. metadata/readers/file/github.py +6 -6
  1020. metadata/readers/file/gitlab.py +172 -0
  1021. metadata/utils/class_helper.py +3 -5
  1022. metadata/utils/credentials.py +2 -2
  1023. metadata/utils/datalake/datalake_utils.py +4 -2
  1024. metadata/utils/entity_link.py +8 -0
  1025. metadata/utils/execution_time_tracker.py +2 -2
  1026. metadata/utils/filters.py +25 -17
  1027. metadata/utils/fqn.py +59 -14
  1028. metadata/utils/helpers.py +15 -12
  1029. metadata/utils/importer.py +29 -2
  1030. metadata/utils/life_cycle_utils.py +3 -3
  1031. metadata/utils/logger.py +9 -24
  1032. metadata/utils/lru_cache.py +3 -0
  1033. metadata/utils/metadata_service_helper.py +3 -1
  1034. metadata/utils/secrets/gcp_secrets_manager.py +128 -0
  1035. metadata/utils/secrets/secrets_manager_factory.py +3 -0
  1036. metadata/utils/source_hash.py +1 -1
  1037. metadata/utils/ssl_manager.py +20 -26
  1038. metadata/utils/ssl_registry.py +5 -1
  1039. metadata/utils/storage_metadata_config.py +6 -5
  1040. metadata/utils/tag_utils.py +21 -13
  1041. metadata/utils/time_utils.py +45 -5
  1042. metadata/workflow/application.py +4 -4
  1043. metadata/workflow/application_output_handler.py +6 -19
  1044. metadata/workflow/base.py +42 -5
  1045. metadata/workflow/data_quality.py +5 -5
  1046. metadata/workflow/ingestion.py +4 -6
  1047. metadata/workflow/metadata.py +4 -4
  1048. metadata/workflow/output_handler.py +35 -214
  1049. metadata/workflow/profiler.py +5 -5
  1050. metadata/workflow/usage.py +8 -6
  1051. metadata/workflow/workflow_init_error_handler.py +154 -0
  1052. metadata/workflow/workflow_output_handler.py +189 -98
  1053. metadata/workflow/workflow_status_mixin.py +20 -11
  1054. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/METADATA +388 -313
  1055. openmetadata_ingestion-1.5.0.0.dist-info/RECORD +1595 -0
  1056. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/top_level.txt +1 -0
  1057. metadata/cli/insight.py +0 -51
  1058. metadata/data_insight/processor/kpi/kpi_runner.py +0 -156
  1059. metadata/data_insight/processor/kpi/run_result_registry.py +0 -162
  1060. metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +0 -253
  1061. metadata/data_insight/processor/reports/data_processor.py +0 -72
  1062. metadata/data_insight/processor/reports/entity_report_data_processor.py +0 -262
  1063. metadata/data_insight/processor/reports/web_analytic_report_data_processor.py +0 -384
  1064. metadata/data_insight/producer/cost_analysis_producer.py +0 -126
  1065. metadata/data_insight/producer/entity_producer.py +0 -63
  1066. metadata/data_insight/producer/producer_factory.py +0 -53
  1067. metadata/data_insight/producer/web_analytics_producer.py +0 -84
  1068. metadata/data_insight/source/metadata.py +0 -175
  1069. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +0 -30
  1070. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +0 -30
  1071. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +0 -30
  1072. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +0 -30
  1073. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +0 -27
  1074. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +0 -27
  1075. metadata/workflow/data_insight.py +0 -78
  1076. openmetadata_ingestion-1.4.7.2.dist-info/RECORD +0 -1509
  1077. {metadata/cli → _openmetadata_testutils}/__init__.py +0 -0
  1078. {metadata/data_insight/processor → _openmetadata_testutils/helpers}/__init__.py +0 -0
  1079. {metadata/data_insight/processor/kpi → _openmetadata_testutils/kafka}/__init__.py +0 -0
  1080. {metadata/data_insight/processor/reports → _openmetadata_testutils/postgres}/__init__.py +0 -0
  1081. {metadata/data_insight/producer → _openmetadata_testutils/pydantic}/__init__.py +0 -0
  1082. /metadata/{data_insight/source → ingestion/source/database/datalake/clients}/__init__.py +0 -0
  1083. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/LICENSE +0 -0
  1084. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/WHEEL +0 -0
  1085. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/entry_points.txt +0 -0
@@ -1,14 +1,16 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: entity/data/table.json
3
- # timestamp: 2024-08-16T17:41:32+00:00
3
+ # timestamp: 2024-08-26T10:15:21+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
- from datetime import datetime
8
7
  from enum import Enum
9
8
  from typing import List, Optional, Union
10
9
 
11
- from pydantic import BaseModel, Extra, Field, constr
10
+ from pydantic import AwareDatetime, ConfigDict, Field, RootModel
11
+ from typing_extensions import Annotated
12
+
13
+ from metadata.ingestion.models.custom_pydantic import BaseModel
12
14
 
13
15
  from ...tests import customMetric
14
16
  from ...type import (
@@ -122,6 +124,8 @@ class DataType(Enum):
122
124
  AGG_STATE = 'AGG_STATE'
123
125
  BITMAP = 'BITMAP'
124
126
  UINT = 'UINT'
127
+ BIT = 'BIT'
128
+ MONEY = 'MONEY'
125
129
 
126
130
 
127
131
  class Constraint(Enum):
@@ -140,23 +144,32 @@ class ConstraintType(Enum):
140
144
 
141
145
 
142
146
  class TableConstraint(BaseModel):
143
- class Config:
144
- extra = Extra.forbid
145
-
146
- constraintType: Optional[ConstraintType] = None
147
- columns: Optional[List[str]] = Field(
148
- None, description='List of column names corresponding to the constraint.'
149
- )
150
- referredColumns: Optional[List[basic.FullyQualifiedEntityName]] = Field(
151
- None, description='List of referred columns for the constraint.'
152
- )
153
-
154
-
155
- class ColumnName(BaseModel):
156
- __root__: constr(regex=r'^((?!::).)*$', min_length=1, max_length=256) = Field(
157
- ...,
158
- description='Local name (not fully qualified name) of the column. ColumnName is `-` when the column is not named in struct dataType. For example, BigQuery supports struct with unnamed fields.',
147
+ model_config = ConfigDict(
148
+ extra='forbid',
159
149
  )
150
+ constraintType: Optional[ConstraintType] = None
151
+ columns: Annotated[
152
+ Optional[List[str]],
153
+ Field(
154
+ None, description='List of column names corresponding to the constraint.'
155
+ ),
156
+ ]
157
+ referredColumns: Annotated[
158
+ Optional[List[basic.FullyQualifiedEntityName]],
159
+ Field(None, description='List of referred columns for the constraint.'),
160
+ ]
161
+
162
+
163
+ class ColumnName(RootModel[str]):
164
+ root: Annotated[
165
+ str,
166
+ Field(
167
+ description='Local name (not fully qualified name) of the column. ColumnName is `-` when the column is not named in struct dataType. For example, BigQuery supports struct with unnamed fields.',
168
+ max_length=256,
169
+ min_length=1,
170
+
171
+ ),
172
+ ]
160
173
 
161
174
 
162
175
  class PartitionIntervalTypes(Enum):
@@ -170,163 +183,209 @@ class PartitionIntervalTypes(Enum):
170
183
 
171
184
 
172
185
  class PartitionColumnDetails(BaseModel):
173
- class Config:
174
- extra = Extra.forbid
175
-
176
- columnName: Optional[str] = Field(
177
- None, description='List of column names corresponding to the partition.'
186
+ model_config = ConfigDict(
187
+ extra='forbid',
178
188
  )
189
+ columnName: Annotated[
190
+ Optional[str],
191
+ Field(None, description='List of column names corresponding to the partition.'),
192
+ ]
179
193
  intervalType: Optional[PartitionIntervalTypes] = None
180
- interval: Optional[str] = Field(
181
- None, description='partition interval , example hourly, daily, monthly.'
182
- )
194
+ interval: Annotated[
195
+ Optional[str],
196
+ Field(None, description='partition interval , example hourly, daily, monthly.'),
197
+ ]
183
198
 
184
199
 
185
200
  class JoinedWith(BaseModel):
186
- class Config:
187
- extra = Extra.forbid
188
-
201
+ model_config = ConfigDict(
202
+ extra='forbid',
203
+ )
189
204
  fullyQualifiedName: basic.FullyQualifiedEntityName
190
205
  joinCount: int
191
206
 
192
207
 
193
208
  class ColumnJoins(BaseModel):
194
- class Config:
195
- extra = Extra.forbid
196
-
197
- columnName: Optional[ColumnName] = None
198
- joinedWith: Optional[List[JoinedWith]] = Field(
199
- None,
200
- description='Fully qualified names of the columns that this column is joined with.',
209
+ model_config = ConfigDict(
210
+ extra='forbid',
201
211
  )
212
+ columnName: Optional[ColumnName] = None
213
+ joinedWith: Annotated[
214
+ Optional[List[JoinedWith]],
215
+ Field(
216
+ None,
217
+ description='Fully qualified names of the columns that this column is joined with.',
218
+ ),
219
+ ]
202
220
 
203
221
 
204
222
  class TableJoins(BaseModel):
205
- class Config:
206
- extra = Extra.forbid
207
-
208
- startDate: Optional[basic.Date] = Field(
209
- None, description='Date can be only from today going back to last 29 days.'
210
- )
223
+ model_config = ConfigDict(
224
+ extra='forbid',
225
+ )
226
+ startDate: Annotated[
227
+ Optional[basic.Date],
228
+ Field(
229
+ None, description='Date can be only from today going back to last 29 days.'
230
+ ),
231
+ ]
211
232
  dayCount: Optional[int] = 1
212
233
  columnJoins: Optional[List[ColumnJoins]] = None
213
- directTableJoins: Optional[List[JoinedWith]] = Field(
214
- None,
215
- description='Joins with other tables that are not on a specific column (e.g: UNION join)',
216
- )
234
+ directTableJoins: Annotated[
235
+ Optional[List[JoinedWith]],
236
+ Field(
237
+ None,
238
+ description='Joins with other tables that are not on a specific column (e.g: UNION join)',
239
+ ),
240
+ ]
217
241
 
218
242
 
219
243
  class TableData(BaseModel):
220
- class Config:
221
- extra = Extra.forbid
222
-
223
- columns: Optional[List[ColumnName]] = Field(
224
- None,
225
- description='List of local column names (not fully qualified column names) of the table.',
226
- )
227
- rows: Optional[List[List]] = Field(
228
- None, description='Data for multiple rows of the table.'
229
- )
244
+ model_config = ConfigDict(
245
+ extra='forbid',
246
+ )
247
+ columns: Annotated[
248
+ Optional[List[ColumnName]],
249
+ Field(
250
+ None,
251
+ description='List of local column names (not fully qualified column names) of the table.',
252
+ ),
253
+ ]
254
+ rows: Annotated[
255
+ Optional[List[List]],
256
+ Field(None, description='Data for multiple rows of the table.'),
257
+ ]
230
258
 
231
259
 
232
260
  class CustomMetricProfile(BaseModel):
233
- class Config:
234
- extra = Extra.forbid
235
-
236
- name: Optional[str] = Field(None, description='Custom metric name.')
237
- value: Optional[float] = Field(
238
- None, description='Profiling results for the metric.'
261
+ model_config = ConfigDict(
262
+ extra='forbid',
239
263
  )
264
+ name: Annotated[Optional[str], Field(None, description='Custom metric name.')]
265
+ value: Annotated[
266
+ Optional[float], Field(None, description='Profiling results for the metric.')
267
+ ]
240
268
 
241
269
 
242
270
  class Histogram(BaseModel):
243
- class Config:
244
- extra = Extra.forbid
245
-
246
- boundaries: Optional[List] = Field(None, description='Boundaries of Histogram.')
247
- frequencies: Optional[List] = Field(None, description='Frequencies of Histogram.')
271
+ model_config = ConfigDict(
272
+ extra='forbid',
273
+ )
274
+ boundaries: Annotated[
275
+ Optional[List], Field(None, description='Boundaries of Histogram.')
276
+ ]
277
+ frequencies: Annotated[
278
+ Optional[List], Field(None, description='Frequencies of Histogram.')
279
+ ]
248
280
 
249
281
 
250
282
  class ColumnProfile(BaseModel):
251
- class Config:
252
- extra = Extra.forbid
253
-
254
- name: str = Field(..., description='Column Name.')
255
- timestamp: basic.Timestamp = Field(
256
- ..., description='Timestamp on which profile is taken.'
257
- )
258
- valuesCount: Optional[float] = Field(
259
- None, description='Total count of the values in this column.'
260
- )
261
- valuesPercentage: Optional[float] = Field(
262
- None,
263
- description='Percentage of values in this column with respect to row count.',
264
- )
265
- validCount: Optional[float] = Field(
266
- None, description='Total count of valid values in this column.'
267
- )
268
- duplicateCount: Optional[float] = Field(
269
- None, description='No.of Rows that contain duplicates in a column.'
270
- )
271
- nullCount: Optional[float] = Field(
272
- None, description='No.of null values in a column.'
273
- )
274
- nullProportion: Optional[float] = Field(
275
- None, description='No.of null value proportion in columns.'
276
- )
277
- missingPercentage: Optional[float] = Field(
278
- None,
279
- description='Missing Percentage is calculated by taking percentage of validCount/valuesCount.',
280
- )
281
- missingCount: Optional[float] = Field(
282
- None,
283
- description='Missing count is calculated by subtracting valuesCount - validCount.',
284
- )
285
- uniqueCount: Optional[float] = Field(
286
- None, description='No. of unique values in the column.'
287
- )
288
- uniqueProportion: Optional[float] = Field(
289
- None, description='Proportion of number of unique values in a column.'
290
- )
291
- distinctCount: Optional[float] = Field(
292
- None, description='Number of values that contain distinct values.'
293
- )
294
- distinctProportion: Optional[float] = Field(
295
- None, description='Proportion of distinct values in a column.'
296
- )
297
- min: Optional[Union[float, int, basic.DateTime, basic.Time, basic.Date]] = Field(
298
- None, description='Minimum value in a column.'
299
- )
300
- max: Optional[Union[float, int, basic.DateTime, basic.Time, basic.Date]] = Field(
301
- None, description='Maximum value in a column.'
302
- )
303
- minLength: Optional[float] = Field(
304
- None, description='Minimum string length in a column.'
305
- )
306
- maxLength: Optional[float] = Field(
307
- None, description='Maximum string length in a column.'
308
- )
309
- mean: Optional[float] = Field(None, description='Avg value in a column.')
310
- sum: Optional[float] = Field(None, description='Median value in a column.')
311
- stddev: Optional[float] = Field(None, description='Standard deviation of a column.')
312
- variance: Optional[float] = Field(None, description='Variance of a column.')
313
- median: Optional[float] = Field(None, description='Median of a column.')
314
- firstQuartile: Optional[float] = Field(
315
- None, description='First quartile of a column.'
316
- )
317
- thirdQuartile: Optional[float] = Field(
318
- None, description='First quartile of a column.'
319
- )
320
- interQuartileRange: Optional[float] = Field(
321
- None, description='Inter quartile range of a column.'
322
- )
323
- nonParametricSkew: Optional[float] = Field(
324
- None, description='Non parametric skew of a column.'
325
- )
326
- histogram: Optional[Histogram] = Field(None, description='Histogram of a column.')
327
- customMetrics: Optional[List[CustomMetricProfile]] = Field(
328
- None, description='Custom Metrics profile list bound to a column.'
329
- )
283
+ model_config = ConfigDict(
284
+ extra='forbid',
285
+ )
286
+ name: Annotated[str, Field(description='Column Name.')]
287
+ timestamp: Annotated[
288
+ basic.Timestamp, Field(description='Timestamp on which profile is taken.')
289
+ ]
290
+ valuesCount: Annotated[
291
+ Optional[float],
292
+ Field(None, description='Total count of the values in this column.'),
293
+ ]
294
+ valuesPercentage: Annotated[
295
+ Optional[float],
296
+ Field(
297
+ None,
298
+ description='Percentage of values in this column with respect to row count.',
299
+ ),
300
+ ]
301
+ validCount: Annotated[
302
+ Optional[float],
303
+ Field(None, description='Total count of valid values in this column.'),
304
+ ]
305
+ duplicateCount: Annotated[
306
+ Optional[float],
307
+ Field(None, description='No.of Rows that contain duplicates in a column.'),
308
+ ]
309
+ nullCount: Annotated[
310
+ Optional[float], Field(None, description='No.of null values in a column.')
311
+ ]
312
+ nullProportion: Annotated[
313
+ Optional[float],
314
+ Field(None, description='No.of null value proportion in columns.'),
315
+ ]
316
+ missingPercentage: Annotated[
317
+ Optional[float],
318
+ Field(
319
+ None,
320
+ description='Missing Percentage is calculated by taking percentage of validCount/valuesCount.',
321
+ ),
322
+ ]
323
+ missingCount: Annotated[
324
+ Optional[float],
325
+ Field(
326
+ None,
327
+ description='Missing count is calculated by subtracting valuesCount - validCount.',
328
+ ),
329
+ ]
330
+ uniqueCount: Annotated[
331
+ Optional[float], Field(None, description='No. of unique values in the column.')
332
+ ]
333
+ uniqueProportion: Annotated[
334
+ Optional[float],
335
+ Field(None, description='Proportion of number of unique values in a column.'),
336
+ ]
337
+ distinctCount: Annotated[
338
+ Optional[float],
339
+ Field(None, description='Number of values that contain distinct values.'),
340
+ ]
341
+ distinctProportion: Annotated[
342
+ Optional[float],
343
+ Field(None, description='Proportion of distinct values in a column.'),
344
+ ]
345
+ min: Annotated[
346
+ Optional[Union[float, int, basic.DateTime, basic.Time, basic.Date, str]],
347
+ Field(None, description='Minimum value in a column.'),
348
+ ]
349
+ max: Annotated[
350
+ Optional[Union[float, int, basic.DateTime, basic.Time, basic.Date, str]],
351
+ Field(None, description='Maximum value in a column.'),
352
+ ]
353
+ minLength: Annotated[
354
+ Optional[float], Field(None, description='Minimum string length in a column.')
355
+ ]
356
+ maxLength: Annotated[
357
+ Optional[float], Field(None, description='Maximum string length in a column.')
358
+ ]
359
+ mean: Annotated[Optional[float], Field(None, description='Avg value in a column.')]
360
+ sum: Annotated[
361
+ Optional[float], Field(None, description='Median value in a column.')
362
+ ]
363
+ stddev: Annotated[
364
+ Optional[float], Field(None, description='Standard deviation of a column.')
365
+ ]
366
+ variance: Annotated[
367
+ Optional[float], Field(None, description='Variance of a column.')
368
+ ]
369
+ median: Annotated[Optional[float], Field(None, description='Median of a column.')]
370
+ firstQuartile: Annotated[
371
+ Optional[float], Field(None, description='First quartile of a column.')
372
+ ]
373
+ thirdQuartile: Annotated[
374
+ Optional[float], Field(None, description='First quartile of a column.')
375
+ ]
376
+ interQuartileRange: Annotated[
377
+ Optional[float], Field(None, description='Inter quartile range of a column.')
378
+ ]
379
+ nonParametricSkew: Annotated[
380
+ Optional[float], Field(None, description='Non parametric skew of a column.')
381
+ ]
382
+ histogram: Annotated[
383
+ Optional[Histogram], Field(None, description='Histogram of a column.')
384
+ ]
385
+ customMetrics: Annotated[
386
+ Optional[List[CustomMetricProfile]],
387
+ Field(None, description='Custom Metrics profile list bound to a column.'),
388
+ ]
330
389
 
331
390
 
332
391
  class DmlOperationType(Enum):
@@ -336,22 +395,26 @@ class DmlOperationType(Enum):
336
395
 
337
396
 
338
397
  class SystemProfile(BaseModel):
339
- timestamp: Optional[basic.Timestamp] = Field(
340
- None, description='Timestamp on which profile is taken.'
341
- )
342
- operation: Optional[DmlOperationType] = Field(
343
- None, description='Operation performed.'
344
- )
345
- rowsAffected: Optional[int] = Field(None, description='Number of rows affected.')
398
+ timestamp: Annotated[
399
+ Optional[basic.Timestamp],
400
+ Field(None, description='Timestamp on which profile is taken.'),
401
+ ]
402
+ operation: Annotated[
403
+ Optional[DmlOperationType], Field(None, description='Operation performed.')
404
+ ]
405
+ rowsAffected: Annotated[
406
+ Optional[int], Field(None, description='Number of rows affected.')
407
+ ]
346
408
 
347
409
 
348
410
  class ColumnProfilerConfig(BaseModel):
349
- columnName: Optional[str] = Field(
350
- None, description='Column Name of the table to be included.'
351
- )
352
- metrics: Optional[List[str]] = Field(
353
- None, description='Include only following metrics.'
354
- )
411
+ columnName: Annotated[
412
+ Optional[str],
413
+ Field(None, description='Column Name of the table to be included.'),
414
+ ]
415
+ metrics: Annotated[
416
+ Optional[List[str]], Field(None, description='Include only following metrics.')
417
+ ]
355
418
 
356
419
 
357
420
  class PartitionIntervalUnit(Enum):
@@ -362,80 +425,109 @@ class PartitionIntervalUnit(Enum):
362
425
 
363
426
 
364
427
  class PartitionProfilerConfig(BaseModel):
365
- enablePartitioning: Optional[bool] = Field(
366
- False, description='whether to use partition'
367
- )
368
- partitionColumnName: Optional[str] = Field(
369
- None, description='name of the column to use for the partition'
370
- )
428
+ enablePartitioning: Annotated[
429
+ Optional[bool], Field(False, description='whether to use partition')
430
+ ]
431
+ partitionColumnName: Annotated[
432
+ Optional[str],
433
+ Field(None, description='name of the column to use for the partition'),
434
+ ]
371
435
  partitionIntervalType: Optional[PartitionIntervalTypes] = None
372
- partitionInterval: Optional[int] = Field(
373
- None, description='The interval to use for the partitioning'
374
- )
375
- partitionIntervalUnit: Optional[PartitionIntervalUnit] = Field(
376
- None, description='unit used for the partition interval'
377
- )
378
- partitionValues: Optional[List] = Field(
379
- None, description='unit used for the partition interval'
380
- )
381
- partitionIntegerRangeStart: Optional[int] = Field(
382
- None, description='start of the integer range for partitioning'
383
- )
384
- partitionIntegerRangeEnd: Optional[int] = Field(
385
- None, description='end of the integer range for partitioning'
386
- )
436
+ partitionInterval: Annotated[
437
+ Optional[int],
438
+ Field(None, description='The interval to use for the partitioning'),
439
+ ]
440
+ partitionIntervalUnit: Annotated[
441
+ Optional[PartitionIntervalUnit],
442
+ Field(None, description='unit used for the partition interval'),
443
+ ]
444
+ partitionValues: Annotated[
445
+ Optional[List], Field(None, description='unit used for the partition interval')
446
+ ]
447
+ partitionIntegerRangeStart: Annotated[
448
+ Optional[int],
449
+ Field(None, description='start of the integer range for partitioning'),
450
+ ]
451
+ partitionIntegerRangeEnd: Annotated[
452
+ Optional[int],
453
+ Field(None, description='end of the integer range for partitioning'),
454
+ ]
387
455
 
388
456
 
389
457
  class TableProfilerConfig(BaseModel):
390
458
  profileSampleType: Optional[ProfileSampleType] = ProfileSampleType.PERCENTAGE
391
- profileSample: Optional[float] = Field(
392
- None,
393
- description='Percentage of data or no. of rows used to compute the profiler metrics and run data quality tests',
394
- )
395
- sampleDataCount: Optional[int] = Field(
396
- 50,
397
- description="Number of sample rows to ingest when 'Generate Sample Data' is enabled",
398
- title='Sample Data Rows Count',
399
- )
400
- profileQuery: Optional[str] = Field(
401
- None,
402
- description="Users' raw SQL query to fetch sample data and profile the table",
403
- )
404
- excludeColumns: Optional[List[str]] = Field(
405
- None, description='column names to exclude from profiling.'
406
- )
407
- includeColumns: Optional[List[ColumnProfilerConfig]] = Field(
408
- None, description='Only run profiler on included columns with specific metrics.'
409
- )
410
- partitioning: Optional[PartitionProfilerConfig] = Field(
411
- None, description='Partitioning configuration'
412
- )
459
+ profileSample: Annotated[
460
+ Optional[float],
461
+ Field(
462
+ None,
463
+ description='Percentage of data or no. of rows used to compute the profiler metrics and run data quality tests',
464
+ ),
465
+ ]
466
+ sampleDataCount: Annotated[
467
+ Optional[int],
468
+ Field(
469
+ 50,
470
+ description="Number of sample rows to ingest when 'Generate Sample Data' is enabled",
471
+ title='Sample Data Rows Count',
472
+ ),
473
+ ]
474
+ profileQuery: Annotated[
475
+ Optional[str],
476
+ Field(
477
+ None,
478
+ description="Users' raw SQL query to fetch sample data and profile the table",
479
+ ),
480
+ ]
481
+ excludeColumns: Annotated[
482
+ Optional[List[str]],
483
+ Field(None, description='column names to exclude from profiling.'),
484
+ ]
485
+ includeColumns: Annotated[
486
+ Optional[List[ColumnProfilerConfig]],
487
+ Field(
488
+ None,
489
+ description='Only run profiler on included columns with specific metrics.',
490
+ ),
491
+ ]
492
+ partitioning: Annotated[
493
+ Optional[PartitionProfilerConfig],
494
+ Field(None, description='Partitioning configuration'),
495
+ ]
413
496
 
414
497
 
415
498
  class TableProfile(BaseModel):
416
- class Config:
417
- extra = Extra.forbid
418
-
419
- timestamp: basic.Timestamp = Field(
420
- ..., description='Timestamp on which profile is taken.'
421
- )
422
- profileSample: Optional[float] = Field(
423
- None,
424
- description='Percentage of data or no. of rows we want to execute the profiler and tests on',
425
- )
499
+ model_config = ConfigDict(
500
+ extra='forbid',
501
+ )
502
+ timestamp: Annotated[
503
+ basic.Timestamp, Field(description='Timestamp on which profile is taken.')
504
+ ]
505
+ profileSample: Annotated[
506
+ Optional[float],
507
+ Field(
508
+ None,
509
+ description='Percentage of data or no. of rows we want to execute the profiler and tests on',
510
+ ),
511
+ ]
426
512
  profileSampleType: Optional[ProfileSampleType] = ProfileSampleType.PERCENTAGE
427
- columnCount: Optional[float] = Field(
428
- None, description='No.of columns in the table.'
429
- )
430
- rowCount: Optional[float] = Field(
431
- None,
432
- description='No.of rows in the table. This is always executed on the whole table.',
433
- )
434
- sizeInByte: Optional[float] = Field(None, description='Table size in GB')
435
- createDateTime: Optional[datetime] = Field(None, description='Table creation time.')
436
- customMetrics: Optional[List[CustomMetricProfile]] = Field(
437
- None, description='Custom Metrics profile list bound to a column.'
438
- )
513
+ columnCount: Annotated[
514
+ Optional[float], Field(None, description='No.of columns in the table.')
515
+ ]
516
+ rowCount: Annotated[
517
+ Optional[float],
518
+ Field(
519
+ None,
520
+ description='No.of rows in the table. This is always executed on the whole table.',
521
+ ),
522
+ ]
523
+ sizeInByte: Annotated[Optional[float], Field(None, description='Table size in GB')]
524
+ createDateTime: Annotated[
525
+ Optional[AwareDatetime], Field(None, description='Table creation time.')
526
+ ]
527
+ customMetrics: Annotated[
528
+ Optional[List[CustomMetricProfile]],
529
+ Field(None, description='Custom Metrics profile list bound to a column.'),
530
+ ]
439
531
 
440
532
 
441
533
  class ModelType(Enum):
@@ -451,233 +543,342 @@ class FileFormat(Enum):
451
543
  json = 'json'
452
544
  json_gz = 'json.gz'
453
545
  json_zip = 'json.zip'
546
+ jsonl = 'jsonl'
547
+ jsonl_gz = 'jsonl.gz'
548
+ jsonl_zip = 'jsonl.zip'
454
549
 
455
550
 
456
551
  class TablePartition(BaseModel):
457
- class Config:
458
- extra = Extra.forbid
459
-
460
- columns: Optional[List[PartitionColumnDetails]] = Field(
461
- None, description='List of column partitions with their type and interval.'
552
+ model_config = ConfigDict(
553
+ extra='forbid',
462
554
  )
555
+ columns: Annotated[
556
+ Optional[List[PartitionColumnDetails]],
557
+ Field(
558
+ None, description='List of column partitions with their type and interval.'
559
+ ),
560
+ ]
463
561
 
464
562
 
465
563
  class Column(BaseModel):
466
- class Config:
467
- extra = Extra.forbid
468
-
469
- name: ColumnName
470
- displayName: Optional[str] = Field(
471
- None, description='Display Name that identifies this column name.'
472
- )
473
- dataType: DataType = Field(
474
- ..., description='Data type of the column (int, date etc.).'
475
- )
476
- arrayDataType: Optional[DataType] = Field(
477
- None,
478
- description='Data type used array in dataType. For example, `array<int>` has dataType as `array` and arrayDataType as `int`.',
479
- )
480
- dataLength: Optional[int] = Field(
481
- None,
482
- description='Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, `varchar(20)` has dataType as `varchar` and dataLength as `20`.',
483
- )
484
- precision: Optional[int] = Field(
485
- None,
486
- description='The precision of a numeric is the total count of significant digits in the whole number, that is, the number of digits to both sides of the decimal point. Precision is applicable Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc.',
487
- )
488
- scale: Optional[int] = Field(
489
- None,
490
- description='The scale of a numeric is the count of decimal digits in the fractional part, to the right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc.',
491
- )
492
- dataTypeDisplay: Optional[str] = Field(
493
- None,
494
- description='Display name used for dataType. This is useful for complex types, such as `array<int>`, `map<int,string>`, `struct<>`, and union types.',
495
- )
496
- description: Optional[basic.Markdown] = Field(
497
- None, description='Description of the column.'
564
+ model_config = ConfigDict(
565
+ extra='forbid',
498
566
  )
567
+ name: ColumnName
568
+ displayName: Annotated[
569
+ Optional[str],
570
+ Field(None, description='Display Name that identifies this column name.'),
571
+ ]
572
+ dataType: Annotated[
573
+ DataType, Field(description='Data type of the column (int, date etc.).')
574
+ ]
575
+ arrayDataType: Annotated[
576
+ Optional[DataType],
577
+ Field(
578
+ None,
579
+ description='Data type used array in dataType. For example, `array<int>` has dataType as `array` and arrayDataType as `int`.',
580
+ ),
581
+ ]
582
+ dataLength: Annotated[
583
+ Optional[int],
584
+ Field(
585
+ None,
586
+ description='Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, `varchar(20)` has dataType as `varchar` and dataLength as `20`.',
587
+ ),
588
+ ]
589
+ precision: Annotated[
590
+ Optional[int],
591
+ Field(
592
+ None,
593
+ description='The precision of a numeric is the total count of significant digits in the whole number, that is, the number of digits to both sides of the decimal point. Precision is applicable Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc.',
594
+ ),
595
+ ]
596
+ scale: Annotated[
597
+ Optional[int],
598
+ Field(
599
+ None,
600
+ description='The scale of a numeric is the count of decimal digits in the fractional part, to the right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc.',
601
+ ),
602
+ ]
603
+ dataTypeDisplay: Annotated[
604
+ Optional[str],
605
+ Field(
606
+ None,
607
+ description='Display name used for dataType. This is useful for complex types, such as `array<int>`, `map<int,string>`, `struct<>`, and union types.',
608
+ ),
609
+ ]
610
+ description: Annotated[
611
+ Optional[basic.Markdown], Field(None, description='Description of the column.')
612
+ ]
499
613
  fullyQualifiedName: Optional[basic.FullyQualifiedEntityName] = None
500
- tags: Optional[List[tagLabel.TagLabel]] = Field(
501
- None, description='Tags associated with the column.'
502
- )
503
- constraint: Optional[Constraint] = Field(
504
- None, description='Column level constraint.'
505
- )
506
- ordinalPosition: Optional[int] = Field(
507
- None, description='Ordinal position of the column.'
508
- )
509
- jsonSchema: Optional[str] = Field(
510
- None, description='Json schema only if the dataType is JSON else null.'
511
- )
512
- children: Optional[List[Column]] = Field(
513
- None,
514
- description='Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`.',
515
- )
516
- profile: Optional[ColumnProfile] = Field(
517
- None, description='Latest Data profile for a Column.'
518
- )
519
- customMetrics: Optional[List[customMetric.CustomMetric]] = Field(
520
- None, description='List of Custom Metrics registered for a table.'
521
- )
614
+ tags: Annotated[
615
+ Optional[List[tagLabel.TagLabel]],
616
+ Field(None, description='Tags associated with the column.'),
617
+ ]
618
+ constraint: Annotated[
619
+ Optional[Constraint], Field(None, description='Column level constraint.')
620
+ ]
621
+ ordinalPosition: Annotated[
622
+ Optional[int], Field(None, description='Ordinal position of the column.')
623
+ ]
624
+ jsonSchema: Annotated[
625
+ Optional[str],
626
+ Field(None, description='Json schema only if the dataType is JSON else null.'),
627
+ ]
628
+ children: Annotated[
629
+ Optional[List[Column]],
630
+ Field(
631
+ None,
632
+ description='Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`.',
633
+ ),
634
+ ]
635
+ profile: Annotated[
636
+ Optional[ColumnProfile],
637
+ Field(None, description='Latest Data profile for a Column.'),
638
+ ]
639
+ customMetrics: Annotated[
640
+ Optional[List[customMetric.CustomMetric]],
641
+ Field(None, description='List of Custom Metrics registered for a table.'),
642
+ ]
522
643
 
523
644
 
524
645
  class DataModel(BaseModel):
525
- class Config:
526
- extra = Extra.forbid
527
-
528
- modelType: ModelType
529
- resourceType: Optional[str] = Field(None, description='Resource Type of the model.')
530
- description: Optional[basic.Markdown] = Field(
531
- None, description='Description of the Table from the model.'
532
- )
533
- path: Optional[str] = Field(None, description='Path to sql definition file.')
534
- rawSql: Optional[basic.SqlQuery] = Field(
535
- None,
536
- description='This corresponds to rws SQL from `<model_name>.sql` in DBT. This might be null when SQL query need not be compiled as done in DBT.',
537
- )
538
- sql: basic.SqlQuery = Field(
539
- ...,
540
- description='This corresponds to compile SQL from `<model_name>.sql` in DBT. In cases where compilation is not necessary, this corresponds to SQL that created the table.',
541
- )
542
- upstream: Optional[List[str]] = Field(
543
- None,
544
- description='Fully qualified name of Models/tables used for in `sql` for creating this table.',
545
- )
546
- owner: Optional[entityReference.EntityReference] = Field(
547
- None, description='Owner of this Model.'
548
- )
549
- tags: Optional[List[tagLabel.TagLabel]] = Field(
550
- None, description='Tags for this data model.'
551
- )
552
- columns: Optional[List[Column]] = Field(
553
- None,
554
- description='Columns from the schema defined during modeling. In case of DBT, the metadata here comes from `schema.yaml`.',
646
+ model_config = ConfigDict(
647
+ extra='forbid',
555
648
  )
649
+ modelType: ModelType
650
+ resourceType: Annotated[
651
+ Optional[str], Field(None, description='Resource Type of the model.')
652
+ ]
653
+ description: Annotated[
654
+ Optional[basic.Markdown],
655
+ Field(None, description='Description of the Table from the model.'),
656
+ ]
657
+ path: Annotated[
658
+ Optional[str], Field(None, description='Path to sql definition file.')
659
+ ]
660
+ rawSql: Annotated[
661
+ Optional[basic.SqlQuery],
662
+ Field(
663
+ None,
664
+ description='This corresponds to rws SQL from `<model_name>.sql` in DBT. This might be null when SQL query need not be compiled as done in DBT.',
665
+ ),
666
+ ]
667
+ sql: Annotated[
668
+ Optional[basic.SqlQuery],
669
+ Field(
670
+ None,
671
+ description='This corresponds to compile SQL from `<model_name>.sql` in DBT. In cases where compilation is not necessary, this corresponds to SQL that created the table.',
672
+ ),
673
+ ]
674
+ upstream: Annotated[
675
+ Optional[List[str]],
676
+ Field(
677
+ None,
678
+ description='Fully qualified name of Models/tables used for in `sql` for creating this table.',
679
+ ),
680
+ ]
681
+ owners: Annotated[
682
+ Optional[entityReferenceList.EntityReferenceList],
683
+ Field(None, description='Owners of this Table.'),
684
+ ]
685
+ tags: Annotated[
686
+ Optional[List[tagLabel.TagLabel]],
687
+ Field(None, description='Tags for this data model.'),
688
+ ]
689
+ columns: Annotated[
690
+ Optional[List[Column]],
691
+ Field(
692
+ None,
693
+ description='Columns from the schema defined during modeling. In case of DBT, the metadata here comes from `schema.yaml`.',
694
+ ),
695
+ ]
556
696
  generatedAt: Optional[basic.DateTime] = None
557
697
 
558
698
 
559
699
  class Table(BaseModel):
560
- class Config:
561
- extra = Extra.forbid
562
-
563
- id: basic.Uuid = Field(..., description='Unique identifier of this table instance.')
564
- name: basic.EntityName = Field(
565
- ..., description='Name of a table. Expected to be unique within a database.'
566
- )
567
- displayName: Optional[str] = Field(
568
- None,
569
- description='Display Name that identifies this table. It could be title or label from the source services.',
570
- )
571
- fullyQualifiedName: Optional[basic.FullyQualifiedEntityName] = Field(
572
- None,
573
- description='Fully qualified name of a table in the form `serviceName.databaseName.tableName`.',
574
- )
575
- description: Optional[basic.Markdown] = Field(
576
- None, description='Description of a table.'
577
- )
578
- version: Optional[entityHistory.EntityVersion] = Field(
579
- None, description='Metadata version of the entity.'
580
- )
581
- updatedAt: Optional[basic.Timestamp] = Field(
582
- None,
583
- description='Last update time corresponding to the new version of the entity in Unix epoch time milliseconds.',
584
- )
585
- updatedBy: Optional[str] = Field(None, description='User who made the update.')
586
- href: Optional[basic.Href] = Field(None, description='Link to this table resource.')
700
+ model_config = ConfigDict(
701
+ extra='forbid',
702
+ )
703
+ id: Annotated[
704
+ basic.Uuid, Field(description='Unique identifier of this table instance.')
705
+ ]
706
+ name: Annotated[
707
+ basic.EntityName,
708
+ Field(description='Name of a table. Expected to be unique within a database.'),
709
+ ]
710
+ displayName: Annotated[
711
+ Optional[str],
712
+ Field(
713
+ None,
714
+ description='Display Name that identifies this table. It could be title or label from the source services.',
715
+ ),
716
+ ]
717
+ fullyQualifiedName: Annotated[
718
+ Optional[basic.FullyQualifiedEntityName],
719
+ Field(
720
+ None,
721
+ description='Fully qualified name of a table in the form `serviceName.databaseName.tableName`.',
722
+ ),
723
+ ]
724
+ description: Annotated[
725
+ Optional[basic.Markdown], Field(None, description='Description of a table.')
726
+ ]
727
+ version: Annotated[
728
+ Optional[entityHistory.EntityVersion],
729
+ Field(None, description='Metadata version of the entity.'),
730
+ ]
731
+ updatedAt: Annotated[
732
+ Optional[basic.Timestamp],
733
+ Field(
734
+ None,
735
+ description='Last update time corresponding to the new version of the entity in Unix epoch time milliseconds.',
736
+ ),
737
+ ]
738
+ updatedBy: Annotated[
739
+ Optional[str], Field(None, description='User who made the update.')
740
+ ]
741
+ href: Annotated[
742
+ Optional[basic.Href], Field(None, description='Link to this table resource.')
743
+ ]
587
744
  tableType: Optional[TableType] = None
588
- columns: List[Column] = Field(..., description='Columns in this table.')
589
- tableConstraints: Optional[List[TableConstraint]] = Field(
590
- None, description='Table constraints.'
591
- )
745
+ columns: Annotated[List[Column], Field(description='Columns in this table.')]
746
+ tableConstraints: Annotated[
747
+ Optional[List[TableConstraint]], Field(None, description='Table constraints.')
748
+ ]
592
749
  tablePartition: Optional[TablePartition] = None
593
- owner: Optional[entityReference.EntityReference] = Field(
594
- None, description='Owner of this table.'
595
- )
596
- databaseSchema: Optional[entityReference.EntityReference] = Field(
597
- None, description='Reference to database schema that contains this table.'
598
- )
599
- database: Optional[entityReference.EntityReference] = Field(
600
- None, description='Reference to Database that contains this table.'
601
- )
602
- service: Optional[entityReference.EntityReference] = Field(
603
- None, description='Link to Database service this table is hosted in.'
604
- )
605
- serviceType: Optional[databaseService.DatabaseServiceType] = Field(
606
- None, description='Service type this table is hosted in.'
607
- )
608
- location: Optional[entityReference.EntityReference] = Field(
609
- None, description='Reference to the Location that contains this table.'
610
- )
611
- schemaDefinition: Optional[basic.SqlQuery] = Field(
612
- None, description='DDL for Tables and Views'
613
- )
614
- tags: Optional[List[tagLabel.TagLabel]] = Field(
615
- None, description='Tags for this table.'
616
- )
617
- usageSummary: Optional[usageDetails.UsageDetails] = Field(
618
- None, description='Latest usage information for this table.'
619
- )
620
- followers: Optional[entityReferenceList.EntityReferenceList] = Field(
621
- None, description='Followers of this table.'
622
- )
623
- joins: Optional[TableJoins] = Field(
624
- None,
625
- description='Details of other tables this table is frequently joined with.',
626
- )
627
- sampleData: Optional[TableData] = Field(
628
- None, description='Sample data for a table.'
629
- )
630
- tableProfilerConfig: Optional[TableProfilerConfig] = Field(
631
- None,
632
- description='Table Profiler Config to include or exclude columns from profiling.',
633
- )
634
- customMetrics: Optional[List[customMetric.CustomMetric]] = Field(
635
- None, description='List of Custom Metrics registered for a table.'
636
- )
637
- profile: Optional[TableProfile] = Field(
638
- None, description='Latest Data profile for a table.'
639
- )
640
- testSuite: Optional[entityReference.EntityReference] = Field(
641
- None, description='Executable test suite associated with this table'
642
- )
643
- dataModel: Optional[DataModel] = Field(
644
- None,
645
- description='This captures information about how the table is modeled. Currently only DBT model is supported.',
646
- )
647
- changeDescription: Optional[entityHistory.ChangeDescription] = Field(
648
- None, description='Change that lead to this version of the entity.'
649
- )
650
- deleted: Optional[bool] = Field(
651
- False, description='When `true` indicates the entity has been soft deleted.'
652
- )
653
- retentionPeriod: Optional[basic.Duration] = Field(
654
- None,
655
- description='Retention period of the data in the table. Period is expressed as duration in ISO 8601 format in UTC. Example - `P23DT23H`. When not set, the retention period is inherited from the parent database schema, if it exists.',
656
- )
657
- extension: Optional[basic.EntityExtension] = Field(
658
- None,
659
- description='Entity extension data with custom attributes added to the entity.',
660
- )
661
- sourceUrl: Optional[basic.SourceUrl] = Field(
662
- None, description='Source URL of table.'
663
- )
664
- domain: Optional[entityReference.EntityReference] = Field(
665
- None,
666
- description='Domain the table belongs to. When not set, the table inherits the domain from the database schema it belongs to.',
667
- )
668
- dataProducts: Optional[entityReferenceList.EntityReferenceList] = Field(
669
- None, description='List of data products this entity is part of.'
670
- )
671
- fileFormat: Optional[FileFormat] = Field(
672
- None, description='File format in case of file/datalake tables.'
673
- )
674
- votes: Optional[votes.Votes] = None
675
- lifeCycle: Optional[lifeCycle.LifeCycle] = Field(
676
- None, description='Life Cycle of the entity'
677
- )
678
- sourceHash: Optional[constr(min_length=1, max_length=32)] = Field(
679
- None, description='Source hash of the entity'
680
- )
681
-
682
-
683
- Column.update_forward_refs()
750
+ owners: Annotated[
751
+ Optional[entityReferenceList.EntityReferenceList],
752
+ Field(None, description='Owners of this table.'),
753
+ ]
754
+ databaseSchema: Annotated[
755
+ Optional[entityReference.EntityReference],
756
+ Field(
757
+ None, description='Reference to database schema that contains this table.'
758
+ ),
759
+ ]
760
+ database: Annotated[
761
+ Optional[entityReference.EntityReference],
762
+ Field(None, description='Reference to Database that contains this table.'),
763
+ ]
764
+ service: Annotated[
765
+ Optional[entityReference.EntityReference],
766
+ Field(None, description='Link to Database service this table is hosted in.'),
767
+ ]
768
+ serviceType: Annotated[
769
+ Optional[databaseService.DatabaseServiceType],
770
+ Field(None, description='Service type this table is hosted in.'),
771
+ ]
772
+ location: Annotated[
773
+ Optional[entityReference.EntityReference],
774
+ Field(None, description='Reference to the Location that contains this table.'),
775
+ ]
776
+ schemaDefinition: Annotated[
777
+ Optional[basic.SqlQuery], Field(None, description='DDL for Tables and Views')
778
+ ]
779
+ tags: Annotated[
780
+ Optional[List[tagLabel.TagLabel]],
781
+ Field(None, description='Tags for this table.'),
782
+ ]
783
+ usageSummary: Annotated[
784
+ Optional[usageDetails.UsageDetails],
785
+ Field(None, description='Latest usage information for this table.'),
786
+ ]
787
+ followers: Annotated[
788
+ Optional[entityReferenceList.EntityReferenceList],
789
+ Field(None, description='Followers of this table.'),
790
+ ]
791
+ joins: Annotated[
792
+ Optional[TableJoins],
793
+ Field(
794
+ None,
795
+ description='Details of other tables this table is frequently joined with.',
796
+ ),
797
+ ]
798
+ sampleData: Annotated[
799
+ Optional[TableData], Field(None, description='Sample data for a table.')
800
+ ]
801
+ tableProfilerConfig: Annotated[
802
+ Optional[TableProfilerConfig],
803
+ Field(
804
+ None,
805
+ description='Table Profiler Config to include or exclude columns from profiling.',
806
+ ),
807
+ ]
808
+ customMetrics: Annotated[
809
+ Optional[List[customMetric.CustomMetric]],
810
+ Field(None, description='List of Custom Metrics registered for a table.'),
811
+ ]
812
+ profile: Annotated[
813
+ Optional[TableProfile],
814
+ Field(None, description='Latest Data profile for a table.'),
815
+ ]
816
+ testSuite: Annotated[
817
+ Optional[entityReference.EntityReference],
818
+ Field(None, description='Executable test suite associated with this table'),
819
+ ]
820
+ dataModel: Annotated[
821
+ Optional[DataModel],
822
+ Field(
823
+ None,
824
+ description='This captures information about how the table is modeled. Currently only DBT model is supported.',
825
+ ),
826
+ ]
827
+ changeDescription: Annotated[
828
+ Optional[entityHistory.ChangeDescription],
829
+ Field(None, description='Change that lead to this version of the entity.'),
830
+ ]
831
+ deleted: Annotated[
832
+ Optional[bool],
833
+ Field(
834
+ False, description='When `true` indicates the entity has been soft deleted.'
835
+ ),
836
+ ]
837
+ retentionPeriod: Annotated[
838
+ Optional[basic.Duration],
839
+ Field(
840
+ None,
841
+ description='Retention period of the data in the table. Period is expressed as duration in ISO 8601 format in UTC. Example - `P23DT23H`. When not set, the retention period is inherited from the parent database schema, if it exists.',
842
+ ),
843
+ ]
844
+ extension: Annotated[
845
+ Optional[basic.EntityExtension],
846
+ Field(
847
+ None,
848
+ description='Entity extension data with custom attributes added to the entity.',
849
+ ),
850
+ ]
851
+ sourceUrl: Annotated[
852
+ Optional[basic.SourceUrl], Field(None, description='Source URL of table.')
853
+ ]
854
+ domain: Annotated[
855
+ Optional[entityReference.EntityReference],
856
+ Field(
857
+ None,
858
+ description='Domain the asset belongs to. When not set, the asset inherits the domain from the parent it belongs to.',
859
+ ),
860
+ ]
861
+ dataProducts: Annotated[
862
+ Optional[entityReferenceList.EntityReferenceList],
863
+ Field(None, description='List of data products this entity is part of.'),
864
+ ]
865
+ fileFormat: Annotated[
866
+ Optional[FileFormat],
867
+ Field(None, description='File format in case of file/datalake tables.'),
868
+ ]
869
+ votes: Annotated[
870
+ Optional[votes.Votes], Field(None, description='Votes on the entity.')
871
+ ]
872
+ lifeCycle: Annotated[
873
+ Optional[lifeCycle.LifeCycle],
874
+ Field(None, description='Life Cycle of the entity'),
875
+ ]
876
+ sourceHash: Annotated[
877
+ Optional[str],
878
+ Field(
879
+ None, description='Source hash of the entity', max_length=32, min_length=1
880
+ ),
881
+ ]
882
+
883
+
884
+ Column.model_rebuild()