openmetadata-ingestion 1.4.6.0rc1__py3-none-any.whl → 1.5.0.0rc1__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 (1064) 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/ometa.py +23 -0
  6. _openmetadata_testutils/postgres/conftest.py +70 -0
  7. _openmetadata_testutils/pydantic/test_utils.py +78 -0
  8. airflow_provider_openmetadata/lineage/callback.py +3 -3
  9. airflow_provider_openmetadata/lineage/config/loader.py +1 -1
  10. airflow_provider_openmetadata/lineage/runner.py +5 -5
  11. airflow_provider_openmetadata/lineage/status.py +2 -2
  12. metadata/automations/runner.py +1 -1
  13. metadata/cli/app.py +1 -2
  14. metadata/cli/dataquality.py +8 -7
  15. metadata/cli/ingest.py +8 -7
  16. metadata/cli/lineage.py +10 -5
  17. metadata/cli/profile.py +8 -7
  18. metadata/cli/usage.py +6 -7
  19. metadata/clients/aws_client.py +4 -4
  20. metadata/clients/azure_client.py +1 -1
  21. metadata/clients/domo_client.py +11 -17
  22. metadata/cmd.py +16 -20
  23. metadata/config/common.py +3 -4
  24. metadata/data_quality/api/models.py +2 -2
  25. metadata/data_quality/builders/i_validator_builder.py +100 -0
  26. metadata/{data_insight/producer/producer_interface.py → data_quality/builders/pandas_validator_builder.py} +12 -12
  27. metadata/data_quality/{validations/validator.py → builders/sqa_validator_builder.py} +7 -8
  28. metadata/data_quality/interface/pandas/pandas_test_suite_interface.py +9 -42
  29. metadata/data_quality/interface/sqlalchemy/sqa_test_suite_interface.py +7 -40
  30. metadata/data_quality/interface/test_suite_interface.py +84 -2
  31. metadata/data_quality/processor/test_case_runner.py +76 -40
  32. metadata/data_quality/runner/base_test_suite_source.py +1 -1
  33. metadata/data_quality/runner/core.py +2 -2
  34. metadata/data_quality/source/test_suite.py +17 -15
  35. metadata/data_quality/validations/base_test_handler.py +25 -5
  36. metadata/data_quality/validations/column/base/columnValueLengthsToBeBetween.py +2 -0
  37. metadata/data_quality/validations/column/base/columnValueMaxToBeBetween.py +2 -0
  38. metadata/data_quality/validations/column/base/columnValueMeanToBeBetween.py +2 -0
  39. metadata/data_quality/validations/column/base/columnValueMedianToBeBetween.py +2 -0
  40. metadata/data_quality/validations/column/base/columnValueMinToBeBetween.py +2 -0
  41. metadata/data_quality/validations/column/base/columnValueStdDevToBeBetween.py +2 -0
  42. metadata/data_quality/validations/column/base/columnValuesSumToBeBetween.py +2 -0
  43. metadata/data_quality/validations/column/base/columnValuesToBeBetween.py +24 -14
  44. metadata/data_quality/validations/column/base/columnValuesToBeInSet.py +13 -1
  45. metadata/data_quality/validations/column/base/columnValuesToBeNotInSet.py +1 -1
  46. metadata/data_quality/validations/column/pandas/columnValueLengthsToBeBetween.py +1 -1
  47. metadata/data_quality/validations/column/pandas/columnValueMaxToBeBetween.py +1 -1
  48. metadata/data_quality/validations/column/pandas/columnValueMeanToBeBetween.py +1 -1
  49. metadata/data_quality/validations/column/pandas/columnValueMedianToBeBetween.py +1 -1
  50. metadata/data_quality/validations/column/pandas/columnValueMinToBeBetween.py +1 -1
  51. metadata/data_quality/validations/column/pandas/columnValueStdDevToBeBetween.py +1 -1
  52. metadata/data_quality/validations/column/pandas/columnValuesMissingCount.py +1 -1
  53. metadata/data_quality/validations/column/pandas/columnValuesSumToBeBetween.py +1 -1
  54. metadata/data_quality/validations/column/pandas/columnValuesToBeBetween.py +1 -1
  55. metadata/data_quality/validations/column/pandas/columnValuesToBeInSet.py +1 -1
  56. metadata/data_quality/validations/column/pandas/columnValuesToBeNotInSet.py +1 -1
  57. metadata/data_quality/validations/column/pandas/columnValuesToBeNotNull.py +1 -1
  58. metadata/data_quality/validations/column/pandas/columnValuesToBeUnique.py +1 -1
  59. metadata/data_quality/validations/column/pandas/columnValuesToMatchRegex.py +1 -1
  60. metadata/data_quality/validations/column/pandas/columnValuesToNotMatchRegex.py +1 -1
  61. metadata/data_quality/validations/column/sqlalchemy/columnValueLengthsToBeBetween.py +1 -1
  62. metadata/data_quality/validations/column/sqlalchemy/columnValueMaxToBeBetween.py +1 -1
  63. metadata/data_quality/validations/column/sqlalchemy/columnValueMeanToBeBetween.py +1 -1
  64. metadata/data_quality/validations/column/sqlalchemy/columnValueMedianToBeBetween.py +1 -1
  65. metadata/data_quality/validations/column/sqlalchemy/columnValueMinToBeBetween.py +1 -1
  66. metadata/data_quality/validations/column/sqlalchemy/columnValueStdDevToBeBetween.py +1 -1
  67. metadata/data_quality/validations/column/sqlalchemy/columnValuesMissingCount.py +1 -1
  68. metadata/data_quality/validations/column/sqlalchemy/columnValuesSumToBeBetween.py +1 -1
  69. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeBetween.py +1 -1
  70. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeInSet.py +1 -1
  71. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeNotInSet.py +1 -1
  72. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeNotNull.py +1 -1
  73. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeUnique.py +1 -1
  74. metadata/data_quality/validations/column/sqlalchemy/columnValuesToMatchRegex.py +1 -1
  75. metadata/data_quality/validations/column/sqlalchemy/columnValuesToNotMatchRegex.py +1 -1
  76. metadata/data_quality/validations/models.py +21 -0
  77. metadata/data_quality/validations/runtime_param_setter/param_setter.py +42 -0
  78. metadata/data_quality/validations/runtime_param_setter/param_setter_factory.py +54 -0
  79. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +190 -0
  80. metadata/data_quality/validations/table/base/tableRowCountToBeBetween.py +4 -13
  81. metadata/data_quality/validations/table/pandas/tableRowInsertedCountToBeBetween.py +2 -2
  82. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +402 -0
  83. metadata/examples/workflows/alationsink.yaml +34 -0
  84. metadata/examples/workflows/bigquery_profiler.yaml +1 -1
  85. metadata/examples/workflows/dbtcloud.yaml +26 -0
  86. metadata/examples/workflows/deltalake.yaml +6 -5
  87. metadata/examples/workflows/flink.yaml +33 -0
  88. metadata/examples/workflows/saperp.yaml +24 -0
  89. metadata/examples/workflows/synapse.yaml +24 -0
  90. metadata/generated/antlr/EntityLinkLexer.py +279 -249
  91. metadata/generated/schema/analytics/__init__.py +1 -1
  92. metadata/generated/schema/analytics/basic.py +19 -16
  93. metadata/generated/schema/analytics/reportData.py +26 -18
  94. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  95. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +64 -43
  96. metadata/generated/schema/analytics/reportDataType/entityReportData.py +35 -24
  97. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +18 -11
  98. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +24 -16
  99. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +23 -12
  100. metadata/generated/schema/analytics/webAnalyticEvent.py +75 -42
  101. metadata/generated/schema/analytics/webAnalyticEventData.py +17 -12
  102. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  103. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +24 -16
  104. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +31 -21
  105. metadata/generated/schema/api/__init__.py +1 -1
  106. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +28 -18
  107. metadata/generated/schema/api/analytics/__init__.py +1 -1
  108. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +33 -20
  109. metadata/generated/schema/api/automations/__init__.py +1 -1
  110. metadata/generated/schema/api/automations/createWorkflow.py +46 -27
  111. metadata/generated/schema/api/bulkAssets.py +14 -8
  112. metadata/generated/schema/api/classification/__init__.py +1 -1
  113. metadata/generated/schema/api/classification/createClassification.py +28 -15
  114. metadata/generated/schema/api/classification/createTag.py +43 -24
  115. metadata/generated/schema/api/classification/loadTags.py +11 -6
  116. metadata/generated/schema/api/createBot.py +30 -14
  117. metadata/generated/schema/api/createEventPublisherJob.py +42 -26
  118. metadata/generated/schema/api/createType.py +33 -21
  119. metadata/generated/schema/api/data/__init__.py +1 -1
  120. metadata/generated/schema/api/data/createAPICollection.py +97 -0
  121. metadata/generated/schema/api/data/createAPIEndpoint.py +107 -0
  122. metadata/generated/schema/api/data/createChart.py +71 -39
  123. metadata/generated/schema/api/data/createContainer.py +105 -68
  124. metadata/generated/schema/api/data/createCustomProperty.py +22 -14
  125. metadata/generated/schema/api/data/createDashboard.py +95 -58
  126. metadata/generated/schema/api/data/createDashboardDataModel.py +88 -51
  127. metadata/generated/schema/api/data/createDatabase.py +85 -53
  128. metadata/generated/schema/api/data/createDatabaseSchema.py +81 -50
  129. metadata/generated/schema/api/data/createGlossary.py +51 -34
  130. metadata/generated/schema/api/data/createGlossaryTerm.py +75 -48
  131. metadata/generated/schema/api/data/createMlModel.py +105 -68
  132. metadata/generated/schema/api/data/createPipeline.py +95 -58
  133. metadata/generated/schema/api/data/createQuery.py +85 -54
  134. metadata/generated/schema/api/data/createSearchIndex.py +76 -49
  135. metadata/generated/schema/api/data/createStoredProcedure.py +70 -46
  136. metadata/generated/schema/api/data/createTable.py +87 -58
  137. metadata/generated/schema/api/data/createTableProfile.py +16 -11
  138. metadata/generated/schema/api/data/createTopic.py +120 -75
  139. metadata/generated/schema/api/data/loadGlossary.py +12 -8
  140. metadata/generated/schema/api/data/restoreEntity.py +11 -7
  141. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  142. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +41 -26
  143. metadata/generated/schema/api/dataInsight/custom/__init__.py +3 -0
  144. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +53 -0
  145. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  146. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +49 -21
  147. metadata/generated/schema/api/docStore/__init__.py +1 -1
  148. metadata/generated/schema/api/docStore/createDocument.py +24 -12
  149. metadata/generated/schema/api/domains/__init__.py +1 -1
  150. metadata/generated/schema/api/domains/createDataProduct.py +50 -30
  151. metadata/generated/schema/api/domains/createDomain.py +38 -25
  152. metadata/generated/schema/api/feed/__init__.py +1 -1
  153. metadata/generated/schema/api/feed/closeTask.py +17 -10
  154. metadata/generated/schema/api/feed/createPost.py +16 -11
  155. metadata/generated/schema/api/feed/createSuggestion.py +56 -16
  156. metadata/generated/schema/api/feed/createThread.py +55 -34
  157. metadata/generated/schema/api/feed/resolveTask.py +21 -14
  158. metadata/generated/schema/api/feed/threadCount.py +29 -19
  159. metadata/generated/schema/api/lineage/__init__.py +1 -1
  160. metadata/generated/schema/api/lineage/addLineage.py +11 -6
  161. metadata/generated/schema/api/openMetadataServerVersion.py +18 -11
  162. metadata/generated/schema/api/policies/__init__.py +1 -1
  163. metadata/generated/schema/api/policies/createPolicy.py +38 -18
  164. metadata/generated/schema/api/services/__init__.py +1 -1
  165. metadata/generated/schema/api/services/createApiService.py +60 -0
  166. metadata/generated/schema/api/services/createDashboardService.py +42 -28
  167. metadata/generated/schema/api/services/createDatabaseService.py +42 -28
  168. metadata/generated/schema/api/services/createMessagingService.py +45 -29
  169. metadata/generated/schema/api/services/createMetadataService.py +34 -20
  170. metadata/generated/schema/api/services/createMlModelService.py +42 -28
  171. metadata/generated/schema/api/services/createPipelineService.py +50 -34
  172. metadata/generated/schema/api/services/createSearchService.py +45 -29
  173. metadata/generated/schema/api/services/createStorageService.py +45 -29
  174. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  175. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +45 -24
  176. metadata/generated/schema/api/setOwner.py +17 -8
  177. metadata/generated/schema/api/teams/__init__.py +1 -1
  178. metadata/generated/schema/api/teams/createPersona.py +32 -15
  179. metadata/generated/schema/api/teams/createRole.py +31 -16
  180. metadata/generated/schema/api/teams/createTeam.py +72 -46
  181. metadata/generated/schema/api/teams/createUser.py +75 -47
  182. metadata/generated/schema/api/tests/__init__.py +1 -1
  183. metadata/generated/schema/api/tests/createCustomMetric.py +38 -26
  184. metadata/generated/schema/api/tests/createLogicalTestCases.py +14 -10
  185. metadata/generated/schema/api/tests/createTestCase.py +46 -26
  186. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +25 -17
  187. metadata/generated/schema/api/tests/createTestDefinition.py +29 -15
  188. metadata/generated/schema/api/tests/createTestSuite.py +50 -27
  189. metadata/generated/schema/api/voteRequest.py +12 -6
  190. metadata/generated/schema/auth/__init__.py +1 -1
  191. metadata/generated/schema/auth/basicAuth.py +9 -6
  192. metadata/generated/schema/auth/basicLoginRequest.py +10 -7
  193. metadata/generated/schema/auth/changePasswordRequest.py +18 -13
  194. metadata/generated/schema/auth/createPersonalToken.py +9 -6
  195. metadata/generated/schema/auth/emailRequest.py +9 -6
  196. metadata/generated/schema/auth/emailVerificationToken.py +17 -13
  197. metadata/generated/schema/auth/generateToken.py +7 -5
  198. metadata/generated/schema/auth/jwtAuth.py +15 -9
  199. metadata/generated/schema/auth/loginRequest.py +10 -7
  200. metadata/generated/schema/auth/logoutRequest.py +14 -9
  201. metadata/generated/schema/auth/passwordResetRequest.py +16 -12
  202. metadata/generated/schema/auth/passwordResetToken.py +27 -18
  203. metadata/generated/schema/auth/personalAccessToken.py +21 -16
  204. metadata/generated/schema/auth/refreshToken.py +21 -16
  205. metadata/generated/schema/auth/registrationRequest.py +13 -10
  206. metadata/generated/schema/auth/revokePersonalToken.py +11 -7
  207. metadata/generated/schema/auth/revokeToken.py +7 -5
  208. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  209. metadata/generated/schema/auth/ssoAuth.py +24 -17
  210. metadata/generated/schema/auth/tokenRefreshRequest.py +11 -6
  211. metadata/generated/schema/configuration/__init__.py +1 -1
  212. metadata/generated/schema/configuration/appsPrivateConfiguration.py +23 -17
  213. metadata/generated/schema/configuration/authConfig.py +31 -22
  214. metadata/generated/schema/configuration/authenticationConfiguration.py +46 -33
  215. metadata/generated/schema/configuration/authorizerConfiguration.py +43 -37
  216. metadata/generated/schema/configuration/changeEventConfiguration.py +7 -5
  217. metadata/generated/schema/configuration/dataQualityConfiguration.py +10 -7
  218. metadata/generated/schema/configuration/elasticSearchConfiguration.py +52 -34
  219. metadata/generated/schema/configuration/eventHandlerConfiguration.py +10 -7
  220. metadata/generated/schema/configuration/fernetConfiguration.py +9 -6
  221. metadata/generated/schema/configuration/jwtTokenConfiguration.py +15 -12
  222. metadata/generated/schema/configuration/kafkaEventConfiguration.py +50 -36
  223. metadata/generated/schema/configuration/ldapConfiguration.py +72 -57
  224. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  225. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +23 -17
  226. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +13 -8
  227. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +10 -7
  228. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +11 -7
  229. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +23 -16
  230. metadata/generated/schema/configuration/limitsConfiguration.py +30 -0
  231. metadata/generated/schema/configuration/loginConfiguration.py +21 -14
  232. metadata/generated/schema/configuration/logoConfiguration.py +16 -13
  233. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +80 -49
  234. metadata/generated/schema/configuration/profilerConfiguration.py +18 -11
  235. metadata/generated/schema/configuration/slackAppConfiguration.py +15 -10
  236. metadata/generated/schema/configuration/taskNotificationConfiguration.py +11 -6
  237. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +21 -14
  238. metadata/generated/schema/configuration/themeConfiguration.py +42 -23
  239. metadata/generated/schema/configuration/uiThemePreference.py +19 -12
  240. metadata/generated/schema/dataInsight/__init__.py +1 -1
  241. metadata/generated/schema/dataInsight/custom/__init__.py +3 -0
  242. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +110 -0
  243. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +21 -0
  244. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +25 -0
  245. metadata/generated/schema/dataInsight/custom/formulaHolder.py +24 -0
  246. metadata/generated/schema/dataInsight/custom/lineChart.py +55 -0
  247. metadata/generated/schema/dataInsight/custom/summaryCard.py +42 -0
  248. metadata/generated/schema/dataInsight/dataInsightChart.py +79 -48
  249. metadata/generated/schema/dataInsight/dataInsightChartResult.py +40 -31
  250. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  251. metadata/generated/schema/dataInsight/kpi/basic.py +43 -32
  252. metadata/generated/schema/dataInsight/kpi/kpi.py +81 -52
  253. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  254. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +19 -12
  255. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +19 -12
  256. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +32 -19
  257. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +32 -18
  258. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +16 -8
  259. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +28 -19
  260. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +18 -13
  261. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +17 -9
  262. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +35 -17
  263. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +31 -17
  264. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +33 -17
  265. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +31 -17
  266. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +26 -14
  267. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +27 -14
  268. metadata/generated/schema/dataInsight/type/unusedAssets.py +17 -9
  269. metadata/generated/schema/email/__init__.py +1 -1
  270. metadata/generated/schema/email/emailRequest.py +26 -18
  271. metadata/generated/schema/email/emailTemplate.py +25 -0
  272. metadata/generated/schema/email/emailTemplatePlaceholder.py +20 -0
  273. metadata/generated/schema/email/smtpSettings.py +34 -18
  274. metadata/generated/schema/email/templateValidationReponse.py +29 -0
  275. metadata/generated/schema/entity/__init__.py +1 -1
  276. metadata/generated/schema/entity/applications/__init__.py +1 -1
  277. metadata/generated/schema/entity/applications/app.py +164 -107
  278. metadata/generated/schema/entity/applications/appRunRecord.py +42 -30
  279. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  280. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +24 -7
  281. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  282. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  283. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +28 -18
  284. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +22 -13
  285. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +23 -14
  286. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +28 -18
  287. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +20 -13
  288. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +19 -12
  289. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +11 -7
  290. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +19 -12
  291. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +11 -7
  292. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +11 -7
  293. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +20 -13
  294. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +11 -7
  295. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +68 -39
  296. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +39 -19
  297. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  298. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +57 -6
  299. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +17 -11
  300. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +34 -24
  301. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  302. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +19 -16
  303. metadata/generated/schema/entity/applications/createAppRequest.py +35 -23
  304. metadata/generated/schema/entity/applications/jobStatus.py +10 -6
  305. metadata/generated/schema/entity/applications/liveExecutionContext.py +15 -6
  306. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  307. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +144 -89
  308. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +95 -64
  309. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +8 -3
  310. metadata/generated/schema/entity/automations/__init__.py +1 -1
  311. metadata/generated/schema/entity/automations/testServiceConnection.py +47 -29
  312. metadata/generated/schema/entity/automations/workflow.py +82 -48
  313. metadata/generated/schema/entity/bot.py +64 -37
  314. metadata/generated/schema/entity/classification/__init__.py +1 -1
  315. metadata/generated/schema/entity/classification/classification.py +90 -50
  316. metadata/generated/schema/entity/classification/tag.py +104 -53
  317. metadata/generated/schema/entity/data/__init__.py +1 -1
  318. metadata/generated/schema/entity/data/apiCollection.py +145 -0
  319. metadata/generated/schema/entity/data/apiEndpoint.py +173 -0
  320. metadata/generated/schema/entity/data/chart.py +120 -72
  321. metadata/generated/schema/entity/data/container.py +178 -116
  322. metadata/generated/schema/entity/data/dashboard.py +141 -89
  323. metadata/generated/schema/entity/data/dashboardDataModel.py +129 -77
  324. metadata/generated/schema/entity/data/database.py +167 -104
  325. metadata/generated/schema/entity/data/databaseSchema.py +157 -98
  326. metadata/generated/schema/entity/data/glossary.py +118 -64
  327. metadata/generated/schema/entity/data/glossaryTerm.py +173 -105
  328. metadata/generated/schema/entity/data/metrics.py +93 -55
  329. metadata/generated/schema/entity/data/mlmodel.py +213 -148
  330. metadata/generated/schema/entity/data/pipeline.py +227 -150
  331. metadata/generated/schema/entity/data/query.py +126 -80
  332. metadata/generated/schema/entity/data/report.py +90 -49
  333. metadata/generated/schema/entity/data/searchIndex.py +171 -114
  334. metadata/generated/schema/entity/data/storedProcedure.py +140 -86
  335. metadata/generated/schema/entity/data/table.py +636 -436
  336. metadata/generated/schema/entity/data/topic.py +175 -111
  337. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  338. metadata/generated/schema/entity/docStore/document.py +52 -31
  339. metadata/generated/schema/entity/domains/__init__.py +1 -1
  340. metadata/generated/schema/entity/domains/dataProduct.py +72 -43
  341. metadata/generated/schema/entity/domains/domain.py +69 -45
  342. metadata/generated/schema/entity/events/__init__.py +1 -1
  343. metadata/generated/schema/entity/events/webhook.py +46 -25
  344. metadata/generated/schema/entity/feed/__init__.py +1 -1
  345. metadata/generated/schema/entity/feed/assets.py +7 -5
  346. metadata/generated/schema/entity/feed/customProperty.py +14 -7
  347. metadata/generated/schema/entity/feed/description.py +21 -13
  348. metadata/generated/schema/entity/feed/domain.py +15 -10
  349. metadata/generated/schema/entity/feed/entityInfo.py +14 -8
  350. metadata/generated/schema/entity/feed/owner.py +16 -11
  351. metadata/generated/schema/entity/feed/suggestion.py +112 -35
  352. metadata/generated/schema/entity/feed/tag.py +15 -10
  353. metadata/generated/schema/entity/feed/testCaseResult.py +19 -13
  354. metadata/generated/schema/entity/feed/thread.py +226 -148
  355. metadata/generated/schema/entity/policies/__init__.py +1 -1
  356. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  357. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +25 -12
  358. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +42 -28
  359. metadata/generated/schema/entity/policies/accessControl/rule.py +36 -23
  360. metadata/generated/schema/entity/policies/filters.py +14 -12
  361. metadata/generated/schema/entity/policies/policy.py +107 -67
  362. metadata/generated/schema/entity/services/__init__.py +1 -1
  363. metadata/generated/schema/entity/services/apiService.py +114 -0
  364. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  365. metadata/generated/schema/entity/services/connections/apiService/__init__.py +5 -0
  366. metadata/generated/schema/entity/services/connections/apiService/restConnection.py +38 -0
  367. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -3
  368. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +21 -13
  369. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +30 -19
  370. metadata/generated/schema/entity/services/connections/common/sslConfig.py +14 -8
  371. metadata/generated/schema/entity/services/connections/connectionBasicType.py +71 -55
  372. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  373. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +23 -15
  374. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +44 -30
  375. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +50 -36
  376. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +45 -36
  377. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +31 -24
  378. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +35 -27
  379. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +35 -27
  380. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +97 -63
  381. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  382. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +25 -18
  383. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +23 -14
  384. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +25 -18
  385. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +25 -18
  386. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +27 -19
  387. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +53 -36
  388. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +38 -23
  389. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +30 -21
  390. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +30 -22
  391. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +46 -35
  392. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +70 -52
  394. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +131 -89
  395. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +83 -56
  396. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +31 -22
  397. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +109 -72
  398. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +11 -7
  400. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +10 -8
  401. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +11 -7
  402. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +10 -8
  403. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +46 -32
  404. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +23 -15
  405. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +87 -60
  406. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +11 -7
  408. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +11 -7
  409. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +11 -7
  410. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +59 -43
  411. metadata/generated/schema/entity/services/connections/database/db2Connection.py +64 -48
  412. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +41 -85
  413. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +3 -0
  414. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +109 -0
  415. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +42 -0
  416. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +52 -33
  417. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +73 -52
  418. metadata/generated/schema/entity/services/connections/database/druidConnection.py +66 -47
  419. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +38 -27
  420. metadata/generated/schema/entity/services/connections/database/glueConnection.py +34 -24
  421. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +85 -56
  422. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +108 -75
  423. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +11 -6
  425. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +7 -5
  426. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +14 -9
  427. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +36 -25
  428. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +7 -5
  429. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +67 -46
  430. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +23 -15
  431. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +102 -67
  432. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +75 -52
  433. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +56 -38
  434. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +89 -60
  435. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +88 -60
  436. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +105 -74
  437. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +78 -54
  438. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +97 -65
  439. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +90 -61
  440. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +78 -55
  441. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +75 -47
  442. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +84 -0
  443. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +15 -9
  445. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +33 -24
  446. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +53 -38
  447. metadata/generated/schema/entity/services/connections/database/sasConnection.py +45 -31
  448. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +82 -54
  449. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +121 -80
  450. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +82 -56
  451. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +168 -0
  452. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +91 -62
  453. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +108 -72
  454. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +89 -60
  455. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +71 -50
  456. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  457. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +23 -15
  458. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +101 -61
  459. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +18 -13
  460. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +15 -10
  461. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +85 -54
  462. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  463. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  464. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +117 -74
  465. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +72 -0
  466. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +43 -28
  467. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +40 -27
  468. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +50 -40
  469. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +151 -92
  470. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  471. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +23 -15
  472. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +29 -20
  473. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +20 -13
  474. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +15 -10
  475. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  476. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +25 -18
  477. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +34 -26
  478. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +11 -7
  479. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +23 -15
  480. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +29 -20
  481. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +37 -27
  482. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +43 -0
  483. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +44 -28
  484. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +37 -27
  485. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +35 -0
  486. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +18 -13
  487. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +62 -40
  488. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +71 -45
  489. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +71 -41
  490. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +11 -7
  491. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +28 -18
  492. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  493. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +23 -15
  494. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  495. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +22 -15
  496. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +14 -11
  497. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +48 -31
  498. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +54 -35
  499. metadata/generated/schema/entity/services/connections/serviceConnection.py +38 -22
  500. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  501. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +27 -19
  502. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +23 -15
  503. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +34 -20
  504. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +32 -22
  505. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +96 -57
  506. metadata/generated/schema/entity/services/connections/testConnectionResult.py +40 -26
  507. metadata/generated/schema/entity/services/dashboardService.py +93 -62
  508. metadata/generated/schema/entity/services/databaseService.py +101 -63
  509. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  510. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +198 -122
  511. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +24 -13
  512. metadata/generated/schema/entity/services/ingestionPipelines/status.py +47 -37
  513. metadata/generated/schema/entity/services/messagingService.py +103 -69
  514. metadata/generated/schema/entity/services/metadataService.py +96 -56
  515. metadata/generated/schema/entity/services/mlmodelService.py +96 -63
  516. metadata/generated/schema/entity/services/pipelineService.py +102 -63
  517. metadata/generated/schema/entity/services/searchService.py +92 -62
  518. metadata/generated/schema/entity/services/serviceType.py +2 -1
  519. metadata/generated/schema/entity/services/storageService.py +93 -62
  520. metadata/generated/schema/entity/teams/__init__.py +1 -1
  521. metadata/generated/schema/entity/teams/persona.py +59 -35
  522. metadata/generated/schema/entity/teams/role.py +82 -51
  523. metadata/generated/schema/entity/teams/team.py +128 -82
  524. metadata/generated/schema/entity/teams/teamHierarchy.py +52 -35
  525. metadata/generated/schema/entity/teams/user.py +122 -81
  526. metadata/generated/schema/entity/type.py +94 -48
  527. metadata/generated/schema/entity/utils/__init__.py +1 -1
  528. metadata/generated/schema/entity/utils/entitiesCount.py +25 -18
  529. metadata/generated/schema/entity/utils/servicesCount.py +25 -22
  530. metadata/generated/schema/entity/utils/supersetApiConnection.py +19 -14
  531. metadata/generated/schema/events/__init__.py +1 -1
  532. metadata/generated/schema/events/alertMetrics.py +22 -14
  533. metadata/generated/schema/events/api/__init__.py +1 -1
  534. metadata/generated/schema/events/api/createEventSubscription.py +63 -35
  535. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +27 -0
  536. metadata/generated/schema/events/emailAlertConfig.py +20 -12
  537. metadata/generated/schema/events/eventFilterRule.py +40 -24
  538. metadata/generated/schema/events/eventSubscription.py +220 -142
  539. metadata/generated/schema/events/eventSubscriptionOffset.py +12 -8
  540. metadata/generated/schema/events/failedEvent.py +25 -13
  541. metadata/generated/schema/events/filterResourceDescriptor.py +24 -14
  542. metadata/generated/schema/events/subscriptionResourceDescriptor.py +20 -11
  543. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  544. metadata/generated/schema/metadataIngestion/application.py +39 -25
  545. metadata/generated/schema/metadataIngestion/applicationPipeline.py +23 -16
  546. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +125 -67
  547. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +9 -6
  548. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +182 -106
  549. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +117 -73
  550. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +75 -47
  551. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +51 -32
  552. metadata/generated/schema/metadataIngestion/dbtPipeline.py +75 -51
  553. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  554. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +37 -25
  555. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +23 -14
  556. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +36 -27
  557. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +37 -25
  558. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +31 -20
  559. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +31 -20
  560. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +37 -25
  561. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +45 -22
  562. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +65 -43
  563. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +35 -17
  564. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +99 -50
  565. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +51 -27
  566. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  567. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +60 -33
  568. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +59 -38
  569. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +22 -14
  570. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +15 -10
  571. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +15 -10
  572. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +14 -9
  573. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +14 -9
  574. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +14 -10
  575. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +57 -28
  576. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +32 -17
  577. metadata/generated/schema/metadataIngestion/workflow.py +114 -62
  578. metadata/generated/schema/monitoring/__init__.py +1 -1
  579. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  580. metadata/generated/schema/security/__init__.py +1 -1
  581. metadata/generated/schema/security/client/__init__.py +1 -1
  582. metadata/generated/schema/security/client/auth0SSOClientConfig.py +10 -9
  583. metadata/generated/schema/security/client/azureSSOClientConfig.py +12 -11
  584. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +11 -10
  585. metadata/generated/schema/security/client/googleSSOClientConfig.py +17 -12
  586. metadata/generated/schema/security/client/oidcClientConfig.py +45 -30
  587. metadata/generated/schema/security/client/oktaSSOClientConfig.py +14 -11
  588. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +9 -8
  589. metadata/generated/schema/security/client/samlSSOClientConfig.py +102 -67
  590. metadata/generated/schema/security/credentials/__init__.py +1 -1
  591. metadata/generated/schema/security/credentials/accessTokenAuth.py +17 -13
  592. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +10 -8
  593. metadata/generated/schema/security/credentials/awsCredentials.py +57 -38
  594. metadata/generated/schema/security/credentials/azureCredentials.py +47 -29
  595. metadata/generated/schema/security/credentials/basicAuth.py +13 -11
  596. metadata/generated/schema/security/credentials/bitbucketCredentials.py +22 -14
  597. metadata/generated/schema/security/credentials/gcpCredentials.py +66 -33
  598. metadata/generated/schema/security/credentials/gcpExternalAccount.py +55 -26
  599. metadata/generated/schema/security/credentials/gcpValues.py +70 -49
  600. metadata/generated/schema/security/credentials/gitCredentials.py +32 -25
  601. metadata/generated/schema/security/credentials/githubCredentials.py +13 -7
  602. metadata/generated/schema/security/sasl/__init__.py +3 -0
  603. metadata/generated/schema/security/sasl/saslClientConfig.py +40 -0
  604. metadata/generated/schema/security/secrets/__init__.py +1 -1
  605. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  606. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +39 -24
  607. metadata/generated/schema/security/secrets/secretsManagerProvider.py +2 -1
  608. metadata/generated/schema/security/securityConfiguration.py +15 -9
  609. metadata/generated/schema/security/ssl/__init__.py +1 -1
  610. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +30 -20
  611. metadata/generated/schema/security/ssl/verifySSLConfig.py +16 -18
  612. metadata/generated/schema/settings/__init__.py +1 -1
  613. metadata/generated/schema/settings/settings.py +9 -5
  614. metadata/generated/schema/system/__init__.py +1 -1
  615. metadata/generated/schema/system/entityError.py +7 -5
  616. metadata/generated/schema/system/eventPublisherJob.py +54 -37
  617. metadata/generated/schema/system/indexingError.py +7 -5
  618. metadata/generated/schema/system/limitsResponse.py +20 -0
  619. metadata/generated/schema/system/ui/__init__.py +1 -1
  620. metadata/generated/schema/system/ui/knowledgePanel.py +12 -8
  621. metadata/generated/schema/system/ui/page.py +24 -18
  622. metadata/generated/schema/system/validationResponse.py +40 -28
  623. metadata/generated/schema/tests/__init__.py +1 -1
  624. metadata/generated/schema/tests/assigned.py +11 -7
  625. metadata/generated/schema/tests/basic.py +98 -55
  626. metadata/generated/schema/tests/customMetric.py +41 -29
  627. metadata/generated/schema/tests/dataQualityReport.py +40 -0
  628. metadata/generated/schema/tests/resolved.py +17 -13
  629. metadata/generated/schema/tests/testCase.py +137 -76
  630. metadata/generated/schema/tests/testCaseResolutionStatus.py +49 -33
  631. metadata/generated/schema/tests/testDefinition.py +129 -67
  632. metadata/generated/schema/tests/testSuite.py +137 -75
  633. metadata/generated/schema/type/__init__.py +1 -1
  634. metadata/generated/schema/type/apiSchema.py +27 -0
  635. metadata/generated/schema/type/auditLog.py +29 -20
  636. metadata/generated/schema/type/basic.py +177 -110
  637. metadata/generated/schema/type/bulkOperationResult.py +45 -30
  638. metadata/generated/schema/type/changeEvent.py +72 -40
  639. metadata/generated/schema/type/changeEventType.py +1 -1
  640. metadata/generated/schema/type/collectionDescriptor.py +24 -15
  641. metadata/generated/schema/type/csvDocumentation.py +11 -8
  642. metadata/generated/schema/type/csvErrorType.py +1 -1
  643. metadata/generated/schema/type/csvFile.py +25 -17
  644. metadata/generated/schema/type/csvImportResult.py +34 -21
  645. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  646. metadata/generated/schema/type/customProperties/complexTypes.py +110 -64
  647. metadata/generated/schema/type/customProperties/enumConfig.py +7 -5
  648. metadata/generated/schema/type/customProperty.py +34 -25
  649. metadata/generated/schema/type/dailyCount.py +10 -7
  650. metadata/generated/schema/type/databaseConnectionConfig.py +69 -42
  651. metadata/generated/schema/type/entityHierarchy.py +35 -26
  652. metadata/generated/schema/type/entityHistory.py +71 -45
  653. metadata/generated/schema/type/entityLineage.py +89 -57
  654. metadata/generated/schema/type/entityReference.py +51 -30
  655. metadata/generated/schema/type/entityReferenceList.py +11 -8
  656. metadata/generated/schema/type/entityRelationship.py +68 -39
  657. metadata/generated/schema/type/entityUsage.py +15 -10
  658. metadata/generated/schema/type/filterPattern.py +21 -12
  659. metadata/generated/schema/type/function.py +30 -21
  660. metadata/generated/schema/type/include.py +1 -1
  661. metadata/generated/schema/type/jdbcConnection.py +24 -19
  662. metadata/generated/schema/type/lifeCycle.py +47 -26
  663. metadata/generated/schema/type/paging.py +32 -21
  664. metadata/generated/schema/type/profile.py +13 -11
  665. metadata/generated/schema/type/queryParserData.py +47 -32
  666. metadata/generated/schema/type/reaction.py +13 -8
  667. metadata/generated/schema/type/schedule.py +18 -11
  668. metadata/generated/schema/type/schema.py +64 -44
  669. metadata/generated/schema/type/tableQuery.py +53 -40
  670. metadata/generated/schema/type/tableUsageCount.py +46 -33
  671. metadata/generated/schema/type/tagLabel.py +36 -24
  672. metadata/generated/schema/type/usageDetails.py +40 -24
  673. metadata/generated/schema/type/usageRequest.py +10 -7
  674. metadata/generated/schema/type/votes.py +21 -12
  675. metadata/great_expectations/action.py +14 -12
  676. metadata/great_expectations/utils/ometa_config_handler.py +1 -1
  677. metadata/ingestion/api/common.py +3 -4
  678. metadata/ingestion/api/delete.py +1 -1
  679. metadata/ingestion/api/models.py +6 -8
  680. metadata/ingestion/api/parser.py +13 -17
  681. metadata/ingestion/api/status.py +35 -13
  682. metadata/ingestion/api/topology_runner.py +2 -1
  683. metadata/ingestion/bulksink/metadata_usage.py +17 -14
  684. metadata/ingestion/connections/builders.py +12 -12
  685. metadata/ingestion/connections/secrets.py +8 -6
  686. metadata/ingestion/connections/test_connections.py +10 -3
  687. metadata/ingestion/lineage/models.py +5 -4
  688. metadata/ingestion/lineage/sql_lineage.py +43 -13
  689. metadata/ingestion/models/custom_properties.py +9 -9
  690. metadata/ingestion/models/custom_pydantic.py +70 -44
  691. metadata/ingestion/models/lf_tags_model.py +3 -3
  692. metadata/ingestion/models/ometa_classification.py +1 -1
  693. metadata/ingestion/models/ometa_lineage.py +24 -0
  694. metadata/ingestion/models/patch_request.py +96 -56
  695. metadata/ingestion/models/table_metadata.py +2 -2
  696. metadata/ingestion/models/topology.py +18 -12
  697. metadata/ingestion/ometa/client.py +34 -8
  698. metadata/ingestion/ometa/client_utils.py +6 -7
  699. metadata/ingestion/ometa/mixins/custom_property_mixin.py +2 -4
  700. metadata/ingestion/ometa/mixins/dashboard_mixin.py +2 -2
  701. metadata/ingestion/ometa/mixins/data_insight_mixin.py +10 -6
  702. metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py +4 -2
  703. metadata/ingestion/ometa/mixins/lineage_mixin.py +52 -24
  704. metadata/ingestion/ometa/mixins/mlmodel_mixin.py +2 -2
  705. metadata/ingestion/ometa/mixins/patch_mixin.py +32 -30
  706. metadata/ingestion/ometa/mixins/pipeline_mixin.py +3 -3
  707. metadata/ingestion/ometa/mixins/query_mixin.py +4 -4
  708. metadata/ingestion/ometa/mixins/role_policy_mixin.py +13 -13
  709. metadata/ingestion/ometa/mixins/search_index_mixin.py +5 -5
  710. metadata/ingestion/ometa/mixins/server_mixin.py +4 -5
  711. metadata/ingestion/ometa/mixins/service_mixin.py +2 -2
  712. metadata/ingestion/ometa/mixins/suggestions_mixin.py +2 -2
  713. metadata/ingestion/ometa/mixins/table_mixin.py +20 -20
  714. metadata/ingestion/ometa/mixins/tests_mixin.py +21 -18
  715. metadata/ingestion/ometa/mixins/topic_mixin.py +2 -2
  716. metadata/ingestion/ometa/mixins/user_mixin.py +44 -23
  717. metadata/ingestion/ometa/models.py +1 -1
  718. metadata/ingestion/ometa/ometa_api.py +6 -7
  719. metadata/ingestion/ometa/routes.py +18 -0
  720. metadata/ingestion/ometa/ttl_cache.py +47 -0
  721. metadata/ingestion/ometa/utils.py +3 -3
  722. metadata/ingestion/processor/query_parser.py +3 -3
  723. metadata/ingestion/sink/file.py +2 -2
  724. metadata/ingestion/sink/metadata_rest.py +59 -29
  725. metadata/ingestion/source/dashboard/dashboard_service.py +45 -45
  726. metadata/ingestion/source/dashboard/domodashboard/metadata.py +29 -17
  727. metadata/ingestion/source/dashboard/lightdash/client.py +1 -1
  728. metadata/ingestion/source/dashboard/lightdash/metadata.py +26 -14
  729. metadata/ingestion/source/dashboard/lightdash/models.py +11 -11
  730. metadata/ingestion/source/dashboard/looker/bulk_parser.py +3 -3
  731. metadata/ingestion/source/dashboard/looker/connection.py +1 -1
  732. metadata/ingestion/source/dashboard/looker/metadata.py +59 -39
  733. metadata/ingestion/source/dashboard/looker/parser.py +3 -3
  734. metadata/ingestion/source/dashboard/looker/utils.py +2 -2
  735. metadata/ingestion/source/dashboard/metabase/client.py +18 -2
  736. metadata/ingestion/source/dashboard/metabase/metadata.py +45 -14
  737. metadata/ingestion/source/dashboard/metabase/models.py +46 -28
  738. metadata/ingestion/source/dashboard/mode/client.py +1 -1
  739. metadata/ingestion/source/dashboard/mode/metadata.py +24 -14
  740. metadata/ingestion/source/dashboard/mstr/client.py +1 -1
  741. metadata/ingestion/source/dashboard/mstr/metadata.py +18 -11
  742. metadata/ingestion/source/dashboard/mstr/models.py +4 -4
  743. metadata/ingestion/source/dashboard/powerbi/client.py +3 -3
  744. metadata/ingestion/source/dashboard/powerbi/metadata.py +50 -30
  745. metadata/ingestion/source/dashboard/powerbi/models.py +25 -22
  746. metadata/ingestion/source/dashboard/qlikcloud/client.py +1 -1
  747. metadata/ingestion/source/dashboard/qlikcloud/metadata.py +28 -16
  748. metadata/ingestion/source/dashboard/qlikcloud/models.py +4 -4
  749. metadata/ingestion/source/dashboard/qliksense/client.py +3 -3
  750. metadata/ingestion/source/dashboard/qliksense/metadata.py +35 -19
  751. metadata/ingestion/source/dashboard/qliksense/models.py +8 -8
  752. metadata/ingestion/source/dashboard/quicksight/metadata.py +26 -18
  753. metadata/ingestion/source/dashboard/quicksight/models.py +16 -16
  754. metadata/ingestion/source/dashboard/redash/client.py +1 -1
  755. metadata/ingestion/source/dashboard/redash/metadata.py +31 -19
  756. metadata/ingestion/source/dashboard/superset/api_source.py +46 -18
  757. metadata/ingestion/source/dashboard/superset/client.py +2 -2
  758. metadata/ingestion/source/dashboard/superset/db_source.py +44 -18
  759. metadata/ingestion/source/dashboard/superset/metadata.py +2 -2
  760. metadata/ingestion/source/dashboard/superset/mixin.py +7 -13
  761. metadata/ingestion/source/dashboard/superset/models.py +68 -68
  762. metadata/ingestion/source/dashboard/tableau/connection.py +2 -2
  763. metadata/ingestion/source/dashboard/tableau/metadata.py +398 -94
  764. metadata/ingestion/source/dashboard/tableau/models.py +33 -35
  765. metadata/ingestion/source/dashboard/tableau/queries.py +14 -0
  766. metadata/ingestion/source/database/athena/connection.py +34 -5
  767. metadata/ingestion/source/database/athena/metadata.py +43 -168
  768. metadata/ingestion/source/database/athena/models.py +10 -10
  769. metadata/ingestion/source/database/athena/query_parser.py +2 -2
  770. metadata/ingestion/source/database/athena/utils.py +191 -0
  771. metadata/ingestion/source/database/azuresql/metadata.py +4 -4
  772. metadata/ingestion/source/database/azuresql/query_parser.py +2 -2
  773. metadata/ingestion/source/database/bigquery/connection.py +17 -5
  774. metadata/ingestion/source/database/bigquery/helper.py +1 -1
  775. metadata/ingestion/source/database/bigquery/metadata.py +86 -51
  776. metadata/ingestion/source/database/bigquery/query_parser.py +3 -3
  777. metadata/ingestion/source/database/bigtable/connection.py +2 -2
  778. metadata/ingestion/source/database/bigtable/metadata.py +2 -2
  779. metadata/ingestion/source/database/clickhouse/connection.py +3 -3
  780. metadata/ingestion/source/database/clickhouse/metadata.py +11 -8
  781. metadata/ingestion/source/database/clickhouse/query_parser.py +4 -4
  782. metadata/ingestion/source/database/column_type_parser.py +17 -10
  783. metadata/ingestion/source/database/common_db_source.py +106 -48
  784. metadata/ingestion/source/database/common_nosql_source.py +22 -17
  785. metadata/ingestion/source/database/couchbase/connection.py +1 -1
  786. metadata/ingestion/source/database/couchbase/metadata.py +3 -3
  787. metadata/ingestion/source/database/database_service.py +29 -16
  788. metadata/ingestion/source/database/databricks/connection.py +1 -1
  789. metadata/ingestion/source/database/databricks/lineage.py +2 -1
  790. metadata/ingestion/source/database/databricks/metadata.py +26 -7
  791. metadata/ingestion/source/database/databricks/queries.py +2 -0
  792. metadata/ingestion/source/database/databricks/query_parser.py +2 -2
  793. metadata/ingestion/source/database/databricks/usage.py +2 -1
  794. metadata/ingestion/source/database/datalake/clients/azure_blob.py +72 -0
  795. metadata/ingestion/source/database/datalake/clients/base.py +47 -0
  796. metadata/ingestion/source/database/datalake/clients/gcs.py +132 -0
  797. metadata/ingestion/source/database/datalake/clients/s3.py +79 -0
  798. metadata/ingestion/source/database/datalake/connection.py +12 -70
  799. metadata/ingestion/source/database/datalake/metadata.py +75 -219
  800. metadata/ingestion/source/database/db2/metadata.py +5 -12
  801. metadata/ingestion/source/database/dbt/dbt_config.py +3 -2
  802. metadata/ingestion/source/database/dbt/dbt_service.py +15 -6
  803. metadata/ingestion/source/database/dbt/metadata.py +129 -88
  804. metadata/ingestion/source/database/dbt/models.py +9 -9
  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 +29 -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/utils.py +16 -1
  844. metadata/ingestion/source/database/mysql/metadata.py +2 -2
  845. metadata/ingestion/source/database/oracle/metadata.py +16 -13
  846. metadata/ingestion/source/database/oracle/models.py +1 -1
  847. metadata/ingestion/source/database/oracle/query_parser.py +2 -2
  848. metadata/ingestion/source/database/pinotdb/metadata.py +2 -2
  849. metadata/ingestion/source/database/postgres/lineage.py +2 -1
  850. metadata/ingestion/source/database/postgres/metadata.py +28 -6
  851. metadata/ingestion/source/database/postgres/pgspider/lineage.py +2 -2
  852. metadata/ingestion/source/database/postgres/queries.py +7 -0
  853. metadata/ingestion/source/database/postgres/query_parser.py +4 -4
  854. metadata/ingestion/source/database/postgres/usage.py +9 -2
  855. metadata/ingestion/source/database/presto/connection.py +2 -2
  856. metadata/ingestion/source/database/presto/metadata.py +2 -2
  857. metadata/ingestion/source/database/query/lineage.py +1 -1
  858. metadata/ingestion/source/database/query/usage.py +5 -3
  859. metadata/ingestion/source/database/query_parser_source.py +1 -1
  860. metadata/ingestion/source/database/redshift/metadata.py +7 -7
  861. metadata/ingestion/source/database/redshift/models.py +1 -1
  862. metadata/ingestion/source/database/redshift/queries.py +26 -2
  863. metadata/ingestion/source/database/redshift/query_parser.py +2 -2
  864. metadata/ingestion/source/database/salesforce/connection.py +1 -3
  865. metadata/ingestion/source/database/salesforce/metadata.py +22 -17
  866. metadata/ingestion/source/database/sample_data.py +198 -98
  867. metadata/ingestion/source/database/sample_usage.py +5 -7
  868. metadata/ingestion/source/database/saperp/__init__.py +0 -0
  869. metadata/ingestion/source/database/saperp/client.py +170 -0
  870. metadata/ingestion/source/database/saperp/connection.py +50 -0
  871. metadata/ingestion/source/database/saperp/constants.py +27 -0
  872. metadata/ingestion/source/database/saperp/metadata.py +322 -0
  873. metadata/ingestion/source/database/saperp/models.py +100 -0
  874. metadata/ingestion/source/database/saphana/metadata.py +2 -2
  875. metadata/ingestion/source/database/sas/client.py +2 -2
  876. metadata/ingestion/source/database/sas/metadata.py +35 -44
  877. metadata/ingestion/source/database/singlestore/metadata.py +2 -2
  878. metadata/ingestion/source/database/snowflake/connection.py +3 -3
  879. metadata/ingestion/source/database/snowflake/metadata.py +33 -12
  880. metadata/ingestion/source/database/snowflake/models.py +7 -7
  881. metadata/ingestion/source/database/snowflake/query_parser.py +2 -2
  882. metadata/ingestion/source/database/sql_column_handler.py +4 -3
  883. metadata/ingestion/source/database/sqlite/metadata.py +2 -2
  884. metadata/ingestion/source/database/stored_procedures_mixin.py +10 -11
  885. metadata/ingestion/source/database/teradata/metadata.py +4 -4
  886. metadata/ingestion/source/database/trino/connection.py +5 -7
  887. metadata/ingestion/source/database/trino/metadata.py +2 -2
  888. metadata/ingestion/source/database/trino/query_parser.py +2 -2
  889. metadata/ingestion/source/database/unitycatalog/lineage.py +7 -7
  890. metadata/ingestion/source/database/unitycatalog/metadata.py +25 -21
  891. metadata/ingestion/source/database/unitycatalog/models.py +16 -16
  892. metadata/ingestion/source/database/unitycatalog/query_parser.py +2 -2
  893. metadata/ingestion/source/database/usage_source.py +51 -34
  894. metadata/ingestion/source/database/vertica/metadata.py +3 -3
  895. metadata/ingestion/source/database/vertica/query_parser.py +4 -4
  896. metadata/ingestion/source/messaging/common_broker_source.py +18 -4
  897. metadata/ingestion/source/messaging/kafka/connection.py +1 -1
  898. metadata/ingestion/source/messaging/kafka/metadata.py +7 -10
  899. metadata/ingestion/source/messaging/kinesis/metadata.py +10 -5
  900. metadata/ingestion/source/messaging/kinesis/models.py +3 -5
  901. metadata/ingestion/source/messaging/messaging_service.py +12 -7
  902. metadata/ingestion/source/messaging/redpanda/metadata.py +2 -2
  903. metadata/ingestion/source/metadata/alationsink/__init__.py +0 -0
  904. metadata/ingestion/source/metadata/alationsink/client.py +213 -0
  905. metadata/ingestion/source/metadata/alationsink/connection.py +53 -0
  906. metadata/ingestion/source/metadata/alationsink/constants.py +60 -0
  907. metadata/ingestion/source/metadata/alationsink/metadata.py +397 -0
  908. metadata/ingestion/source/metadata/alationsink/models.py +148 -0
  909. metadata/ingestion/source/metadata/amundsen/connection.py +1 -1
  910. metadata/ingestion/source/metadata/amundsen/metadata.py +14 -10
  911. metadata/ingestion/source/metadata/atlas/client.py +1 -1
  912. metadata/ingestion/source/metadata/atlas/metadata.py +11 -12
  913. metadata/ingestion/source/mlmodel/mlflow/metadata.py +12 -6
  914. metadata/ingestion/source/mlmodel/mlmodel_service.py +13 -6
  915. metadata/ingestion/source/mlmodel/sagemaker/metadata.py +34 -21
  916. metadata/ingestion/source/pipeline/airbyte/client.py +1 -1
  917. metadata/ingestion/source/pipeline/airbyte/metadata.py +15 -11
  918. metadata/ingestion/source/pipeline/airflow/lineage_parser.py +3 -4
  919. metadata/ingestion/source/pipeline/airflow/metadata.py +28 -17
  920. metadata/ingestion/source/pipeline/airflow/models.py +21 -24
  921. metadata/ingestion/source/pipeline/dagster/client.py +3 -3
  922. metadata/ingestion/source/pipeline/dagster/metadata.py +19 -8
  923. metadata/ingestion/source/pipeline/dagster/models.py +14 -14
  924. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +120 -126
  925. metadata/ingestion/source/pipeline/databrickspipeline/models.py +72 -0
  926. metadata/ingestion/source/pipeline/dbtcloud/__init__.py +0 -0
  927. metadata/ingestion/source/pipeline/dbtcloud/client.py +118 -0
  928. metadata/ingestion/source/pipeline/dbtcloud/connection.py +60 -0
  929. metadata/ingestion/source/pipeline/dbtcloud/metadata.py +322 -0
  930. metadata/ingestion/source/pipeline/dbtcloud/models.py +72 -0
  931. metadata/ingestion/source/pipeline/dbtcloud/queries.py +34 -0
  932. metadata/ingestion/source/pipeline/domopipeline/metadata.py +20 -11
  933. metadata/ingestion/source/pipeline/fivetran/client.py +19 -6
  934. metadata/ingestion/source/pipeline/fivetran/metadata.py +124 -50
  935. metadata/ingestion/source/pipeline/fivetran/models.py +20 -0
  936. metadata/ingestion/source/pipeline/flink/client.py +53 -0
  937. metadata/ingestion/source/pipeline/flink/connection.py +52 -0
  938. metadata/ingestion/source/pipeline/flink/metadata.py +188 -0
  939. metadata/ingestion/source/pipeline/flink/models.py +44 -0
  940. metadata/ingestion/source/pipeline/gluepipeline/metadata.py +23 -11
  941. metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +7 -9
  942. metadata/ingestion/source/pipeline/nifi/metadata.py +17 -8
  943. metadata/ingestion/source/pipeline/openlineage/connection.py +12 -3
  944. metadata/ingestion/source/pipeline/openlineage/metadata.py +3 -27
  945. metadata/ingestion/source/pipeline/pipeline_service.py +52 -8
  946. metadata/ingestion/source/pipeline/spline/client.py +1 -1
  947. metadata/ingestion/source/pipeline/spline/metadata.py +3 -3
  948. metadata/ingestion/source/pipeline/spline/models.py +12 -12
  949. metadata/ingestion/source/search/elasticsearch/connection.py +2 -2
  950. metadata/ingestion/source/search/elasticsearch/metadata.py +5 -4
  951. metadata/ingestion/source/search/search_service.py +13 -6
  952. metadata/ingestion/source/storage/gcs/client.py +63 -0
  953. metadata/ingestion/source/storage/gcs/connection.py +159 -0
  954. metadata/ingestion/source/storage/gcs/metadata.py +461 -0
  955. metadata/ingestion/source/storage/gcs/models.py +86 -0
  956. metadata/ingestion/source/storage/s3/metadata.py +268 -18
  957. metadata/ingestion/source/storage/s3/models.py +30 -11
  958. metadata/ingestion/source/storage/storage_service.py +43 -7
  959. metadata/ingestion/stage/table_usage.py +3 -3
  960. metadata/mixins/pandas/pandas_mixin.py +2 -2
  961. metadata/mixins/sqalchemy/sqa_mixin.py +1 -1
  962. metadata/parsers/avro_parser.py +12 -10
  963. metadata/parsers/json_schema_parser.py +4 -4
  964. metadata/parsers/protobuf_parser.py +4 -5
  965. metadata/pii/processor.py +4 -6
  966. metadata/profiler/adaptors/dynamodb.py +2 -2
  967. metadata/profiler/adaptors/mongodb.py +5 -17
  968. metadata/profiler/api/models.py +9 -9
  969. metadata/profiler/interface/nosql/profiler_interface.py +5 -8
  970. metadata/profiler/interface/pandas/profiler_interface.py +8 -10
  971. metadata/profiler/interface/profiler_interface.py +3 -3
  972. metadata/profiler/interface/profiler_interface_factory.py +46 -51
  973. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +28 -17
  974. metadata/profiler/interface/sqlalchemy/profiler_interface.py +3 -5
  975. metadata/profiler/metrics/static/mean.py +9 -0
  976. metadata/profiler/metrics/system/queries/snowflake.py +1 -1
  977. metadata/profiler/metrics/window/percentille_mixin.py +1 -1
  978. metadata/profiler/orm/converter/base.py +21 -13
  979. metadata/profiler/orm/converter/common.py +3 -4
  980. metadata/profiler/orm/functions/datetime.py +1 -1
  981. metadata/profiler/orm/functions/sum.py +7 -0
  982. metadata/profiler/orm/functions/table_metric_computer.py +4 -5
  983. metadata/profiler/orm/registry.py +5 -0
  984. metadata/profiler/orm/types/custom_hex_byte_string.py +5 -3
  985. metadata/profiler/orm/types/undetermined_type.py +38 -0
  986. metadata/profiler/processor/core.py +19 -13
  987. metadata/profiler/processor/processor.py +4 -4
  988. metadata/profiler/processor/sample_data_handler.py +5 -5
  989. metadata/profiler/processor/sampler/nosql/sampler.py +9 -4
  990. metadata/profiler/processor/sampler/sampler_factory.py +27 -6
  991. metadata/profiler/processor/sampler/sqlalchemy/sampler.py +33 -62
  992. metadata/profiler/processor/sampler/sqlalchemy/snowflake/sampler.py +60 -0
  993. metadata/profiler/source/base/profiler_source.py +11 -14
  994. metadata/profiler/source/bigquery/profiler_source.py +2 -2
  995. metadata/profiler/source/bigquery/type_mapper.py +2 -2
  996. metadata/profiler/source/metadata.py +14 -16
  997. metadata/profiler/source/metadata_ext.py +3 -3
  998. metadata/readers/dataframe/avro.py +1 -3
  999. metadata/readers/dataframe/models.py +29 -12
  1000. metadata/readers/dataframe/parquet.py +3 -3
  1001. metadata/readers/dataframe/reader_factory.py +6 -0
  1002. metadata/readers/file/api_reader.py +1 -1
  1003. metadata/readers/file/bitbucket.py +4 -4
  1004. metadata/readers/file/credentials.py +5 -5
  1005. metadata/readers/file/github.py +6 -6
  1006. metadata/utils/class_helper.py +3 -5
  1007. metadata/utils/credentials.py +2 -2
  1008. metadata/utils/datalake/datalake_utils.py +4 -2
  1009. metadata/utils/entity_link.py +8 -0
  1010. metadata/utils/execution_time_tracker.py +2 -2
  1011. metadata/utils/filters.py +25 -17
  1012. metadata/utils/fqn.py +59 -14
  1013. metadata/utils/helpers.py +12 -12
  1014. metadata/utils/importer.py +3 -2
  1015. metadata/utils/life_cycle_utils.py +3 -3
  1016. metadata/utils/logger.py +9 -24
  1017. metadata/utils/lru_cache.py +3 -0
  1018. metadata/utils/metadata_service_helper.py +3 -1
  1019. metadata/utils/secrets/gcp_secrets_manager.py +128 -0
  1020. metadata/utils/secrets/secrets_manager_factory.py +3 -0
  1021. metadata/utils/source_hash.py +1 -1
  1022. metadata/utils/ssl_manager.py +20 -26
  1023. metadata/utils/ssl_registry.py +5 -1
  1024. metadata/utils/storage_metadata_config.py +6 -5
  1025. metadata/utils/tag_utils.py +21 -13
  1026. metadata/utils/time_utils.py +45 -5
  1027. metadata/workflow/application.py +4 -4
  1028. metadata/workflow/application_output_handler.py +6 -19
  1029. metadata/workflow/base.py +42 -5
  1030. metadata/workflow/data_quality.py +5 -5
  1031. metadata/workflow/ingestion.py +4 -6
  1032. metadata/workflow/metadata.py +4 -4
  1033. metadata/workflow/output_handler.py +35 -214
  1034. metadata/workflow/profiler.py +5 -5
  1035. metadata/workflow/usage.py +8 -6
  1036. metadata/workflow/workflow_init_error_handler.py +154 -0
  1037. metadata/workflow/workflow_output_handler.py +189 -98
  1038. metadata/workflow/workflow_status_mixin.py +20 -11
  1039. {openmetadata_ingestion-1.4.6.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc1.dist-info}/METADATA +372 -301
  1040. openmetadata_ingestion-1.5.0.0rc1.dist-info/RECORD +1592 -0
  1041. {openmetadata_ingestion-1.4.6.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc1.dist-info}/WHEEL +1 -1
  1042. {openmetadata_ingestion-1.4.6.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc1.dist-info}/top_level.txt +1 -0
  1043. metadata/cli/insight.py +0 -51
  1044. metadata/data_insight/processor/kpi/kpi_runner.py +0 -156
  1045. metadata/data_insight/processor/kpi/run_result_registry.py +0 -162
  1046. metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +0 -253
  1047. metadata/data_insight/processor/reports/data_processor.py +0 -72
  1048. metadata/data_insight/processor/reports/entity_report_data_processor.py +0 -262
  1049. metadata/data_insight/processor/reports/web_analytic_report_data_processor.py +0 -384
  1050. metadata/data_insight/producer/cost_analysis_producer.py +0 -126
  1051. metadata/data_insight/producer/entity_producer.py +0 -63
  1052. metadata/data_insight/producer/producer_factory.py +0 -53
  1053. metadata/data_insight/producer/web_analytics_producer.py +0 -84
  1054. metadata/data_insight/source/metadata.py +0 -175
  1055. metadata/workflow/data_insight.py +0 -78
  1056. openmetadata_ingestion-1.4.6.0rc1.dist-info/RECORD +0 -1509
  1057. {metadata/cli → _openmetadata_testutils}/__init__.py +0 -0
  1058. {metadata/data_insight/processor → _openmetadata_testutils/helpers}/__init__.py +0 -0
  1059. {metadata/data_insight/processor/kpi → _openmetadata_testutils/postgres}/__init__.py +0 -0
  1060. {metadata/data_insight/processor/reports → _openmetadata_testutils/pydantic}/__init__.py +0 -0
  1061. /metadata/{data_insight/producer → ingestion/source/database/datalake/clients}/__init__.py +0 -0
  1062. /metadata/{data_insight/source → ingestion/source/database/deltalake/clients}/__init__.py +0 -0
  1063. {openmetadata_ingestion-1.4.6.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc1.dist-info}/LICENSE +0 -0
  1064. {openmetadata_ingestion-1.4.6.0rc1.dist-info → openmetadata_ingestion-1.5.0.0rc1.dist-info}/entry_points.txt +0 -0
