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
@@ -14,7 +14,7 @@ Base source for the profiler used to instantiate a profiler runner with
14
14
  its interface
15
15
  """
16
16
  from copy import deepcopy
17
- from typing import Optional, cast
17
+ from typing import Optional, Type, cast
18
18
 
19
19
  from metadata.generated.schema.configuration.profilerConfiguration import (
20
20
  ProfilerConfiguration,
@@ -22,10 +22,7 @@ from metadata.generated.schema.configuration.profilerConfiguration import (
22
22
  from metadata.generated.schema.entity.data.database import Database
23
23
  from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
24
24
  from metadata.generated.schema.entity.data.table import Table
25
- from metadata.generated.schema.entity.services.databaseService import (
26
- DatabaseConnection,
27
- DatabaseService,
28
- )
25
+ from metadata.generated.schema.entity.services.databaseService import DatabaseConnection
29
26
  from metadata.generated.schema.entity.services.serviceType import ServiceType
30
27
  from metadata.generated.schema.metadataIngestion.databaseServiceProfilerPipeline import (
31
28
  DatabaseServiceProfilerPipeline,
@@ -36,9 +33,10 @@ from metadata.generated.schema.metadataIngestion.workflow import (
36
33
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
37
34
  from metadata.profiler.api.models import ProfilerProcessorConfig, TableConfig
38
35
  from metadata.profiler.interface.profiler_interface import ProfilerInterface
39
- from metadata.profiler.metrics.registry import Metrics
40
36
  from metadata.profiler.processor.core import Profiler
41
37
  from metadata.profiler.processor.default import DefaultProfiler, get_default_metrics
38
+ from metadata.profiler.registry import MetricRegistry
39
+ from metadata.profiler.source.database.base.profiler_resolver import ProfilerResolver
42
40
  from metadata.profiler.source.profiler_source_interface import ProfilerSourceInterface
43
41
  from metadata.sampler.config import (
44
42
  get_config_for_table,
@@ -47,12 +45,13 @@ from metadata.sampler.config import (
47
45
  )
48
46
  from metadata.sampler.models import SampleConfig
49
47
  from metadata.sampler.sampler_interface import SamplerInterface
48
+ from metadata.utils.dependency_injector.dependency_injector import (
49
+ DependencyNotFoundError,
50
+ Inject,
51
+ inject,
52
+ )
50
53
  from metadata.utils.logger import profiler_logger
51
54
  from metadata.utils.profiler_utils import get_context_entities
52
- from metadata.utils.service_spec.service_spec import (
53
- import_profiler_class,
54
- import_sampler_class,
55
- )
56
55
 
57
56
  logger = profiler_logger()
58
57
 
@@ -77,8 +76,7 @@ class ProfilerSource(ProfilerSourceInterface):
77
76
  self.ometa_client = ometa_client
78
77
  self._interface_type: str = config.source.type.lower()
79
78
  self._interface = None
80
- # We define this in create_profiler_interface to help us reuse
81
- # this method for the sampler, which does not have a DatabaseServiceProfilerPipeline
79
+
82
80
  self.source_config = None
83
81
  self.global_profiler_configuration = global_profiler_configuration
84
82
 
@@ -122,25 +120,34 @@ class ProfilerSource(ProfilerSourceInterface):
122
120
 
123
121
  return config_copy
124
122
 
123
+ @inject
125
124
  def create_profiler_interface(
126
125
  self,
127
126
  entity: Table,
128
127
  config: Optional[TableConfig],
129
- profiler_config: Optional[ProfilerProcessorConfig],
130
- schema_entity: Optional[DatabaseSchema],
131
- database_entity: Optional[Database],
132
- db_service: Optional[DatabaseService],
128
+ schema_entity: DatabaseSchema,
129
+ database_entity: Database,
130
+ profiler_resolver: Inject[Type[ProfilerResolver]] = None,
133
131
  ) -> ProfilerInterface:
134
- """Create sqlalchemy profiler interface"""
132
+ """Create the appropriate profiler interface based on processing engine."""
133
+ if profiler_resolver is None:
134
+ raise DependencyNotFoundError(
135
+ "ProfilerResolver dependency not found. Please ensure the ProfilerResolver is properly registered."
136
+ )
137
+
138
+ # NOTE: For some reason I do not understand, if we instantiate this on the __init__ method, we break the
139
+ # autoclassification workflow. This should be fixed. There should not be an impact on AutoClassification.
140
+ # We have an issue to track this here: https://github.com/open-metadata/OpenMetadata/issues/21790
135
141
  self.source_config = DatabaseServiceProfilerPipeline.model_validate(
136
142
  self.config.source.sourceConfig.config
137
143
  )
138
- profiler_class = import_profiler_class(
139
- ServiceType.Database, source_type=self._interface_type
140
- )
141
- sampler_class = import_sampler_class(
142
- ServiceType.Database, source_type=self._interface_type
144
+
145
+ sampler_class, profiler_class = profiler_resolver.resolve(
146
+ processing_engine=self.get_processing_engine(self.source_config),
147
+ service_type=ServiceType.Database,
148
+ source_type=self._interface_type,
143
149
  )
150
+
144
151
  # This is shared between the sampler and profiler interfaces
145
152
  sampler_interface: SamplerInterface = sampler_class.create(
146
153
  service_connection_config=self.service_conn_config,
@@ -155,6 +162,8 @@ class ProfilerSource(ProfilerSourceInterface):
155
162
  samplingMethodType=self.source_config.samplingMethodType,
156
163
  randomizedSample=self.source_config.randomizedSample,
157
164
  ),
165
+ # TODO: Change this when we have the processing engine configuration implemented. Right now it does nothing.
166
+ processing_engine=self.get_processing_engine(self.source_config),
158
167
  )
159
168
 
160
169
  profiler_interface: ProfilerInterface = profiler_class.create(
@@ -168,28 +177,33 @@ class ProfilerSource(ProfilerSourceInterface):
168
177
  self.interface = profiler_interface
169
178
  return self.interface
170
179
 
180
+ @inject
171
181
  def get_profiler_runner(
172
- self, entity: Table, profiler_config: ProfilerProcessorConfig
182
+ self,
183
+ entity: Table,
184
+ profiler_config: ProfilerProcessorConfig,
185
+ metrics_registry: Inject[Type[MetricRegistry]] = None,
173
186
  ) -> Profiler:
174
187
  """
