openmetadata-ingestion 1.7.5.3__py3-none-any.whl → 1.8.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (805) hide show
  1. _openmetadata_testutils/helpers/login_user.py +22 -0
  2. metadata/__init__.py +31 -0
  3. metadata/automations/runner.py +24 -14
  4. metadata/cli/ingest_dbt.py +1 -1
  5. metadata/data_quality/processor/test_case_runner.py +2 -11
  6. metadata/data_quality/source/test_suite.py +3 -1
  7. metadata/data_quality/validations/models.py +2 -2
  8. metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +3 -30
  9. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +5 -11
  10. metadata/data_quality/validations/table/pandas/tableRowInsertedCountToBeBetween.py +17 -2
  11. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +1 -4
  12. metadata/generated/schema/analytics/__init__.py +1 -1
  13. metadata/generated/schema/analytics/basic.py +1 -1
  14. metadata/generated/schema/analytics/reportData.py +1 -1
  15. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  16. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  17. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  18. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  19. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  20. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  21. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  22. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  23. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  24. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  25. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  26. metadata/generated/schema/api/__init__.py +1 -1
  27. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +3 -16
  28. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -10
  29. metadata/generated/schema/api/analytics/__init__.py +1 -1
  30. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  31. metadata/generated/schema/api/automations/__init__.py +1 -1
  32. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  33. metadata/generated/schema/api/bulkAssets.py +1 -1
  34. metadata/generated/schema/api/classification/__init__.py +1 -1
  35. metadata/generated/schema/api/classification/createClassification.py +6 -2
  36. metadata/generated/schema/api/classification/createTag.py +6 -2
  37. metadata/generated/schema/api/classification/loadTags.py +1 -1
  38. metadata/generated/schema/api/createBot.py +1 -1
  39. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  40. metadata/generated/schema/api/createType.py +1 -1
  41. metadata/generated/schema/api/data/__init__.py +1 -1
  42. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  43. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  44. metadata/generated/schema/api/data/createChart.py +1 -1
  45. metadata/generated/schema/api/data/createContainer.py +1 -1
  46. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  47. metadata/generated/schema/api/data/createDashboard.py +1 -1
  48. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  49. metadata/generated/schema/api/data/createDataContract.py +66 -0
  50. metadata/generated/schema/api/data/createDatabase.py +1 -1
  51. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  52. metadata/generated/schema/api/data/createGlossary.py +1 -1
  53. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  54. metadata/generated/schema/api/data/createMetric.py +1 -1
  55. metadata/generated/schema/api/data/createMlModel.py +1 -1
  56. metadata/generated/schema/api/data/createPipeline.py +1 -1
  57. metadata/generated/schema/api/data/createQuery.py +1 -1
  58. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  59. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  60. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  61. metadata/generated/schema/api/data/createTable.py +1 -1
  62. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  63. metadata/generated/schema/api/data/createTopic.py +1 -1
  64. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  65. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  66. metadata/generated/schema/api/data/updateColumn.py +49 -0
  67. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  68. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  69. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  70. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  71. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  72. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  73. metadata/generated/schema/api/docStore/__init__.py +1 -1
  74. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  75. metadata/generated/schema/api/domains/__init__.py +1 -1
  76. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  77. metadata/generated/schema/api/domains/createDomain.py +1 -1
  78. metadata/generated/schema/api/feed/__init__.py +1 -1
  79. metadata/generated/schema/api/feed/closeTask.py +1 -1
  80. metadata/generated/schema/api/feed/createPost.py +1 -1
  81. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  82. metadata/generated/schema/api/feed/createThread.py +1 -1
  83. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  84. metadata/generated/schema/api/feed/threadCount.py +1 -1
  85. metadata/generated/schema/api/governance/__init__.py +1 -1
  86. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  87. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  88. metadata/generated/schema/api/lineage/__init__.py +1 -1
  89. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  90. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  91. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  92. metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
  93. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  94. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  95. metadata/generated/schema/api/mcp/__init__.py +3 -0
  96. metadata/generated/schema/api/mcp/mcpToolDefinition.py +54 -0
  97. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  98. metadata/generated/schema/api/policies/__init__.py +1 -1
  99. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  100. metadata/generated/schema/api/scim/__init__.py +3 -0
  101. metadata/generated/schema/api/scim/scimGroup.py +52 -0
  102. metadata/generated/schema/api/scim/scimPatchOp.py +32 -0
  103. metadata/generated/schema/api/scim/scimUser.py +83 -0
  104. metadata/generated/schema/api/search/__init__.py +1 -1
  105. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  106. metadata/generated/schema/api/services/__init__.py +1 -1
  107. metadata/generated/schema/api/services/createApiService.py +1 -1
  108. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  109. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  110. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  111. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  112. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  113. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  114. metadata/generated/schema/api/services/createSearchService.py +1 -1
  115. metadata/generated/schema/api/services/createStorageService.py +1 -1
  116. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  117. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  118. metadata/generated/schema/api/setOwner.py +1 -1
  119. metadata/generated/schema/api/teams/__init__.py +1 -1
  120. metadata/generated/schema/api/teams/createPersona.py +1 -1
  121. metadata/generated/schema/api/teams/createRole.py +1 -1
  122. metadata/generated/schema/api/teams/createTeam.py +8 -1
  123. metadata/generated/schema/api/teams/createUser.py +11 -1
  124. metadata/generated/schema/api/tests/__init__.py +1 -1
  125. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  126. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  127. metadata/generated/schema/api/tests/createTestCase.py +9 -6
  128. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  129. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  130. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  131. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  132. metadata/generated/schema/api/validateGlossaryTagsRequest.py +31 -0
  133. metadata/generated/schema/api/voteRequest.py +1 -1
  134. metadata/generated/schema/auth/__init__.py +1 -1
  135. metadata/generated/schema/auth/basicAuth.py +1 -1
  136. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  137. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  138. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  139. metadata/generated/schema/auth/emailRequest.py +1 -1
  140. metadata/generated/schema/auth/emailVerificationToken.py +2 -1
  141. metadata/generated/schema/auth/generateToken.py +1 -1
  142. metadata/generated/schema/auth/jwtAuth.py +1 -1
  143. metadata/generated/schema/auth/loginRequest.py +1 -1
  144. metadata/generated/schema/auth/logoutRequest.py +1 -1
  145. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  146. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  147. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  148. metadata/generated/schema/auth/refreshToken.py +1 -1
  149. metadata/generated/schema/auth/registrationRequest.py +1 -1
  150. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  151. metadata/generated/schema/auth/revokeToken.py +1 -1
  152. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  153. metadata/generated/schema/auth/ssoAuth.py +1 -1
  154. metadata/generated/schema/auth/supportToken.py +35 -0
  155. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  156. metadata/generated/schema/configuration/__init__.py +1 -1
  157. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  158. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  159. metadata/generated/schema/configuration/authConfig.py +1 -1
  160. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  161. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  162. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  163. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  164. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  165. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  166. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  167. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  168. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  169. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  170. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  171. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  172. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  173. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  174. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  175. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  176. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  177. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  178. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  182. metadata/generated/schema/configuration/opsConfig.py +1 -1
  183. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  184. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  185. metadata/generated/schema/configuration/searchSettings.py +1 -1
  186. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  187. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  188. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  189. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  190. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  191. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  192. metadata/generated/schema/dataInsight/__init__.py +1 -1
  193. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  194. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  195. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  196. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  197. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  198. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  199. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  200. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  201. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  202. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  203. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  204. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  205. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  206. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  207. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  208. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  209. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  210. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  211. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  212. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  213. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  214. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  215. metadata/generated/schema/email/__init__.py +1 -1
  216. metadata/generated/schema/email/emailRequest.py +1 -1
  217. metadata/generated/schema/email/emailTemplate.py +1 -1
  218. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  219. metadata/generated/schema/email/smtpSettings.py +1 -1
  220. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  221. metadata/generated/schema/entity/__init__.py +1 -1
  222. metadata/generated/schema/entity/applications/__init__.py +1 -1
  223. metadata/generated/schema/entity/applications/app.py +3 -2
  224. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  225. metadata/generated/schema/entity/applications/appRunRecord.py +2 -1
  226. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  227. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  228. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  229. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  230. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  231. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  232. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  233. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  234. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  235. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  236. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +5 -2
  237. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  250. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  252. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  253. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +9 -1
  258. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +9 -1
  260. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  262. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  263. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  264. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  265. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  266. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  267. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  268. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  269. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  270. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  271. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  272. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  273. metadata/generated/schema/entity/automations/__init__.py +1 -1
  274. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  275. metadata/generated/schema/entity/automations/workflow.py +1 -1
  276. metadata/generated/schema/entity/bot.py +1 -1
  277. metadata/generated/schema/entity/classification/__init__.py +1 -1
  278. metadata/generated/schema/entity/classification/classification.py +7 -4
  279. metadata/generated/schema/entity/classification/tag.py +6 -3
  280. metadata/generated/schema/entity/data/__init__.py +1 -1
  281. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  282. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  283. metadata/generated/schema/entity/data/chart.py +1 -1
  284. metadata/generated/schema/entity/data/container.py +1 -1
  285. metadata/generated/schema/entity/data/dashboard.py +1 -1
  286. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  287. metadata/generated/schema/entity/data/dataContract.py +180 -0
  288. metadata/generated/schema/entity/data/database.py +1 -1
  289. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  290. metadata/generated/schema/entity/data/glossary.py +1 -1
  291. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  292. metadata/generated/schema/entity/data/metric.py +1 -1
  293. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  294. metadata/generated/schema/entity/data/pipeline.py +1 -1
  295. metadata/generated/schema/entity/data/query.py +1 -1
  296. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  297. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  298. metadata/generated/schema/entity/data/report.py +1 -1
  299. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  300. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  301. metadata/generated/schema/entity/data/table.py +10 -1
  302. metadata/generated/schema/entity/data/topic.py +1 -1
  303. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  304. metadata/generated/schema/entity/docStore/document.py +1 -1
  305. metadata/generated/schema/entity/domains/__init__.py +1 -1
  306. metadata/generated/schema/entity/domains/dataProduct.py +5 -1
  307. metadata/generated/schema/entity/domains/domain.py +5 -1
  308. metadata/generated/schema/entity/events/__init__.py +1 -1
  309. metadata/generated/schema/entity/events/webhook.py +7 -1
  310. metadata/generated/schema/entity/feed/__init__.py +1 -1
  311. metadata/generated/schema/entity/feed/assets.py +1 -1
  312. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  313. metadata/generated/schema/entity/feed/description.py +1 -1
  314. metadata/generated/schema/entity/feed/domain.py +1 -1
  315. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  316. metadata/generated/schema/entity/feed/owner.py +1 -1
  317. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  318. metadata/generated/schema/entity/feed/tag.py +1 -1
  319. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  320. metadata/generated/schema/entity/feed/thread.py +1 -1
  321. metadata/generated/schema/entity/policies/__init__.py +1 -1
  322. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  323. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +6 -1
  324. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  325. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  326. metadata/generated/schema/entity/policies/filters.py +1 -1
  327. metadata/generated/schema/entity/policies/policy.py +1 -1
  328. metadata/generated/schema/entity/services/__init__.py +1 -1
  329. metadata/generated/schema/entity/services/apiService.py +1 -1
  330. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  331. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  332. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  334. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  335. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  336. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  337. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  338. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  339. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  349. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  350. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  351. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  352. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  353. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +5 -1
  364. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  381. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  382. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  431. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +9 -1
  436. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  437. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  438. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  445. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  451. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +9 -1
  457. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  458. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  459. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  460. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  465. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  466. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  468. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  469. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  470. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  478. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  480. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  481. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  482. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  486. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  489. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  491. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  492. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  493. metadata/generated/schema/entity/services/databaseService.py +1 -1
  494. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  495. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  496. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  497. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  498. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  499. metadata/generated/schema/entity/services/messagingService.py +1 -1
  500. metadata/generated/schema/entity/services/metadataService.py +1 -1
  501. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  502. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  503. metadata/generated/schema/entity/services/searchService.py +1 -1
  504. metadata/generated/schema/entity/services/serviceType.py +1 -1
  505. metadata/generated/schema/entity/services/storageService.py +1 -1
  506. metadata/generated/schema/entity/teams/__init__.py +1 -1
  507. metadata/generated/schema/entity/teams/persona.py +1 -1
  508. metadata/generated/schema/entity/teams/role.py +1 -1
  509. metadata/generated/schema/entity/teams/team.py +8 -1
  510. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  511. metadata/generated/schema/entity/teams/user.py +11 -1
  512. metadata/generated/schema/entity/type.py +1 -1
  513. metadata/generated/schema/entity/utils/__init__.py +1 -1
  514. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  515. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  516. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  517. metadata/generated/schema/events/__init__.py +1 -1
  518. metadata/generated/schema/events/alertMetrics.py +1 -1
  519. metadata/generated/schema/events/api/__init__.py +1 -1
  520. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  521. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  522. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  523. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  524. metadata/generated/schema/events/api/typedEvent.py +1 -1
  525. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  526. metadata/generated/schema/events/eventFilterRule.py +1 -1
  527. metadata/generated/schema/events/eventSubscription.py +1 -1
  528. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  529. metadata/generated/schema/events/failedEvent.py +1 -1
  530. metadata/generated/schema/events/failedEventResponse.py +1 -1
  531. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  532. metadata/generated/schema/events/statusContext.py +1 -1
  533. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  534. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  535. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  536. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  537. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  538. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  539. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  540. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  541. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  542. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  543. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  544. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  545. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  546. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  547. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  548. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  549. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  550. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  551. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  552. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  553. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  554. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  555. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  556. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  557. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  558. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  559. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  560. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  561. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  562. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  563. metadata/generated/schema/jobs/__init__.py +1 -1
  564. metadata/generated/schema/jobs/backgroundJob.py +12 -3
  565. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  566. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  567. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  568. metadata/generated/schema/metadataIngestion/application.py +1 -1
  569. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  570. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  571. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  572. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  573. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  574. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  575. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  576. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  577. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  578. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  579. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  580. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  581. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  582. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  583. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  584. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  585. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  586. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  587. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  588. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  589. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  590. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  591. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  592. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  593. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  594. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  595. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  596. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  597. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  598. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  599. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  600. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  601. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  602. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  603. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  604. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  605. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  606. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  607. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  608. metadata/generated/schema/monitoring/__init__.py +1 -1
  609. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  610. metadata/generated/schema/scim/__init__.py +3 -0
  611. metadata/generated/schema/scim/scimConfiguration.py +32 -0
  612. metadata/generated/schema/search/__init__.py +1 -1
  613. metadata/generated/schema/search/aggregationRequest.py +1 -1
  614. metadata/generated/schema/search/searchRequest.py +8 -1
  615. metadata/generated/schema/security/__init__.py +1 -1
  616. metadata/generated/schema/security/client/__init__.py +1 -1
  617. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  618. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  619. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  620. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  621. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  622. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  623. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  624. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  625. metadata/generated/schema/security/credentials/__init__.py +1 -1
  626. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  627. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  628. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  629. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  630. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  631. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  632. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  633. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  634. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  635. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  636. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  637. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  638. metadata/generated/schema/security/sasl/__init__.py +1 -1
  639. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  640. metadata/generated/schema/security/secrets/__init__.py +1 -1
  641. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  642. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  643. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  644. metadata/generated/schema/security/securityConfiguration.py +1 -1
  645. metadata/generated/schema/security/ssl/__init__.py +1 -1
  646. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  647. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  648. metadata/generated/schema/settings/__init__.py +1 -1
  649. metadata/generated/schema/settings/settings.py +2 -1
  650. metadata/generated/schema/system/__init__.py +1 -1
  651. metadata/generated/schema/system/entityError.py +1 -1
  652. metadata/generated/schema/system/eventPublisherJob.py +8 -1
  653. metadata/generated/schema/system/indexingError.py +1 -1
  654. metadata/generated/schema/system/limitsResponse.py +1 -1
  655. metadata/generated/schema/system/ui/__init__.py +1 -1
  656. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  657. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  658. metadata/generated/schema/system/ui/page.py +1 -1
  659. metadata/generated/schema/system/ui/tab.py +1 -1
  660. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  661. metadata/generated/schema/system/validationResponse.py +1 -1
  662. metadata/generated/schema/tests/__init__.py +1 -1
  663. metadata/generated/schema/tests/assigned.py +1 -1
  664. metadata/generated/schema/tests/basic.py +1 -1
  665. metadata/generated/schema/tests/customMetric.py +1 -1
  666. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  667. metadata/generated/schema/tests/resolved.py +1 -1
  668. metadata/generated/schema/tests/testCase.py +1 -1
  669. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  670. metadata/generated/schema/tests/testDefinition.py +1 -1
  671. metadata/generated/schema/tests/testSuite.py +1 -1
  672. metadata/generated/schema/type/__init__.py +1 -1
  673. metadata/generated/schema/type/apiSchema.py +1 -1
  674. metadata/generated/schema/type/assetCertification.py +1 -1
  675. metadata/generated/schema/type/auditLog.py +1 -1
  676. metadata/generated/schema/type/basic.py +1 -1
  677. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  678. metadata/generated/schema/type/changeEvent.py +1 -1
  679. metadata/generated/schema/type/changeEventType.py +1 -1
  680. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  681. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  682. metadata/generated/schema/type/csvDocumentation.py +1 -1
  683. metadata/generated/schema/type/csvErrorType.py +1 -1
  684. metadata/generated/schema/type/csvFile.py +1 -1
  685. metadata/generated/schema/type/csvImportResult.py +1 -1
  686. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  687. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  688. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  689. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  690. metadata/generated/schema/type/customProperty.py +1 -1
  691. metadata/generated/schema/type/dailyCount.py +1 -1
  692. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  693. metadata/generated/schema/type/entityHierarchy.py +1 -1
  694. metadata/generated/schema/type/entityHistory.py +1 -1
  695. metadata/generated/schema/type/entityLineage.py +1 -1
  696. metadata/generated/schema/type/entityReference.py +1 -1
  697. metadata/generated/schema/type/entityReferenceList.py +1 -1
  698. metadata/generated/schema/type/entityRelationship.py +1 -1
  699. metadata/generated/schema/type/entityUsage.py +1 -1
  700. metadata/generated/schema/type/filterPattern.py +1 -1
  701. metadata/generated/schema/type/function.py +1 -1
  702. metadata/generated/schema/type/include.py +1 -1
  703. metadata/generated/schema/type/jdbcConnection.py +1 -1
  704. metadata/generated/schema/type/lifeCycle.py +1 -1
  705. metadata/generated/schema/type/paging.py +1 -1
  706. metadata/generated/schema/type/profile.py +1 -1
  707. metadata/generated/schema/type/queryParserData.py +1 -1
  708. metadata/generated/schema/type/reaction.py +1 -1
  709. metadata/generated/schema/type/schedule.py +1 -1
  710. metadata/generated/schema/type/schema.py +1 -1
  711. metadata/generated/schema/type/tableQuery.py +1 -1
  712. metadata/generated/schema/type/tableUsageCount.py +1 -1
  713. metadata/generated/schema/type/tagLabel.py +1 -1
  714. metadata/generated/schema/type/usageDetails.py +1 -1
  715. metadata/generated/schema/type/usageRequest.py +1 -1
  716. metadata/generated/schema/type/votes.py +1 -1
  717. metadata/great_expectations/action.py +4 -8
  718. metadata/great_expectations/action1xx.py +395 -0
  719. metadata/ingestion/connections/builders.py +14 -4
  720. metadata/ingestion/connections/connection.py +63 -0
  721. metadata/ingestion/connections/query_logger.py +115 -0
  722. metadata/ingestion/connections/test_connections.py +1 -1
  723. metadata/ingestion/ometa/mixins/tests_mixin.py +3 -5
  724. metadata/ingestion/ometa/routes.py +2 -0
  725. metadata/ingestion/sink/metadata_rest.py +54 -11
  726. metadata/ingestion/source/api/api_service.py +2 -7
  727. metadata/ingestion/source/api/rest/metadata.py +0 -1
  728. metadata/ingestion/source/connections.py +80 -14
  729. metadata/ingestion/source/connections_utils.py +32 -0
  730. metadata/ingestion/source/dashboard/dashboard_service.py +2 -7
  731. metadata/ingestion/source/dashboard/qlikcloud/client.py +34 -2
  732. metadata/ingestion/source/dashboard/qlikcloud/constants.py +6 -0
  733. metadata/ingestion/source/dashboard/qlikcloud/models.py +8 -0
  734. metadata/ingestion/source/dashboard/superset/connection.py +8 -8
  735. metadata/ingestion/source/dashboard/superset/queries.py +1 -1
  736. metadata/ingestion/source/dashboard/tableau/client.py +4 -4
  737. metadata/ingestion/source/dashboard/tableau/metadata.py +0 -1
  738. metadata/ingestion/source/database/bigquery/connection.py +13 -9
  739. metadata/ingestion/source/database/bigquery/helper.py +11 -9
  740. metadata/ingestion/source/database/bigquery/metadata.py +102 -13
  741. metadata/ingestion/source/database/bigquery/profiler/system.py +1 -1
  742. metadata/ingestion/source/database/bigquery/queries.py +15 -3
  743. metadata/ingestion/source/database/common_db_source.py +2 -4
  744. metadata/ingestion/source/database/database_service.py +2 -7
  745. metadata/ingestion/source/database/databricks/client.py +149 -14
  746. metadata/ingestion/source/database/databricks/queries.py +26 -0
  747. metadata/ingestion/source/database/datalake/metadata.py +1 -1
  748. metadata/ingestion/source/database/dbt/metadata.py +0 -5
  749. metadata/ingestion/source/database/mysql/connection.py +52 -45
  750. metadata/ingestion/source/database/mysql/service_spec.py +2 -0
  751. metadata/ingestion/source/database/postgres/metadata.py +16 -4
  752. metadata/ingestion/source/database/postgres/models.py +1 -0
  753. metadata/ingestion/source/database/postgres/queries.py +7 -4
  754. metadata/ingestion/source/database/query_parser_source.py +2 -7
  755. metadata/ingestion/source/database/redshift/connection.py +1 -1
  756. metadata/ingestion/source/database/sample_data.py +1 -1
  757. metadata/ingestion/source/database/saphana/lineage.py +2 -7
  758. metadata/ingestion/source/database/sas/metadata.py +2 -7
  759. metadata/ingestion/source/database/trino/connection.py +10 -79
  760. metadata/ingestion/source/database/trino/profiler/system_tables_profiler.py +26 -17
  761. metadata/ingestion/source/database/unitycatalog/connection.py +33 -0
  762. metadata/ingestion/source/database/unitycatalog/lineage.py +2 -7
  763. metadata/ingestion/source/database/unitycatalog/metadata.py +126 -13
  764. metadata/ingestion/source/database/unitycatalog/queries.py +19 -0
  765. metadata/ingestion/source/messaging/messaging_service.py +2 -7
  766. metadata/ingestion/source/metadata/alationsink/metadata.py +2 -7
  767. metadata/ingestion/source/metadata/amundsen/metadata.py +2 -7
  768. metadata/ingestion/source/metadata/atlas/metadata.py +2 -7
  769. metadata/ingestion/source/mlmodel/mlmodel_service.py +2 -7
  770. metadata/ingestion/source/pipeline/airflow/connection.py +4 -6
  771. metadata/ingestion/source/pipeline/databrickspipeline/connection.py +26 -2
  772. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +175 -13
  773. metadata/ingestion/source/pipeline/nifi/metadata.py +133 -3
  774. metadata/ingestion/source/pipeline/pipeline_service.py +20 -7
  775. metadata/ingestion/source/search/search_service.py +2 -7
  776. metadata/ingestion/source/storage/storage_service.py +2 -7
  777. metadata/profiler/interface/sqlalchemy/bigquery/profiler_interface.py +3 -3
  778. metadata/profiler/interface/sqlalchemy/profiler_interface.py +1 -0
  779. metadata/profiler/metrics/static/not_regexp_match_count.py +4 -3
  780. metadata/profiler/metrics/static/regexp_match_count.py +3 -2
  781. metadata/profiler/orm/functions/length.py +1 -0
  782. metadata/profiler/orm/functions/md5.py +9 -0
  783. metadata/profiler/orm/functions/modulo.py +1 -0
  784. metadata/profiler/orm/functions/random_num.py +4 -0
  785. metadata/profiler/orm/functions/regexp.py +40 -0
  786. metadata/profiler/orm/functions/table_metric_computer.py +34 -8
  787. metadata/profiler/orm/registry.py +1 -0
  788. metadata/profiler/processor/core.py +2 -2
  789. metadata/profiler/processor/default.py +29 -28
  790. metadata/profiler/processor/metric_filter.py +16 -3
  791. metadata/profiler/processor/models.py +14 -4
  792. metadata/profiler/source/database/base/profiler_resolver.py +35 -0
  793. metadata/profiler/source/database/base/profiler_source.py +45 -30
  794. metadata/profiler/source/profiler_source_interface.py +8 -13
  795. metadata/sampler/sampler_interface.py +15 -10
  796. metadata/sampler/sqlalchemy/bigquery/sampler.py +7 -0
  797. metadata/utils/dependency_injector/dependency_injector.py +403 -0
  798. metadata/utils/service_spec/service_spec.py +66 -10
  799. metadata/workflow/profiler.py +2 -7
  800. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/METADATA +523 -516
  801. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/RECORD +805 -782
  802. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/LICENSE +0 -0
  803. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/WHEEL +0 -0
  804. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/entry_points.txt +0 -0
  805. {openmetadata_ingestion-1.7.5.3.dist-info → openmetadata_ingestion-1.8.1.0.dist-info}/top_level.txt +0 -0