@@ -21,7 +21,6 @@ from pydantic import BaseModel
21
21
  from requests.exceptions import HTTPError
22
22
 
23
23
  from metadata.config.common import ConfigModel
24
- from metadata.data_insight.source.metadata import DataInsightRecord
25
24
  from metadata.data_quality.api.models import TestCaseResultResponse, TestCaseResults
26
25
  from metadata.generated.schema.analytics.reportData import ReportData
27
26
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
@@ -51,6 +50,7 @@ from metadata.generated.schema.tests.testCaseResolutionStatus import (
51
50
  TestCaseResolutionStatus,
52
51
  )
53
52
  from metadata.generated.schema.tests.testSuite import TestSuite
53
+ from metadata.generated.schema.type.entityLineage import Source as LineageSource
54
54
  from metadata.generated.schema.type.schema import Topic
55
55
  from metadata.ingestion.api.models import Either, Entity, StackTraceError
56
56
  from metadata.ingestion.api.steps import Sink
@@ -59,6 +59,7 @@ from metadata.ingestion.models.data_insight import OMetaDataInsightSample
59
59
  from metadata.ingestion.models.delete_entity import DeleteEntity
60
60
  from metadata.ingestion.models.life_cycle import OMetaLifeCycleData
61
61
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
62
+ from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
62
63
  from metadata.ingestion.models.ometa_topic_data import OMetaTopicSampleData