175
188
  Returns the runner for the profiler
176
189
  """
190
+ if metrics_registry is None:
191
+ raise DependencyNotFoundError(
192
+ "MetricRegistry dependency not found. Please ensure the MetricRegistry is properly registered."
193
+ )
194
+
177
195
  table_config = get_config_for_table(entity, profiler_config)
178
196
  schema_entity, database_entity, db_service = get_context_entities(
179
197
  entity=entity, metadata=self.ometa_client
180
198
  )
181
199
  profiler_interface = self.create_profiler_interface(
182
- entity,
183
- table_config,
184
- profiler_config,
185
- schema_entity,
186
- database_entity,
187
- db_service,
200
+ entity, table_config, schema_entity, database_entity
188
201
  )
189
202
 
190
203
  if not profiler_config.profiler:
191
204
  return DefaultProfiler(
192
205
  profiler_interface=profiler_interface,
206
+ metrics_registry=metrics_registry,
193
207
  include_columns=get_include_columns(entity, table_config),
194
208
  exclude_columns=get_exclude_columns(entity, table_config),
195
209
  global_profiler_configuration=self.global_profiler_configuration,
@@ -197,9 +211,10 @@ class ProfilerSource(ProfilerSourceInterface):
197
211
  )
198
212
 
199
213
  metrics = (
200
- [Metrics.get(name) for name in profiler_config.profiler.metrics]
214
+ [metrics_registry.get(name) for name in profiler_config.profiler.metrics]
201
215
  if profiler_config.profiler.metrics
202
216
  else get_default_metrics(
217
+ metrics_registry=metrics_registry,
203
218
  table=profiler_interface.table,
204
219
  ometa_client=self.ometa_client,
205
220
  db_service=db_service,
@@ -16,6 +16,9 @@ Class defining the interface for the profiler source
16
16
  from abc import ABC, abstractmethod
17
17
  from typing import Optional
18
18
 
19
+ from metadata.generated.schema.metadataIngestion.databaseServiceProfilerPipeline import (
20
+ DatabaseServiceProfilerPipeline,
21
+ )
19
22
  from metadata.profiler.interface.profiler_interface import ProfilerInterface
20
23
 
21
24
 
@@ -34,20 +37,12 @@ class ProfilerSourceInterface(ABC):
34
37
  """Set the interface"""
35
38
  raise NotImplementedError
36
39
 
37
- @abstractmethod
38
- def create_profiler_interface(
39
- self,
40
- entity,
41
- config,
42
- profiler_config,
43
- schema_entity,
44
- database_entity,
45
- db_service,
46
- ) -> ProfilerInterface:
47
- """Create the profiler interface"""
48
- raise NotImplementedError
49
-
50
40
  @abstractmethod
51
41
  def get_profiler_runner(self, entity, profiler_config):
52
42
  """Get the profiler runner"""
53
43
  raise NotImplementedError
44
+
45
+ @staticmethod
46
+ def get_processing_engine(config: DatabaseServiceProfilerPipeline):
47
+ """Get the processing engine based on the configuration."""
48
+ return "Native"
@@ -13,12 +13,13 @@ Interface for sampler
13
13
  """