@@ -38,9 +38,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
38
38
  from metadata.ingestion.api.models import Either
39
39
  from metadata.ingestion.api.steps import Source
40
40
  from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
41
- from metadata.ingestion.connections.test_connections import (
42
- raise_test_connection_exception,
43
- )
44
41
  from metadata.ingestion.models.delete_entity import DeleteEntity
45
42
  from metadata.ingestion.models.topology import (
46
43
  NodeStage,
@@ -49,7 +46,7 @@ from metadata.ingestion.models.topology import (
49
46
  TopologyNode,
50
47
  )
51
48
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
52
- from metadata.ingestion.source.connections import get_connection, get_test_connection_fn
49
+ from metadata.ingestion.source.connections import get_connection, test_connection_common
53
50
  from metadata.utils import fqn
54
51
  from metadata.utils.helpers import retry_with_docker_host
55
52
  from metadata.utils.logger import ingestion_logger
@@ -180,11 +177,9 @@ class MlModelServiceSource(TopologyRunnerMixin, Source, ABC):
180
177
  """By default, nothing to close"""
181
178
 
182
179
  def test_connection(self) -> None:
183
- test_connection_fn = get_test_connection_fn(self.service_connection)
184
- result = test_connection_fn(
180
+ test_connection_common(
185
181
  self.metadata, self.connection_obj, self.service_connection
186
182
  )
187
- raise_test_connection_exception(result)
188
183
 
189
184
  def mark_mlmodels_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
190
185
  """Method to mark the mlmodels as deleted"""
@@ -24,7 +24,7 @@ from metadata.generated.schema.entity.automations.workflow import (
24
24
  Workflow as AutomationWorkflow,
25
25
  )
26
26
  from metadata.generated.schema.entity.services.connections.database.mysqlConnection import (
27
- MysqlConnection,
27
+ MysqlConnection as MysqlConnectionConfig,
28
28
  )
29
29
  from metadata.generated.schema.entity.services.connections.database.postgresConnection import (
30
30
  PostgresConnection,
@@ -67,12 +67,10 @@ def _(_: BackendConnection) -> Engine:
67
67
 
68
68
 
69
69
  @_get_connection.register
70
- def _(airflow_connection: MysqlConnection) -> Engine:
71
- from metadata.ingestion.source.database.mysql.connection import (
72
- get_connection as get_mysql_connection,
73
- )
70
+ def _(airflow_connection: MysqlConnectionConfig) -> Engine:
71
+ from metadata.ingestion.source.database.mysql.connection import MySQLConnection
74
72
 
75
- return get_mysql_connection(airflow_connection)
73
+ return MySQLConnection(airflow_connection).get_client()
76
74
 
77
75
 
78
76
  @_get_connection.register
@@ -24,17 +24,38 @@ from metadata.generated.schema.entity.services.connections.pipeline.databricksPi
24
24
  from metadata.generated.schema.entity.services.connections.testConnectionResult import (
25
25
  TestConnectionResult,
26
26
  )
27
+ from metadata.ingestion.connections.builders import (
28
+ create_generic_db_connection,
29
+ get_connection_args_common,
30
+ init_empty_connection_arguments,
31
+ )
27
32
  from metadata.ingestion.connections.test_connections import test_connection_steps
28
33
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
29
34
  from metadata.ingestion.source.database.databricks.client import DatabricksClient
30
35
  from metadata.utils.constants import THREE_MIN
31
36
 
32
37
 
38
+ def get_connection_url(connection: DatabricksPipelineConnection) -> str:
39
+ url = f"databricks+connector://token:{connection.token.get_secret_value()}@{connection.hostPort}"
40
+ return url
41
+
42
+
33
43
  def get_connection(connection: DatabricksPipelineConnection) -> DatabricksClient:
34
44
  """
35
45
  Create connection
36
46
  """
37
- return DatabricksClient(connection)
47
+
48
+ if connection.httpPath:
49
+ if not connection.connectionArguments:
50
+ connection.connectionArguments = init_empty_connection_arguments()
51
+ connection.connectionArguments.root["http_path"] = connection.httpPath
52
+
53
+ engine = create_generic_db_connection(
54
+ connection=connection,
55
+ get_connection_url_fn=get_connection_url,
56
+ get_connection_args_fn=get_connection_args_common,
57
+ )
58
+ return DatabricksClient(connection, engine)
38
59
 
39
60
 
40
61
  def test_connection(
@@ -49,7 +70,10 @@ def test_connection(
49
70
  of a metadata workflow or during an Automation Workflow
50
71
  """
51
72
 
52
- test_fn = {"GetPipelines": client.list_jobs_test_connection}
73
+ test_fn = {
74
+ "GetPipelines": client.list_jobs_test_connection,
75
+ "GetLineage": client.test_lineage_query,
76
+ }
53
77
 
54
78
  return test_connection_steps(
55
79
  metadata=metadata,
@@ -14,7 +14,7 @@ Databricks pipeline source to extract metadata
14
14
  """
15
15
 
16
16
  import traceback
17
- from typing import Iterable, List, Optional
17
+ from typing import Iterable, List, Optional, Tuple
18
18
 
19
19
  from pydantic import ValidationError
20
20
 
@@ -27,6 +27,7 @@ from metadata.generated.schema.entity.data.pipeline import (
27
27
  Task,
28
28
  TaskStatus,
29
29
  )
30
+ from metadata.generated.schema.entity.data.table import Table
30
31
  from metadata.generated.schema.entity.services.connections.pipeline.databricksPipelineConnection import (
31
32
  DatabricksPipelineConnection,
32
33
  )
@@ -43,8 +44,16 @@ from metadata.generated.schema.type.basic import (
43
44
  SourceUrl,
44
45
  Timestamp,
45
46
  )
47
+ from metadata.generated.schema.type.entityLineage import (
48
+ ColumnLineage,
49
+ EntitiesEdge,
50
+ LineageDetails,
51
+ )
52
+ from metadata.generated.schema.type.entityLineage import Source as LineageSource
53
+ from metadata.generated.schema.type.entityReference import EntityReference
46
54
  from metadata.ingestion.api.models import Either
47
55
  from metadata.ingestion.api.steps import InvalidSourceException
56
+ from metadata.ingestion.lineage.sql_lineage import get_column_fqn
48
57
  from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
49
58
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
50
59
  from metadata.ingestion.source.pipeline.databrickspipeline.models import (
@@ -54,7 +63,6 @@ from metadata.ingestion.source.pipeline.databrickspipeline.models import (
54
63
  from metadata.ingestion.source.pipeline.pipeline_service import PipelineServiceSource
55
64
  from metadata.utils import fqn
56
65
  from metadata.utils.logger import ingestion_logger
57
- from metadata.utils.time_utils import convert_timestamp_to_milliseconds
58
66
 
59
67
  logger = ingestion_logger()
60
68
 
@@ -200,21 +208,15 @@ class DatabrickspipelineSource(PipelineServiceSource):
200
208
  executionStatus=STATUS_MAP.get(
201
209
  run.state.result_state, StatusType.Failed
202
210
  ),
203
- startTime=Timestamp(
204
- convert_timestamp_to_milliseconds(run.start_time)
205
- ),
206
- endTime=Timestamp(
207
- convert_timestamp_to_milliseconds(run.end_time)
208
- ),
211
+ startTime=Timestamp(run.start_time),
212
+ endTime=Timestamp(run.end_time) if run.end_time else None,
209
213
  logLink=run.run_page_url,
210
214
  )
211
215
  for task in run.tasks or []
212
216
  ]
213
217
  pipeline_status = PipelineStatus(
214
218
  taskStatus=task_status,
215
- timestamp=Timestamp(
216
- convert_timestamp_to_milliseconds(run.start_time)
217
- ),
219
+ timestamp=Timestamp(run.start_time),
218
220
  executionStatus=STATUS_MAP.get(
219
221
  run.state.result_state,
220
222
  StatusType.Failed,
@@ -235,13 +237,173 @@ class DatabrickspipelineSource(PipelineServiceSource):
235
237
  except Exception as exc:
236
238
  yield Either(
237
239
  left=StackTraceError(
238
- name=pipeline_fqn,
240
+ name=pipeline_details.job_id,
239
241
  error=f"Failed to yield pipeline status: {exc}",
240
242
  stackTrace=traceback.format_exc(),
241
243
  )
242
244
  )
243
245
 
246
+ def _process_and_validate_column_lineage(
247
+ self,
248
+ column_lineage: List[Tuple[str, str]],
249
+ from_entity: Table,
250
+ to_entity: Table,
251
+ ) -> List[ColumnLineage]:
252
+ """
253
+ Process and validate column lineage
254
+ """
255
+ processed_column_lineage = []
256
+ if column_lineage:
257
+ for column_tuple in column_lineage or []:
258
+ try:
259
+ if len(column_tuple) < 2:
260
+ logger.debug(f"Skipping invalid column tuple: {column_tuple}")
261
+ continue
262
+
263
+ source_col = column_tuple[0]
264
+ target_col = column_tuple[-1]
265
+
266
+ if not source_col or not target_col:
267
+ logger.debug(
268
+ f"Skipping column tuple with empty values: source={source_col}, "
269
+ f"target={target_col}, to_entity={to_entity.name}"
270
+ )
271
+ continue
272
+
273
+ from_column = get_column_fqn(
274
+ table_entity=from_entity, column=str(source_col)
275
+ )
276
+ to_column = get_column_fqn(
277
+ table_entity=to_entity,
278
+ column=str(target_col),
279
+ )
280
+ if from_column and to_column:
281
+ processed_column_lineage.append(
282
+ ColumnLineage(
283
+ fromColumns=[from_column],
284
+ toColumn=to_column,
285
+ )
286
+ )
287
+ except Exception as err:
288
+ logger.warning(
289
+ f"Error processing column lineage {column_tuple}: {err}"
290
+ )
291
+ logger.debug(traceback.format_exc())
292
+ continue
293
+ if not processed_column_lineage:
294
+ logger.warning(
295
+ f"No column lineage found for {from_entity.name} to {to_entity.name}"
296
+ )
297
+ return processed_column_lineage or []
298
+
244
299
  def yield_pipeline_lineage_details(
245
300
  self, pipeline_details: DataBrickPipelineDetails
246
301
  ) -> Iterable[Either[AddLineageRequest]]:
247
- """Get lineage between pipeline and data sources. Not Implemented."""
302
+ try:
303
+ pipeline_fqn = fqn.build(
304
+ metadata=self.metadata,
305
+ entity_type=Pipeline,
306
+ service_name=self.context.get().pipeline_service,
307
+ pipeline_name=self.context.get().pipeline,
308
+ )
309
+
310
+ pipeline_entity = self.metadata.get_by_name(
311
+ entity=Pipeline, fqn=pipeline_fqn
312
+ )
313
+
314
+ table_lineage_list = self.client.get_table_lineage(
315
+ job_id=pipeline_details.job_id
316
+ )
317
+ if table_lineage_list:
318
+ for table_lineage in table_lineage_list:
319
+ source_table_full_name = table_lineage.get("source_table_full_name")
320
+ target_table_full_name = table_lineage.get("target_table_full_name")
321
+ if source_table_full_name and target_table_full_name:
322
+ source = fqn.split_table_name(source_table_full_name)
323
+ target = fqn.split_table_name(target_table_full_name)
324
+ for dbservicename in self.get_db_service_names() or ["*"]:
325
+
326
+ from_entity = self.metadata.get_by_name(
327
+ entity=Table,
328
+ fqn=fqn.build(
329
+ metadata=self.metadata,
330
+ entity_type=Table,
331
+ table_name=source.get("table"),
332
+ database_name=source.get("database"),
333
+ schema_name=source.get("database_schema"),
334
+ service_name=dbservicename,
335
+ ),
336
+ )
337
+
338
+ if from_entity is None:
339
+ continue
340
+
341
+ to_entity = self.metadata.get_by_name(
342
+ entity=Table,
343
+ fqn=fqn.build(
344
+ metadata=self.metadata,
345
+ entity_type=Table,
346
+ table_name=target.get("table"),
347
+ database_name=target.get("database"),
348
+ schema_name=target.get("database_schema"),
349
+ service_name=dbservicename,
350
+ ),
351
+ )
352
+
353
+ if to_entity is None:
354
+ continue
355
+
356
+ processed_column_lineage = (
357
+ self._process_and_validate_column_lineage(
358
+ column_lineage=self.client.get_column_lineage(
359
+ job_id=pipeline_details.job_id,
360
+ TableKey=(
361
+ source_table_full_name,
362
+ target_table_full_name,
363
+ ),
364
+ ),
365
+ from_entity=from_entity,
366
+ to_entity=to_entity,
367
+ )
368
+ )
369
+
370
+ lineage_details = LineageDetails(
371
+ pipeline=EntityReference(
372
+ id=pipeline_entity.id.root, type="pipeline"
373
+ ),
374
+ source=LineageSource.PipelineLineage,
375
+ columnsLineage=processed_column_lineage,
376
+ )
377
+
378
+ yield Either(
379
+ right=AddLineageRequest(
380
+ edge=EntitiesEdge(
381
+ fromEntity=EntityReference(
382
+ id=from_entity.id,
383
+ type="table",
384
+ ),
385
+ toEntity=EntityReference(
386
+ id=to_entity.id,
387
+ type="table",
388
+ ),
389
+ lineageDetails=lineage_details,
390
+ )
391
+ )
392
+ )
393
+
394
+ else:
395
+ logger.debug(
396
+ f"No source or target table full name found for job {pipeline_details.job_id}"
397
+ )
398
+ else:
399
+ logger.debug(
400
+ f"No table lineage found for job {pipeline_details.job_id}"
401
+ )
402
+ except Exception as exc:
403
+ yield Either(
404
+ left=StackTraceError(
405
+ name=pipeline_details.job_id,
406
+ error=f"Wild error ingesting pipeline lineage {pipeline_details} - {exc}",
407
+ stackTrace=traceback.format_exc(),
408
+ )
409
+ )
@@ -12,13 +12,14 @@
12
12
  Nifi source to extract metadata
13
13
  """
14
14
  import traceback
15
- from typing import Iterable, List, Optional
15
+ from collections import defaultdict
16
+ from typing import Dict, Iterable, List, Optional
16
17
 
17
18
  from pydantic import BaseModel, ValidationError
18
19
 
19
20
  from metadata.generated.schema.api.data.createPipeline import CreatePipelineRequest
20
21
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
21
- from metadata.generated.schema.entity.data.pipeline import Task
22
+ from metadata.generated.schema.entity.data.pipeline import Pipeline, Task
22
23
  from metadata.generated.schema.entity.services.connections.pipeline.nifiConnection import (
23
24
  NifiConnection,
24
25
  )
@@ -30,6 +31,9 @@ from metadata.generated.schema.type.basic import (
30
31
  FullyQualifiedEntityName,
31
32
  SourceUrl,
32
33
  )
34
+ from metadata.generated.schema.type.entityLineage import EntitiesEdge, LineageDetails
35
+ from metadata.generated.schema.type.entityLineage import Source as LineageSource
36
+ from metadata.generated.schema.type.entityReference import EntityReference
33
37
  from metadata.ingestion.api.models import Either
34
38
  from metadata.ingestion.api.steps import InvalidSourceException
35
39
  from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
@@ -43,6 +47,7 @@ logger = ingestion_logger()
43
47
 
44
48
  PROCESS_GROUP_FLOW = "processGroupFlow"
45
49
  BREADCRUMB = "breadcrumb"
50
+ PARENT_BREADCRUMB = "parentBreadcrumb"
46
51
 
47
52
 
48
53
  class NifiProcessor(BaseModel):
@@ -77,6 +82,7 @@ class NifiPipelineDetails(BaseModel):
77
82
  uri: str
78
83
  processors: List[NifiProcessor]
79
84
  connections: List[NifiProcessorConnections]
85
+ parent_pipeline_id: Optional[str] = None
80
86
 
81
87
 
82
88
  class NifiSource(PipelineServiceSource):
@@ -85,6 +91,11 @@ class NifiSource(PipelineServiceSource):
85
91
  Pipeline metadata from Airflow's metadata db
86
92
  """
87
93
 
94
+ def __init__(self, config: WorkflowSource, metadata: OpenMetadata):
95
+ super().__init__(config, metadata)
96
+ self.pipeline_parents_mapping: Dict[str, List[str]] = defaultdict(list)
97
+ self.process_group_connections: List[NifiProcessorConnections] = []
98
+
88
99
  @classmethod
89
100
  def create(
90
101
  cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
@@ -220,7 +231,7 @@ class NifiSource(PipelineServiceSource):
220
231
  """Get List of all pipelines"""
221
232
  for process_group in self.connection.list_process_groups():
222
233
  try:
223
- yield NifiPipelineDetails(
234
+ nifi_pipeline_details = NifiPipelineDetails(
224
235
  id_=process_group[PROCESS_GROUP_FLOW].get("id"),
225
236
  name=process_group[PROCESS_GROUP_FLOW][BREADCRUMB][BREADCRUMB].get(
226
237
  "name"
@@ -232,7 +243,18 @@ class NifiSource(PipelineServiceSource):
232
243
  connections=self._get_connections_from_process_group(
233
244
  process_group=process_group
234
245
  ),
246
+ parent_pipeline_id=process_group[PROCESS_GROUP_FLOW][BREADCRUMB]
247
+ .get(PARENT_BREADCRUMB, {})
248
+ .get("id"),
249
+ )
250
+ if nifi_pipeline_details.parent_pipeline_id:
251
+ self.pipeline_parents_mapping[nifi_pipeline_details.id_].append(
252
+ nifi_pipeline_details.parent_pipeline_id
253
+ )
254
+ self.process_group_connections.extend(
255
+ self.get_process_group_connections(process_group)
235
256
  )
257
+ yield nifi_pipeline_details
236
258
  except (ValueError, KeyError, ValidationError) as err:
237
259
  logger.debug(traceback.format_exc())
238
260
  logger.warning(
@@ -244,5 +266,113 @@ class NifiSource(PipelineServiceSource):
244
266
  f"Wild error encountered when trying to get pipelines from Process Group {process_group} - {err}."
245
267
  )
246
268
 
269
+ def get_process_group_connections(
270
+ self, process_group: dict
271
+ ) -> List[NifiProcessorConnections]:
272
+ """Get all connections for a process group"""
273
+ connections_list = (
274
+ process_group.get(PROCESS_GROUP_FLOW).get("flow").get("connections")
275
+ )
276
+ connections = []
277
+
278
+ for connection in connections_list:
279
+ try:
280
+ source = connection.get("component", {}).get("source", {})
281
+ destination = connection.get("component", {}).get("destination", {})
282
+ if (
283
+ source.get("type") == "OUTPUT_PORT"
284
+ and destination.get("type") == "INPUT_PORT"
285
+ and source.get("groupId") != destination.get("groupId")
286
+ ):
287
+ connections.append(
288
+ NifiProcessorConnections(
289
+ id_=connection.get("id"),
290
+ source_id=source.get("groupId"),
291
+ destination_id=destination.get("groupId"),
292
+ )
293
+ )
294
+ except Exception as err:
295
+ logger.debug(traceback.format_exc())
296
+ logger.warning(
297
+ f"Wild error encountered when trying to get process group connections from \
298
+ {process_group[PROCESS_GROUP_FLOW][BREADCRUMB][BREADCRUMB].get('name')} - {err}."
299
+ )
300
+ return connections
301
+
302
+ def yield_pipeline_bulk_lineage_details(
303
+ self,
304
+ ) -> Iterable[Either[AddLineageRequest]]:
305
+ """
306
+ Process the pipeline bulk lineage details
307
+ """
308
+ # Process the lineage between parent and child pipelines
309
+ for pipeline_id, parent_pipeline_ids in self.pipeline_parents_mapping.items():
310
+ to_entity = self.metadata.get_by_name(
311
+ entity=Pipeline,
312
+ fqn=f"{self.context.get().pipeline_service}.{pipeline_id}",
313
+ )
314
+ if not to_entity:
315
+ logger.warning(
316
+ f"Pipeline {pipeline_id} not found in metadata, skipping lineage"
317
+ )
318
+ continue
319
+ for parent_pipeline_id in parent_pipeline_ids:
320
+ from_entity = self.metadata.get_by_name(
321
+ entity=Pipeline,
322
+ fqn=f"{self.context.get().pipeline_service}.{parent_pipeline_id}",
323
+ )
324
+ if not from_entity:
325
+ logger.warning(
326
+ f"Parent Pipeline {parent_pipeline_id} not found in metadata, skipping lineage"
327
+ )
328
+ continue
329
+ yield Either(
330
+ right=AddLineageRequest(
331
+ edge=EntitiesEdge(
332
+ fromEntity=EntityReference(
333
+ id=from_entity.id, type="pipeline"
334
+ ),
335
+ toEntity=EntityReference(id=to_entity.id, type="pipeline"),
336
+ lineageDetails=LineageDetails(
337
+ source=LineageSource.PipelineLineage
338
+ ),
339
+ )
340
+ )
341
+ )
342
+
343
+ # Process the lineage between connected pipelines
344
+ for connection in self.process_group_connections:
345
+ from_entity = self.metadata.get_by_name(
346
+ entity=Pipeline,
347
+ fqn=f"{self.context.get().pipeline_service}.{connection.source_id}",
348
+ )
349
+ if not from_entity:
350
+ logger.warning(
351
+ f"Pipeline {connection.source_id} not found in metadata, skipping lineage"
352
+ )
353
+ continue
354
+
355
+ to_entity = self.metadata.get_by_name(
356
+ entity=Pipeline,
357
+ fqn=f"{self.context.get().pipeline_service}.{connection.destination_id}",
358
+ )
359
+ if not to_entity:
360
+ logger.warning(
361
+ f"Pipeline {connection.destination_id} not found in metadata, skipping lineage"
362
+ )
363
+ continue
364
+
365
+ yield Either(
366
+ right=AddLineageRequest(
367
+ edge=EntitiesEdge(
368
+ fromEntity=EntityReference(id=from_entity.id, type="pipeline"),
369
+ toEntity=EntityReference(id=to_entity.id, type="pipeline"),
370
+ lineageDetails=LineageDetails(
371
+ source=LineageSource.PipelineLineage
372
+ ),
373
+ )
374
+ )
375
+ )
376
+
247
377
  def get_pipeline_name(self, pipeline_details: NifiPipelineDetails) -> str:
248
378
  return pipeline_details.name
@@ -41,9 +41,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
41
41
  from metadata.ingestion.api.models import Either
42
42
  from metadata.ingestion.api.steps import Source
43
43
  from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
44
- from metadata.ingestion.connections.test_connections import (
45
- raise_test_connection_exception,
46
- )
47
44
  from metadata.ingestion.models.delete_entity import DeleteEntity
48
45
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
49
46
  from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
@@ -55,7 +52,7 @@ from metadata.ingestion.models.topology import (
55
52
  TopologyNode,
56
53
  )
57
54
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
58
- from metadata.ingestion.source.connections import get_connection, get_test_connection_fn
55
+ from metadata.ingestion.source.connections import get_connection, test_connection_common
59
56
  from metadata.ingestion.source.pipeline.openlineage.models import TableDetails
60
57
  from metadata.ingestion.source.pipeline.openlineage.utils import FQNNotFoundException
61
58
  from metadata.utils import fqn
@@ -137,6 +134,7 @@ class PipelineServiceTopology(ServiceTopology):
137
134
  nullable=True,
138
135
  ),
139
136
  ],
137
+ post_process=["process_pipeline_bulk_lineage"],
140
138
  )
141
139
 
142
140
 
@@ -316,6 +314,23 @@ class PipelineServiceSource(TopologyRunnerMixin, Source, ABC):
316
314
  else:
317
315
  yield lineage
318
316
 
317
+ def yield_pipeline_bulk_lineage_details(self) -> Iterable[AddLineageRequest]:
318
+ """Method to yield the bulk pipeline lineage details"""
319
+
320
+ def process_pipeline_bulk_lineage(self) -> Iterable[AddLineageRequest]:
321
+ """Method to process the bulk pipeline lineage"""
322
+ if self.source_config.includeLineage:
323
+ for lineage in self.yield_pipeline_bulk_lineage_details() or []:
324
+ if lineage.right is not None:
325
+ yield Either(
326
+ right=OMetaLineageRequest(
327
+ lineage_request=lineage.right,
328
+ override_lineage=self.source_config.overrideLineage,
329
+ )
330
+ )
331
+ else:
332
+ yield lineage
333
+
319
334
  def _get_table_fqn_from_om(self, table_details: TableDetails) -> Optional[str]:
320
335
  """
321
336
  Based on partial schema and table names look for matching table object in open metadata.
@@ -373,11 +388,9 @@ class PipelineServiceSource(TopologyRunnerMixin, Source, ABC):
373
388
  yield pipeline_detail
374
389
 
375
390
  def test_connection(self) -> None:
376
- test_connection_fn = get_test_connection_fn(self.service_connection)
377
- result = test_connection_fn(
391
+ test_connection_common(
378
392
  self.metadata, self.connection_obj, self.service_connection
379
393
  )
380
- raise_test_connection_exception(result)
381
394
 
382
395
  def register_record(self, pipeline_request: CreatePipelineRequest) -> None:
383
396
  """Mark the pipeline record as scanned and update the pipeline_source_state"""
@@ -41,9 +41,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
41
41
  from metadata.ingestion.api.models import Either
42
42
  from metadata.ingestion.api.steps import Source
43
43
  from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
44
- from metadata.ingestion.connections.test_connections import (
45
- raise_test_connection_exception,
46
- )
47
44
  from metadata.ingestion.models.delete_entity import DeleteEntity
48
45
  from metadata.ingestion.models.search_index_data import OMetaIndexSampleData
49
46
  from metadata.ingestion.models.topology import (
@@ -53,7 +50,7 @@ from metadata.ingestion.models.topology import (
53
50
  TopologyNode,
54
51
  )
55
52
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
56
- from metadata.ingestion.source.connections import get_connection, get_test_connection_fn
53
+ from metadata.ingestion.source.connections import get_connection, test_connection_common
57
54
  from metadata.utils import fqn
58
55
  from metadata.utils.filters import filter_by_search_index
59
56
  from metadata.utils.helpers import retry_with_docker_host
@@ -239,11 +236,9 @@ class SearchServiceSource(TopologyRunnerMixin, Source, ABC):
239
236
  """Nothing to prepare by default"""
240
237
 
241
238
  def test_connection(self) -> None:
242
- test_connection_fn = get_test_connection_fn(self.service_connection)
243
- result = test_connection_fn(
239
+ test_connection_common(
244
240
  self.metadata, self.connection_obj, self.service_connection
245
241
  )
246
- raise_test_connection_exception(result)
247
242
 
248
243
  def mark_search_indexes_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
249
244
  """Method to mark the search index as deleted"""
@@ -40,9 +40,6 @@ from metadata.ingestion.api.delete import delete_entity_from_source
40
40
  from metadata.ingestion.api.models import Either
41
41
  from metadata.ingestion.api.steps import Source
42
42
  from metadata.ingestion.api.topology_runner import TopologyRunnerMixin
43
- from metadata.ingestion.connections.test_connections import (
44
- raise_test_connection_exception,
45
- )
46
43
  from metadata.ingestion.models.delete_entity import DeleteEntity
47
44
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
48
45
  from metadata.ingestion.models.topology import (
@@ -52,7 +49,7 @@ from metadata.ingestion.models.topology import (
52
49
  TopologyNode,
53
50
  )
54
51
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
55
- from metadata.ingestion.source.connections import get_connection, get_test_connection_fn
52
+ from metadata.ingestion.source.connections import get_connection, test_connection_common
56
53
  from metadata.ingestion.source.database.glue.models import Column
57
54
  from metadata.readers.dataframe.models import DatalakeTableSchemaWrapper
58
55
  from metadata.readers.dataframe.reader_factory import SupportedTypes
@@ -240,11 +237,9 @@ class StorageServiceSource(TopologyRunnerMixin, Source, ABC):
240
237
  self.container_source_state.add(container_fqn)
241
238
 
242
239
  def test_connection(self) -> None:
243
- test_connection_fn = get_test_connection_fn(self.service_connection)
244
- result = test_connection_fn(
240
+ test_connection_common(
245
241
  self.metadata, self.connection_obj, self.service_connection
246
242
  )
247
- raise_test_connection_exception(result)
248
243
 
249
244
  def mark_containers_as_deleted(self) -> Iterable[Either[DeleteEntity]]:
250
245
  """Method to mark the containers as deleted"""