63
64
  from metadata.ingestion.models.patch_request import (
64
65
  ALLOWED_COMMON_PATCH_FIELDS,
@@ -123,7 +124,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
123
124
  metadata: OpenMetadata,
124
125
  pipeline_name: Optional[str] = None,
125
126
  ):
126
- config = MetadataRestSinkConfig.parse_obj(config_dict)
127
+ config = MetadataRestSinkConfig.model_validate(config_dict)
127
128
  return cls(config, metadata)
128
129
 
129
130
  @property
@@ -186,6 +187,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
186
187
  allowed_fields=ALLOWED_COMMON_PATCH_FIELDS,
187
188
  restrict_update_fields=RESTRICT_UPDATE_LIST,
188
189
  array_entity_fields=ARRAY_ENTITY_FIELDS,
190
+ override_metadata=record.override_metadata,
189
191
  )
190
192
  patched_entity = PatchedEntity(new_entity=entity) if entity else None
191
193
  return Either(right=patched_entity)
@@ -249,13 +251,51 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
249
251
  created_lineage = self.metadata.add_lineage(add_lineage, check_patch=True)
250
252
  return Either(right=created_lineage["entity"]["fullyQualifiedName"])
251
253
 
254
+ @_run_dispatch.register
255
+ def write_override_lineage(
256
+ self, add_lineage: OMetaLineageRequest
257
+ ) -> Either[Dict[str, Any]]:
258
+ """
259
+ Writes the override lineage for the given lineage request.
260
+
261
+ Args:
262
+ add_lineage (OMetaLineageRequest): The lineage request containing the override lineage information.
263
+
264
+ Returns:
265
+ Either[Dict[str, Any]]: The result of the dispatch operation.
266
+ """
267
+ if (
268
+ add_lineage.override_lineage is True
269
+ and add_lineage.lineage_request.edge.lineageDetails
270
+ and add_lineage.lineage_request.edge.lineageDetails.source
271
+ ):
272
+ if (
273
+ add_lineage.lineage_request.edge.lineageDetails.pipeline
274
+ and add_lineage.lineage_request.edge.lineageDetails.source
275
+ == LineageSource.PipelineLineage
276
+ ):
277
+ self.metadata.delete_lineage_by_source(
278
+ entity_type="pipeline",
279
+ entity_id=str(
280
+ add_lineage.lineage_request.edge.lineageDetails.pipeline.id.root
281
+ ),
282
+ source=add_lineage.lineage_request.edge.lineageDetails.source.value,
283
+ )
284
+ else:
285
+ self.metadata.delete_lineage_by_source(
286
+ entity_type=add_lineage.lineage_request.edge.toEntity.type,
287
+ entity_id=str(add_lineage.lineage_request.edge.toEntity.id.root),
288
+ source=add_lineage.lineage_request.edge.lineageDetails.source.value,
289
+ )
290
+ return self._run_dispatch(add_lineage.lineage_request)
291
+
252
292
  def _create_role(self, create_role: CreateRoleRequest) -> Optional[Role]:
253
293
  """
254
294
  Internal helper method for write_user
255
295
  """
256
296
  try:
257
297
  role = self.metadata.create_or_update(create_role)
258
- self.role_entities[role.name] = str(role.id.__root__)
298
+ self.role_entities[role.name] = str(role.id.root)
259
299
  return role
260
300
  except Exception as exc:
261
301
  logger.debug(traceback.format_exc())
@@ -269,7 +309,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
269
309
  """
270
310
  try:
271
311
  team = self.metadata.create_or_update(create_team)
272
- self.team_entities[team.name.__root__] = str(team.id.__root__)
312
+ self.team_entities[team.name.root] = str(team.id.root)
273
313
  return team
274
314
  except Exception as exc:
275
315
  logger.debug(traceback.format_exc())
@@ -292,7 +332,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
292
332
  for role in record.roles:
293
333
  try:
294
334
  role_entity = self.metadata.get_by_name(
295
- entity=Role, fqn=str(role.name.__root__)
335
+ entity=Role, fqn=str(role.name.root)
296
336
  )
297
337
  except APIError:
298
338
  role_entity = self._create_role(role)
@@ -307,18 +347,16 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
307
347
  for team in record.teams:
308
348
  try:
309
349
  team_entity = self.metadata.get_by_name(
310
- entity=Team, fqn=str(team.name.__root__)
350
+ entity=Team, fqn=str(team.name.root)
311
351
  )
312
352
  if not team_entity:
313
353
  raise APIError(
314
- error={
315
- "message": f"Creating a new team {team.name.__root__}"
316
- }
354
+ error={"message": f"Creating a new team {team.name.root}"}
317
355
  )
318
- team_ids.append(team_entity.id.__root__)
356
+ team_ids.append(team_entity.id.root)
319
357
  except APIError:
320
358
  team_entity = self._create_team(team)
321
- team_ids.append(team_entity.id.__root__)
359
+ team_ids.append(team_entity.id.root)
322
360
  except Exception as exc:
323
361
  logger.debug(traceback.format_exc())
324
362
  logger.warning(f"Unexpected error writing team [{team}]: {exc}")
@@ -326,7 +364,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
326
364
  team_ids = None
327
365
 
328
366
  # Update user data with the new Role and Team IDs
329
- user_profile = record.user.dict(exclude_unset=True)
367
+ user_profile = record.user.model_dump(exclude_unset=True)
330
368
  user_profile["roles"] = role_ids
331
369
  user_profile["teams"] = team_ids
332
370
  metadata_user = CreateUserRequest(**user_profile)
@@ -421,10 +459,10 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
421
459
  """Write the test case result"""
422
460
  res = self.metadata.add_test_case_results(
423
461
  test_results=record.testCaseResult,
424
- test_case_fqn=record.testCase.fullyQualifiedName.__root__,
462
+ test_case_fqn=record.testCase.fullyQualifiedName.root,
425
463
  )
426
464
  logger.debug(
427
- f"Successfully ingested test case results for test case {record.testCase.name.__root__}"
465
+ f"Successfully ingested test case results for test case {record.testCase.name.root}"
428
466
  )
429
467
  return Either(right=res)
430
468
 
@@ -449,20 +487,12 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
449
487
  )
450
488
  return Either(right=record.record)
451
489
 
452
- @_run_dispatch.register
453
- def write_data_insight(self, record: DataInsightRecord) -> Either[ReportData]:
454
- """
455
- Use the /dataQuality/testCases endpoint to ingest sample test suite
456
- """
457
- self.metadata.add_data_insight_report_data(record.data)
458
- return Either(left=None, right=record.data)
459
-
460
490
  @_run_dispatch.register
461
491
  def write_data_insight_kpi(self, record: KpiResult) -> Either[KpiResult]:
462
492
  """