14
14
  import traceback
15
15
  from abc import ABC, abstractmethod
16
- from typing import Dict, List, Optional, Set, Union
16
+ from typing import List, Optional, Set, Union
17
17
 
18
18
  from metadata.generated.schema.entity.data.database import Database
19
19
  from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
20
20
  from metadata.generated.schema.entity.data.table import (
21
21
  ColumnProfilerConfig,
22
+ PartitionProfilerConfig,
22
23
  Table,
23
24
  TableData,
24
25
  )
@@ -65,20 +66,20 @@ class SamplerInterface(ABC):
65
66
  include_columns: Optional[List[ColumnProfilerConfig]] = None,
66
67
  exclude_columns: Optional[List[str]] = None,
67
68
  sample_config: SampleConfig = SampleConfig(),
68
- partition_details: Optional[Dict] = None,
69
+ partition_details: Optional[PartitionProfilerConfig] = None,
69
70
  sample_query: Optional[str] = None,
70
- storage_config: DataStorageConfig = None,
71
+ storage_config: Optional[DataStorageConfig] = None,
71
72
  sample_data_count: Optional[int] = SAMPLE_DATA_DEFAULT_COUNT,
72
73
  **__,
73
74
  ):
74
75
  self.ometa_client = ometa_client
75
76
  self._sample = None
76
- self._columns: Optional[List[SQALikeColumn]] = None
77
+ self._columns: List[SQALikeColumn] = []
77
78
  self.sample_config = sample_config
78
79
 
79
80
  self.entity = entity
80
- self.include_columns = include_columns
81
- self.exclude_columns = exclude_columns
81
+ self.include_columns = include_columns or []
82
+ self.exclude_columns = exclude_columns or []
82
83
  self.sample_query = sample_query
83
84
  self.sample_limit = sample_data_count
84
85
  self.partition_details = partition_details
@@ -99,7 +100,7 @@ class SamplerInterface(ABC):
99
100
  table_config: Optional[TableConfig] = None,
100
101
  storage_config: Optional[DataStorageConfig] = None,
101
102
  default_sample_config: Optional[SampleConfig] = None,
102
- default_sample_data_count: Optional[int] = SAMPLE_DATA_DEFAULT_COUNT,
103
+ default_sample_data_count: int = SAMPLE_DATA_DEFAULT_COUNT,
103
104
  **kwargs,
104
105
  ) -> "SamplerInterface":
105
106
  """Create sampler"""
@@ -165,16 +166,20 @@ class SamplerInterface(ABC):
165
166
 
166
167
  return self._columns
167
168
 
168
- def _get_excluded_columns(self) -> Optional[Set[str]]:
169
+ def _get_excluded_columns(self) -> Set[str]:
169
170
  """Get excluded columns for table being profiled"""
170
171
  if self.exclude_columns:
171
172
  return set(self.exclude_columns)
172
173
  return set()
173
174
 
174
- def _get_included_columns(self) -> Optional[Set[str]]:
175
+ def _get_included_columns(self) -> Set[str]:
175
176
  """Get include columns for table being profiled"""
176
177
  if self.include_columns:
177
- return {include_col.columnName for include_col in self.include_columns}
178
+ return {
179
+ include_col.columnName
180
+ for include_col in self.include_columns
181
+ if include_col.columnName
182
+ }
178
183
  return set()
179
184
 
180
185
  @property
@@ -73,6 +73,13 @@ class BigQuerySampler(SQASampler):
73
73
  **kwargs,
74
74
  )
75
75
  self.raw_dataset_type: Optional[TableType] = entity.tableType
76
+ if self._table.__table__.schema and self.entity.database.name:
77
+ self._table.__table__.schema = (
78
+ f"{self.entity.database.name}.{self._table.__table__.schema}"
79
+ )
80
+ self._table.__table_args__[
81
+ "schema"
82
+ ] = f"{self.entity.database.name}.{self._table.__table_args__['schema']}"
76
83
 