463
493
  Use the /dataQuality/testCases endpoint to ingest sample test suite
464
494
  """
465
- self.metadata.add_kpi_result(fqn=record.kpiFqn.__root__, record=record)
495
+ self.metadata.add_kpi_result(fqn=record.kpiFqn.root, record=record)
466
496
  return Either(left=None, right=record)
467
497
 
468
498
  @_run_dispatch.register
@@ -532,7 +562,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
532
562
  profile_request=record.profile,
533
563
  )
534
564
  logger.debug(
535
- f"Successfully ingested profile metrics for {record.table.fullyQualifiedName.__root__}"
565
+ f"Successfully ingested profile metrics for {record.table.fullyQualifiedName.root}"
536
566
  )
537
567
 
538
568
  if record.sample_data:
@@ -542,13 +572,13 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
542
572
  if not table_data:
543
573
  self.status.failed(
544
574
  StackTraceError(
545
- name=table.fullyQualifiedName.__root__,
575
+ name=table.fullyQualifiedName.root,
546
576
  error="Error trying to ingest sample data for table",
547
577
  )
548
578
  )
549
579
  else:
550
580
  logger.debug(
551
- f"Successfully ingested sample data for {record.table.fullyQualifiedName.__root__}"
581
+ f"Successfully ingested sample data for {record.table.fullyQualifiedName.root}"
552
582
  )
553
583
 
554
584
  if record.column_tags:
@@ -558,13 +588,13 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
558
588
  if not patched:
559
589
  self.status.failed(
560
590
  StackTraceError(
561
- name=table.fullyQualifiedName.__root__,
591
+ name=table.fullyQualifiedName.root,
562
592
  error="Error patching tags for table",
563
593
  )
564
594
  )
565
595
  else:
566
596
  logger.debug(
567
- f"Successfully patched tag {record.column_tags} for {record.table.fullyQualifiedName.__root__}"
597
+ f"Successfully patched tag {record.column_tags} for {record.table.fullyQualifiedName.root}"
568
598
  )
569
599
 
570
600
  return Either(right=table)
@@ -586,7 +616,7 @@ class MetadataRestSink(Sink): # pylint: disable=too-many-public-methods
586
616
  for result in record.test_results or []:
587
617
  self.metadata.add_test_case_results(
588
618
  test_results=result.testCaseResult,
589
- test_case_fqn=result.testCase.fullyQualifiedName.__root__,
619
+ test_case_fqn=result.testCase.fullyQualifiedName.root,
590
620
  )
591
621
  self.status.scanned(result)
592
622
 
@@ -15,7 +15,8 @@ import traceback
15
15
  from abc import ABC, abstractmethod
16
16
  from typing import Any, Iterable, List, Optional, Set, Union
17
17
 
18
- from pydantic import BaseModel
18
+ from pydantic import BaseModel, Field
19
+ from typing_extensions import Annotated
19
20
 
20
21
  from metadata.generated.schema.api.data.createChart import CreateChartRequest
21
22
  from metadata.generated.schema.api.data.createDashboard import CreateDashboardRequest
@@ -40,6 +41,7 @@ from metadata.generated.schema.metadataIngestion.dashboardServiceMetadataPipelin
40
41
  from metadata.generated.schema.metadataIngestion.workflow import (
41
42
  Source as WorkflowSource,
42
43
  )
44
+ from metadata.generated.schema.type.basic import Uuid
43
45
  from metadata.generated.schema.type.entityLineage import (
44
46
  ColumnLineage,
45
47
  EntitiesEdge,
@@ -47,6 +49,7 @@ from metadata.generated.schema.type.entityLineage import (
47
49
  )
48
50
  from metadata.generated.schema.type.entityLineage import Source as LineageSource
49
51
  from metadata.generated.schema.type.entityReference import EntityReference
52
+ from metadata.generated.schema.type.entityReferenceList import EntityReferenceList
50
53
  from metadata.generated.schema.type.usageRequest import UsageRequest
51
54
  from metadata.ingestion.api.delete import delete_entity_from_source
52
55
  from metadata.ingestion.api.models import Either, Entity
@@ -55,6 +58,7 @@ from metadata.ingestion.api.topology_runner import C, TopologyRunnerMixin
55
58
  from metadata.ingestion.lineage.sql_lineage import get_column_fqn
56
59
  from metadata.ingestion.models.delete_entity import DeleteEntity
57
60
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
61
+ from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
58
62
  from metadata.ingestion.models.patch_request import PatchRequest
59
63
  from metadata.ingestion.models.topology import (
60
64
  NodeStage,
@@ -96,7 +100,9 @@ class DashboardServiceTopology(ServiceTopology):
96
100
  data that has been produced by any parent node.
97
101
  """
98
102
 
99
- root = TopologyNode(
103
+ root: Annotated[
104
+ TopologyNode, Field(description="Root node for the topology")
105
+ ] = TopologyNode(
100
106
  producer="get_services",
101
107
  stages=[
102
108
  NodeStage(
@@ -122,7 +128,9 @@ class DashboardServiceTopology(ServiceTopology):
122
128
  # handles them as independent entities.
123
129
  # When configuring a new source, we will either implement
124
130
  # the yield_bulk_datamodel or yield_datamodel functions.
125
- bulk_data_model = TopologyNode(
131
+ bulk_data_model: Annotated[
132
+ TopologyNode, Field(description="Write data models in bulk")
133
+ ] = TopologyNode(
126
134
  producer="list_datamodels",
127
135
  stages=[
128
136
  NodeStage(
@@ -134,7 +142,9 @@ class DashboardServiceTopology(ServiceTopology):
134
142
  )
135
143
  ],
136
144
  )
137
- dashboard = TopologyNode(
145
+ dashboard: Annotated[
146
+ TopologyNode, Field(description="Process dashboards")
147
+ ] = TopologyNode(
138
148
  producer="get_dashboard",
139
149
  stages=[
140
150
  NodeStage(
@@ -196,7 +206,7 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
196
206
  config: WorkflowSource
197
207
  metadata: OpenMetadata
198
208
  # Big union of types we want to fetch dynamically
199
- service_connection: DashboardConnection.__fields__["config"].type_
209
+ service_connection: DashboardConnection.model_fields["config"].annotation
200
210
 
201
211
  topology = DashboardServiceTopology()
202
212
  context = TopologyContextManager(topology)
@@ -211,7 +221,7 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
211
221
  super().__init__()
212
222
  self.config = config
213
223
  self.metadata = metadata
214
- self.service_connection = self.config.serviceConnection.__root__.config
224
+ self.service_connection = self.config.serviceConnection.root.config
215
225
  self.source_config: DashboardServiceMetadataPipeline = (
216
226
  self.config.sourceConfig.config
217
227
  )
@@ -321,7 +331,7 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
321
331
  except Exception as err:
322
332
  logger.debug(traceback.format_exc())
323
333
  logger.error(
324
- f"Error to yield dashboard lineage details for data model name [{datamodel.name}]: {err}"
334
+ f"Error to yield dashboard lineage details for data model name [{str(datamodel)}]: {err}"
325
335
  )
326
336
 
327
337
  def get_db_service_names(self) -> List[str]:
@@ -336,17 +346,25 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
336
346
 
337
347
  def yield_dashboard_lineage(
338
348
  self, dashboard_details: Any
339
- ) -> Iterable[Either[AddLineageRequest]]:
349
+ ) -> Iterable[Either[OMetaLineageRequest]]:
340
350
  """
341
351
  Yields lineage if config is enabled.
342
352
 
343
353
  We will look for the data in all the services
344
354
  we have informed.
345
355
  """
346
- yield from self.yield_datamodel_dashboard_lineage() or []
356
+ for lineage in self.yield_datamodel_dashboard_lineage() or []:
357
+ if lineage.right is not None:
358
+ yield Either(
359
+ right=OMetaLineageRequest(
360
+ lineage_request=lineage.right,
361
+ override_lineage=self.source_config.overrideLineage,
362
+ )
363
+ )
364
+ else:
365
+ yield lineage
347
366
 
348
367
  db_service_names = self.get_db_service_names()
349
-
350
368
  for db_service_name in db_service_names or []:
351
369
  yield from self.yield_dashboard_lineage_details(
352
370
  dashboard_details, db_service_name
@@ -416,7 +434,7 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
416
434
 
417
435
  def get_owner_ref( # pylint: disable=unused-argument, useless-return
418
436
  self, dashboard_details
419
- ) -> Optional[EntityReference]:
437
+ ) -> Optional[EntityReferenceList]:
420
438
  """
421
439
  Method to process the dashboard owners
422
440
  """
@@ -432,8 +450,8 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
432
450
  dashboard_fqn = fqn.build(
433
451
  self.metadata,
434
452
  entity_type=Dashboard,
435
- service_name=dashboard_request.service.__root__,
436
- dashboard_name=dashboard_request.name.__root__,
453
+ service_name=dashboard_request.service.root,
454
+ dashboard_name=dashboard_request.name.root,
437
455
  )
438
456
 
439
457
  self.dashboard_source_state.add(dashboard_fqn)
@@ -447,8 +465,8 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
447
465
  datamodel_fqn = fqn.build(
448
466
  self.metadata,
449
467
  entity_type=DashboardDataModel,
450
- service_name=datamodel_request.service.__root__,
451
- data_model_name=datamodel_request.name.__root__,
468
+ service_name=datamodel_request.service.root,
469
+ data_model_name=datamodel_request.name.root,
452
470
  )
453
471
 
454
472
  self.datamodel_source_state.add(datamodel_fqn)
@@ -464,11 +482,11 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
464
482
  right=AddLineageRequest(
465
483
  edge=EntitiesEdge(
466
484
  fromEntity=EntityReference(
467
- id=from_entity.id.__root__,
485
+ id=Uuid(from_entity.id.root),
468
486
  type=LINEAGE_MAP[type(from_entity)],
469
487
  ),
470
488
  toEntity=EntityReference(
471
- id=to_entity.id.__root__,
489
+ id=Uuid(to_entity.id.root),
472
490
  type=LINEAGE_MAP[type(to_entity)],
473
491
  ),
474
492
  lineageDetails=LineageDetails(
@@ -492,7 +510,7 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
492
510
  return None
493
511
  for tbl_column in data_model_entity.columns:
494
512
  if tbl_column.displayName.lower() == column.lower():
495
- return tbl_column.fullyQualifiedName.__root__
513
+ return tbl_column.fullyQualifiedName.root
496
514
  return None
497
515
 
498
516
  def get_dashboard(self) -> Any:
@@ -541,28 +559,6 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
541
559
  def prepare(self):
542
560
  """By default, nothing to prepare"""
543
561
 
544
- def fqn_from_context(self, stage: NodeStage, entity_name: C) -> str:
545
- """
546
- We are overriding this method since CreateDashboardDataModelRequest needs to add an extra value to the context
547
- names.
548
-
549
- Read the context
550
- :param stage: Topology node being processed
551
- :param entity_request: Request sent to the sink
552
- :return: Entity FQN derived from context
553
- """
554
- context_names = [
555
- self.context.get().__dict__[dependency]
556
- for dependency in stage.consumer or [] # root nodes do not have consumers
557
- ]
558
-
559
- if isinstance(stage.type_, DashboardDataModel):
560
- context_names.append("model")
561
-
562
- return fqn._build( # pylint: disable=protected-access
563
- *context_names, entity_name
564
- )
565
-
566
562
  def check_database_schema_name(self, database_schema_name: str):
567
563
  """
568
564
  Check if the input database schema name is equal to "<default>" and return the input name if it is not.
@@ -599,7 +595,7 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
599
595
  """
600
596
  patch_request = PatchRequest(
601
597
  original_entity=original_entity,
602
- new_entity=original_entity.copy(update=create_request.__dict__),
598
+ new_entity=original_entity.model_copy(update=create_request.__dict__),
603
599
  )
604
600
  if isinstance(original_entity, Dashboard):
605
601
  # For patch the charts need to be entity ref instead of fqn
@@ -609,11 +605,13 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
609
605
  if chart_entity:
610
606
  charts_entity_ref_list.append(
611
607
  EntityReference(
612
- id=chart_entity.id.__root__,
608
+ id=chart_entity.id.root,
613
609
  type=LINEAGE_MAP[type(chart_entity)],
614
610
  )
615
611
  )
616
- patch_request.new_entity.charts = charts_entity_ref_list
612
+ patch_request.new_entity.charts = EntityReferenceList(
613
+ charts_entity_ref_list
614
+ )
617
615
 
618
616
  # For patch the datamodels need to be entity ref instead of fqn
619
617
  datamodel_entity_ref_list = []
@@ -624,11 +622,13 @@ class DashboardServiceSource(TopologyRunnerMixin, Source, ABC):
624
622
  if datamodel_entity:
625
623
  datamodel_entity_ref_list.append(
626
624
  EntityReference(
627
- id=datamodel_entity.id.__root__,
625
+ id=datamodel_entity.id.root,
628
626
  type=LINEAGE_MAP[type(datamodel_entity)],
629
627
  )
630
628
  )
631
- patch_request.new_entity.dataModels = datamodel_entity_ref_list
629
+ patch_request.new_entity.dataModels = EntityReferenceList(
630
+ datamodel_entity_ref_list
631
+ )
632
632
  return patch_request
633
633
 
634
634
  def _get_column_lineage(
@@ -38,7 +38,13 @@ from metadata.generated.schema.entity.services.ingestionPipelines.status import
38
38
  from metadata.generated.schema.metadataIngestion.workflow import (
39
39
  Source as WorkflowSource,
40
40
  )
41
- from metadata.generated.schema.type.entityReference import EntityReference
41
+ from metadata.generated.schema.type.basic import (
42
+ EntityName,
43
+ FullyQualifiedEntityName,
44
+ Markdown,
45
+ SourceUrl,
46
+ )
47
+ from metadata.generated.schema.type.entityReferenceList import EntityReferenceList
42
48
  from metadata.ingestion.api.models import Either
43
49
  from metadata.ingestion.api.steps import InvalidSourceException
44
50
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
@@ -64,8 +70,8 @@ class DomodashboardSource(DashboardServiceSource):
64
70
  def create(
65
71
  cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
66
72
  ):
67
- config = WorkflowSource.parse_obj(config_dict)
68
- connection: DomoDashboardConnection = config.serviceConnection.__root__.config
73
+ config = WorkflowSource.model_validate(config_dict)
74
+ connection: DomoDashboardConnection = config.serviceConnection.root.config
69
75
  if not isinstance(connection, DomoDashboardConnection):
70
76
  raise InvalidSourceException(
71
77
  f"Expected DomoDashboardConnection, but got {connection}"
@@ -97,7 +103,7 @@ class DomodashboardSource(DashboardServiceSource):
97
103
 
98
104
  def get_owner_ref(
99
105
  self, dashboard_details: DomoDashboardDetails
100
- ) -> Optional[EntityReference]:
106
+ ) -> Optional[EntityReferenceList]:
101
107
  for owner in dashboard_details.owners or []:
102
108
  try:
103
109
  owner_details = self.client.domo.users_get(owner.id)
@@ -114,25 +120,29 @@ class DomodashboardSource(DashboardServiceSource):
114
120
  ) -> Iterable[Either[CreateDashboardRequest]]:
115
121
  try:
116
122
  dashboard_url = (
117
- f"{self.service_connection.instanceDomain}/page/{dashboard_details.id}"
123
+ f"{self.service_connection.instanceDomain}page/{dashboard_details.id}"
118
124
  )
119
125
 
120
126
  dashboard_request = CreateDashboardRequest(
121
- name=dashboard_details.id,
122
- sourceUrl=dashboard_url,
127
+ name=EntityName(dashboard_details.id),
128
+ sourceUrl=SourceUrl(dashboard_url),
123
129
  displayName=dashboard_details.name,
124
- description=dashboard_details.description,
130
+ description=Markdown(dashboard_details.description)
131
+ if dashboard_details.description
132
+ else None,
125
133
  charts=[
126
- fqn.build(
127
- self.metadata,
128
- entity_type=Chart,
129
- service_name=self.context.get().dashboard_service,
130
- chart_name=chart,
134
+ FullyQualifiedEntityName(
135
+ fqn.build(
136
+ self.metadata,
137
+ entity_type=Chart,
138
+ service_name=self.context.get().dashboard_service,
139
+ chart_name=chart,
140
+ )
131
141
  )
132
142
  for chart in self.context.get().charts or []
133
143
  ],
134
144
  service=self.context.get().dashboard_service,
135
- owner=self.get_owner_ref(dashboard_details=dashboard_details),
145
+ owners=self.get_owner_ref(dashboard_details=dashboard_details),
136
146
  )
137
147
  yield Either(right=dashboard_request)
138
148
  self.register_record(dashboard_request=dashboard_request)
@@ -217,10 +227,12 @@ class DomodashboardSource(DashboardServiceSource):
217
227
  if chart.name:
218
228
  yield Either(
219
229
  right=CreateChartRequest(
220
- name=chart_id,
221
- description=chart.description,
230
+ name=EntityName(chart_id),
231
+ description=Markdown(chart.description)
232
+ if chart.description
233
+ else None,
222
234
  displayName=chart.name,
223
- sourceUrl=chart_url,
235
+ sourceUrl=SourceUrl(chart_url),
224
236
  service=self.context.get().dashboard_service,
225
237
  chartType=get_standard_chart_type(chart.metadata.chartType),
226
238
  )
@@ -34,7 +34,7 @@ class LightdashApiClient:
34
34
  def __init__(self, config):
35
35
  self.config = config
36
36
  client_config = ClientConfig(
37
- base_url=self.config.hostPort,
37
+ base_url=str(self.config.hostPort),
38
38
  api_version="",
39
39
  access_token=self.config.apiKey.get_secret_value(),
40
40
  auth_header="Authorization",
@@ -26,6 +26,12 @@ from metadata.generated.schema.entity.services.connections.metadata.openMetadata
26
26
  from metadata.generated.schema.metadataIngestion.workflow import (
27
27
  Source as WorkflowSource,
28
28
  )
29
+ from metadata.generated.schema.type.basic import (
30
+ EntityName,
31
+ FullyQualifiedEntityName,
32
+ Markdown,
33
+ SourceUrl,
34
+ )
29
35
  from metadata.ingestion.api.steps import InvalidSourceException
30
36
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
31
37
  from metadata.ingestion.source.dashboard.dashboard_service import DashboardServiceSource
@@ -53,8 +59,8 @@ class LightdashSource(DashboardServiceSource):
53
59
  def create(
54
60
  cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
55
61
  ):
56
- config = WorkflowSource.parse_obj(config_dict)
57
- connection: LightdashConnection = config.serviceConnection.__root__.config
62
+ config = WorkflowSource.model_validate(config_dict)
63
+ connection: LightdashConnection = config.serviceConnection.root.config
58
64
  if not isinstance(connection, LightdashConnection):
59
65
  raise InvalidSourceException(
60
66
  f"Expected LightdashConnection, but got {connection}"
@@ -105,21 +111,25 @@ class LightdashSource(DashboardServiceSource):
105
111
  f"{replace_special_with(raw=dashboard_details.name.lower(), replacement='-')}"
106
112
  )
107
113
  dashboard_request = CreateDashboardRequest(
108
- name=dashboard_details.uuid,
109
- sourceUrl=dashboard_url,
114
+ name=EntityName(dashboard_details.uuid),
115
+ sourceUrl=SourceUrl(dashboard_url),
110
116
  displayName=dashboard_details.name,
111
- description=dashboard_details.description,
117
+ description=Markdown(dashboard_details.description)
118
+ if dashboard_details.description
119
+ else None,
112
120
  charts=[
113
- fqn.build(
114
- self.metadata,
115
- entity_type=Chart,
116
- service_name=self.context.get().dashboard_service,
117
- chart_name=chart,
121
+ FullyQualifiedEntityName(
122
+ fqn.build(
123
+ self.metadata,
124
+ entity_type=Chart,
125
+ service_name=self.context.get().dashboard_service,
126
+ chart_name=chart,
127
+ )
118
128
  )
119
129
  for chart in self.context.get().charts or []
120
130
  ],
121
131
  service=self.context.get().dashboard_service,
122
- owner=self.get_owner_ref(dashboard_details=dashboard_details),
132
+ owners=self.get_owner_ref(dashboard_details=dashboard_details),
123
133
  )
124
134
  yield dashboard_request
125
135
  self.register_record(dashboard_request=dashboard_request)
@@ -150,10 +160,12 @@ class LightdashSource(DashboardServiceSource):
150
160
  self.status.filter(chart.name, "Chart Pattern not allowed")
151
161
  continue
152
162
  yield CreateChartRequest(
153
- name=chart.uuid,
163
+ name=EntityName(chart.uuid),
154
164
  displayName=chart.name,
155
- description=chart.description,
156
- sourceUrl=chart_url,
165
+ description=Markdown(chart.description)
166
+ if chart.description
167
+ else None,
168
+ sourceUrl=SourceUrl(chart_url),
157
169
  service=self.context.get().dashboard_service,
158
170
  )
159
171
  self.status.scanned(chart.name)