77
84
  def set_tablesample(self, selectable: SqaTable):
78
85
  """Set the TABLESAMPLE clause for BigQuery
@@ -0,0 +1,403 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+ """
12
+ Dependency injection utilities for OpenMetadata.
13
+
14
+ This module provides a type-safe dependency injection system that uses Python's type hints
15
+ to automatically inject dependencies into functions and methods.
16
+
17
+ Example:
18
+ ```python
19
+ from typing import Annotated
20
+ from metadata.utils.dependency_injector import Inject, inject, DependencyContainer
21
+
22
+ class Database:
23
+ def __init__(self, connection_string: str):
24
+ self.connection_string = connection_string
25
+
26
+ # Register a dependency
27
+ container = DependencyContainer[Callable]()
28
+ container.register(Database, lambda: Database("postgresql://localhost:5432"))
29
+
30
+ # Use dependency injection
31
+ @inject
32
+ def get_user(user_id: int, db: Inject[Database]) -> dict:
33
+ return db.query(f"SELECT * FROM users WHERE id = {user_id}")
34
+ ```
35
+ """
36
+ from functools import wraps
37
+ from threading import RLock
38
+ from typing import (
39
+ TYPE_CHECKING,
40
+ Annotated,
41
+ Any,
42
+ Callable,
43
+ Dict,
44
+ Generic,
45
+ Optional,
46
+ Type,
47
+ TypeVar,
48
+ Union,
49
+ get_args,
50
+ get_origin,
51
+ get_type_hints,
52
+ )
53
+
54
+ from metadata.utils.logger import utils_logger
55
+
56
+ logger = utils_logger()
57
+
58
+ T = TypeVar("T")
59
+
60
+
61
+ class DependencyInjectionError(Exception):
62
+ """Base exception for dependency injection errors."""
63
+
64
+ pass
65
+
66
+
67
+ class DependencyNotFoundError(DependencyInjectionError):
68
+ """Raised when a required dependency is not found in the container."""
69
+
70
+ pass
71
+
72
+
73
+ class InvalidInjectionTypeError(DependencyInjectionError):
74
+ """Raised when an invalid injection type is used."""
75
+
76
+ pass
77
+
78
+
79
+ if TYPE_CHECKING:
80
+ Inject = Annotated[Union[T, None], "Inject Marker"]
81
+ else:
82
+
83
+ class Inject(Generic[T]):
84
+ """
85
+ Type for dependency injection that uses types as keys.
86
+
87
+ This type is used to mark parameters that should be automatically injected
88
+ by the dependency container. Injection is always treated as Optioonal. It can be overriden.
89
+
90
+ Type Parameters:
91
+ T: The type of the dependency to inject
92
+
93
+ Example:
94
+ ```python
95
+ @inject
96
+ def my_function(db: Inject[Database]):
97
+ # db will be automatically injected
98
+ pass
99
+ ```
100
+ """
101
+
102
+
103
+ class DependencyContainer:
104
+ """
105
+ Thread-safe singleton container for managing dependencies.
106
+
107
+ This container uses RLock to support reentrant locking, allowing the same thread
108
+ to acquire the lock multiple times. It maintains two dictionaries:
109
+ - _dependencies: The original registered dependencies
110
+ - _overrides: Temporary overrides that take precedence over original dependencies
111
+
112
+ Type Parameters:
113
+ T: The base type for all dependencies in this container
114
+
115
+ Example:
116
+ ```python
117
+ container = DependencyContainer[Callable]()
118
+ container.register(Database, lambda: Database("postgresql://localhost:5432"))
119
+ container.override(Database, lambda: Database("postgresql://test:5432"))
120
+ ```
121
+ """
122
+
123
+ _instance: Optional["DependencyContainer"] = None
124
+ _lock = RLock()
125
+ _dependencies: Dict[str, Callable[[], Any]] = {}
126
+ _overrides: Dict[str, Callable[[], Any]] = {}
127
+
128
+ def __new__(cls) -> "DependencyContainer":
129
+ if cls._instance is None:
130
+ with cls._lock:
131
+ if cls._instance is None:
132
+ cls._instance = super().__new__(cls)
133
+ return cls._instance
134
+
135
+ def get_key(self, dependency_type: Type[Any]) -> str:
136
+ """
137
+ Get the key for a dependency.
138
+ """
139
+ if get_origin(dependency_type) is type:
140
+ inner_type = get_args(dependency_type)[0]
141
+ return f"Type[{inner_type.__name__}]"
142
+ return dependency_type.__name__
143
+
144
+ def register(
145
+ self, dependency_type: Type[Any], dependency: Callable[[], Any]
146
+ ) -> None:
147
+ """
148
+ Register a dependency with the container.
149
+
150
+ Args:
151
+ dependency_type: The type of the dependency to register
152
+ dependency: The dependency to register (usually a factory function)
153
+
154
+ Example:
155
+ ```python
156
+ container.register(Database, lambda: Database("postgresql://localhost:5432"))
157
+ container.register(Type[Metrics], lambda: Metrics) # For registering types themselves
158
+ ```
159
+ """
160
+ with self._lock:
161
+ self._dependencies[self.get_key(dependency_type)] = dependency
162
+
163
+ def override(
164
+ self, dependency_type: Type[Any], dependency: Callable[[], Any]
165
+ ) -> None:
166
+ """
167
+ Override a dependency with a new implementation.
168
+
169
+ The override takes precedence over the original dependency and is useful
170
+ for testing or temporary changes.
171
+
172
+ Args:
173
+ dependency_type: The type of the dependency to override
174
+ dependency: The new dependency implementation
175
+
176
+ Example:
177
+ ```python
178
+ container.override(Database, lambda: Database("postgresql://test:5432"))
179
+ ```
180
+ """
181
+ with self._lock:
182
+ self._overrides[self.get_key(dependency_type)] = dependency
183
+
184
+ def remove_override(self, dependency_type: Type[T]) -> None:
185
+ """
186
+ Remove an override for a dependency.
187
+
188
+ Args:
189
+ dependency_type: The type of the dependency override to remove
190
+
191
+ Example:
192
+ ```python
193
+ container.remove_override(Database)
194
+ ```
195
+ """
196
+ with self._lock:
197
+ self._overrides.pop(self.get_key(dependency_type), None)
198
+
199
+ def get(self, dependency_type: Type[Any]) -> Optional[Any]:
200
+ """
201
+ Get a dependency from the container.
202
+
203
+ Checks overrides first, then falls back to original dependencies.
204
+
205
+ Args:
206
+ dependency_type: The type of the dependency to retrieve
207
+
208
+ Returns:
209
+ The dependency if found, None otherwise
210
+
211
+ Example:
212
+ ```python
213
+ db_factory = container.get(Database)
214
+ if db_factory:
215
+ db = db_factory()
216
+ ```
217
+ """
218
+ with self._lock:
219
+ factory = self._overrides.get(
220
+ self.get_key(dependency_type)
221
+ ) or self._dependencies.get(self.get_key(dependency_type))
222
+ if factory is None:
223
+ return None
224
+ return factory()
225
+
226
+ def clear(self) -> None:
227
+ """
228
+ Clear all dependencies and overrides.
229
+
230
+ Example:
231
+ ```python
232
+ container.clear() # Remove all registered dependencies and overrides
233
+ ```
234
+ """
235
+ with self._lock:
236
+ self._dependencies.clear()
237
+ self._overrides.clear()
238
+
239
+ def has(self, dependency_type: Type[T]) -> bool:
240
+ """
241
+ Check if a dependency exists in the container.
242
+
243
+ Args:
244
+ dependency_type: The type to check
245
+
246
+ Returns:
247
+ True if the dependency exists, False otherwise
248
+
249
+ Example:
250
+ ```python
251
+ if container.has(Database):
252
+ print("Database dependency is registered")
253
+ ```"""
254
+ with self._lock:
255
+ return (
256
+ self.get_key(dependency_type) in self._overrides
257
+ or self.get_key(dependency_type) in self._dependencies
258
+ )
259
+
260
+
261
+ def inject(func: Callable[..., Any]) -> Callable[..., Any]:
262
+ """
263
+ Decorator to inject dependencies based on type hints.
264
+
265
+ This decorator automatically injects dependencies into function parameters
266
+ based on their type hints. It uses types as keys for dependency lookup and
267
+ allows explicit injection by passing dependencies as keyword arguments.
268
+
269
+ Args:
270
+ func: The function to inject dependencies into
271
+
272
+ Returns:
273
+ A function with dependencies injected
274
+
275
+ Example:
276
+ ```python
277
+ @inject
278
+ def get_user(user_id: int, db: Inject[Database]) -> dict:
279
+ return db.query(f"SELECT * FROM users WHERE id = {user_id}")
280
+
281
+ # Dependencies can also be passed explicitly
282
+ get_user(user_id=1, db=Database("postgresql://localhost:5432"))
283
+ ```
284
+ """
285
+
286
+ @wraps(func)
287
+ def wrapper(*args: Any, **kwargs: Any) -> Any:
288
+ container = DependencyContainer()
289
+ type_hints = get_type_hints(func, include_extras=True)
290
+
291
+ for param_name, param_type in type_hints.items():
292
+ # Skip if parameter is already provided explicitly
293
+ if param_name in kwargs:
294
+ continue
295
+
296
+ # Check if it's an Inject type
297
+ if is_inject_type(param_type):
298
+ dependency_type = extract_inject_arg(param_type)
299
+ dependency = container.get(dependency_type)
300
+ if dependency is None:
301
+ raise DependencyNotFoundError(
302
+ f"Dependency of type {dependency_type} not found in container. "
303
+ f"Make sure to register it using container.register({dependency_type.__name__}, ...)"
304
+ )
305
+ kwargs[param_name] = dependency
306
+
307
+ return func(*args, **kwargs)
308
+
309
+ return wrapper
310
+
311
+
312
+ def is_inject_type(tp: Any) -> bool:
313
+ """
314
+ Check if a type is an Inject type or Optional[Inject].
315
+
316
+ Args:
317
+ tp: The type to check
318
+
319
+ Returns:
320
+ True if the type is Inject or Optional[Inject], False otherwise
321
+ """
322
+ origin = get_origin(tp)
323
+ if origin is Inject:
324
+ return True
325
+ if origin is Union:
326
+ args = get_args(tp)
327
+ return any(get_origin(arg) is Inject for arg in args)
328
+ return False
329
+
330
+
331
+ def extract_inject_arg(tp: Any) -> Any:
332
+ """
333
+ Extract the type argument from an Inject type.
334
+
335
+ Args:
336
+ tp: The type to extract from
337
+
338
+ Returns:
339
+ The type argument from the Inject type
340
+
341
+ Raises:
342
+ InvalidInjectionTypeError: If the type is not Inject or Optional[Inject]
343
+ """
344
+ origin = get_origin(tp)
345
+ if origin is Inject:
346
+ return get_args(tp)[0]
347
+ if origin is Union:
348
+ for arg in get_args(tp):
349
+ if get_origin(arg) is Inject:
350
+ return get_args(arg)[0]
351
+ raise InvalidInjectionTypeError(
352
+ f"Type {tp} is not Inject or Optional[Inject]. "
353
+ f"Use Annotated[YourType, 'Inject'] to mark a parameter for injection."
354
+ )
355
+
356
+
357
+ def inject_class_attributes(cls: Type[Any]) -> Type[Any]:
358
+ """
359
+ Decorator to inject dependencies into class-level (static) attributes based on type hints.
360
+
361
+ This decorator automatically injects dependencies into class attributes
362
+ based on their type hints. The dependencies are shared across all instances
363
+ of the class.
364
+
365
+ Args:
366
+ cls: The class to inject dependencies into
367
+
368
+ Returns:
369
+ A class with dependencies injected into its class-level attributes
370
+
371
+ Example:
372
+ ```python
373
+ @inject_class_attributes
374
+ class UserService:
375
+ db: ClassVar[Inject[Database]]
376
+ cache: ClassVar[Inject[Cache]]
377
+
378
+ @classmethod
379
+ def get_user(cls, user_id: int) -> dict:
380
+ return cls.db.query(f"SELECT * FROM users WHERE id = {user_id}")
381
+ ```
382
+ """
383
+ container = DependencyContainer()
384
+ type_hints = get_type_hints(cls, include_extras=True)
385
+
386
+ # Inject dependencies into class attributes
387
+ for attr_name, attr_type in type_hints.items():
388
+ # Skip if attribute is already set
389
+ if hasattr(cls, attr_name):
390
+ continue
391
+
392
+ # Check if it's an Inject type
393
+ if is_inject_type(attr_type):
394
+ dependency_type = extract_inject_arg(attr_type)
395
+ dependency = container.get(dependency_type)
396
+ if dependency is None:
397
+ raise DependencyNotFoundError(
398
+ f"Dependency of type {dependency_type} not found in container. "
399
+ f"Make sure to register it using container.register({dependency_type.__name__}, ...)"
400
+ )
401
+ setattr(cls, attr_name, dependency)
402
+
403
+ return cls