openmetadata-ingestion 1.9.1.0__py3-none-any.whl → 1.9.2.1__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 (793) hide show
  1. metadata/data_quality/validations/models.py +11 -1
  2. metadata/data_quality/validations/runtime_param_setter/param_setter_factory.py +9 -0
  3. metadata/data_quality/validations/runtime_param_setter/table_custom_sql_query_params_setter.py +31 -0
  4. metadata/data_quality/validations/table/base/tableCustomSQLQuery.py +24 -0
  5. metadata/data_quality/validations/table/pandas/tableCustomSQLQuery.py +38 -0
  6. metadata/data_quality/validations/table/sqlalchemy/tableCustomSQLQuery.py +57 -0
  7. metadata/examples/workflows/exasol.yaml +25 -0
  8. metadata/generated/schema/analytics/__init__.py +1 -1
  9. metadata/generated/schema/analytics/basic.py +1 -1
  10. metadata/generated/schema/analytics/reportData.py +1 -1
  11. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  12. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  13. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  14. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  15. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  16. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  17. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  18. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  19. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  20. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  21. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  22. metadata/generated/schema/api/__init__.py +1 -1
  23. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  24. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  25. metadata/generated/schema/api/analytics/__init__.py +1 -1
  26. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  27. metadata/generated/schema/api/automations/__init__.py +1 -1
  28. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  29. metadata/generated/schema/api/bulkAssets.py +1 -1
  30. metadata/generated/schema/api/classification/__init__.py +1 -1
  31. metadata/generated/schema/api/classification/createClassification.py +1 -1
  32. metadata/generated/schema/api/classification/createTag.py +1 -1
  33. metadata/generated/schema/api/classification/loadTags.py +1 -1
  34. metadata/generated/schema/api/createBot.py +1 -1
  35. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  36. metadata/generated/schema/api/createType.py +1 -1
  37. metadata/generated/schema/api/data/__init__.py +1 -1
  38. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  39. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  40. metadata/generated/schema/api/data/createChart.py +1 -1
  41. metadata/generated/schema/api/data/createContainer.py +1 -1
  42. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  43. metadata/generated/schema/api/data/createDashboard.py +1 -1
  44. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  45. metadata/generated/schema/api/data/createDataContract.py +1 -1
  46. metadata/generated/schema/api/data/createDatabase.py +1 -1
  47. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  48. metadata/generated/schema/api/data/createDirectory.py +1 -1
  49. metadata/generated/schema/api/data/createFile.py +1 -1
  50. metadata/generated/schema/api/data/createGlossary.py +1 -1
  51. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  52. metadata/generated/schema/api/data/createMetric.py +1 -1
  53. metadata/generated/schema/api/data/createMlModel.py +1 -1
  54. metadata/generated/schema/api/data/createPipeline.py +1 -1
  55. metadata/generated/schema/api/data/createQuery.py +1 -1
  56. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  57. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  58. metadata/generated/schema/api/data/createSpreadsheet.py +1 -1
  59. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  60. metadata/generated/schema/api/data/createTable.py +1 -1
  61. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  62. metadata/generated/schema/api/data/createTopic.py +1 -1
  63. metadata/generated/schema/api/data/createWorksheet.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 +1 -1
  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/entityRelationship/__init__.py +1 -1
  79. metadata/generated/schema/api/entityRelationship/entityRelationshipDirection.py +1 -1
  80. metadata/generated/schema/api/entityRelationship/esEntityRelationshipData.py +1 -1
  81. metadata/generated/schema/api/entityRelationship/relationshipRef.py +1 -1
  82. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipRequest.py +1 -1
  83. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipResult.py +1 -1
  84. metadata/generated/schema/api/entityRelationship/searchSchemaEntityRelationshipResult.py +1 -1
  85. metadata/generated/schema/api/feed/__init__.py +1 -1
  86. metadata/generated/schema/api/feed/closeTask.py +1 -1
  87. metadata/generated/schema/api/feed/createPost.py +1 -1
  88. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  89. metadata/generated/schema/api/feed/createThread.py +1 -1
  90. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  91. metadata/generated/schema/api/feed/threadCount.py +1 -1
  92. metadata/generated/schema/api/governance/__init__.py +1 -1
  93. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  94. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  95. metadata/generated/schema/api/lineage/__init__.py +1 -1
  96. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  97. metadata/generated/schema/api/lineage/esLineageData.py +1 -1
  98. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  99. metadata/generated/schema/api/lineage/nodeInformation.py +1 -1
  100. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  101. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  102. metadata/generated/schema/api/mcp/__init__.py +1 -1
  103. metadata/generated/schema/api/mcp/mcpToolDefinition.py +1 -1
  104. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  105. metadata/generated/schema/api/policies/__init__.py +1 -1
  106. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  107. metadata/generated/schema/api/scim/__init__.py +1 -1
  108. metadata/generated/schema/api/scim/scimGroup.py +1 -1
  109. metadata/generated/schema/api/scim/scimPatchOp.py +1 -1
  110. metadata/generated/schema/api/scim/scimUser.py +1 -1
  111. metadata/generated/schema/api/search/__init__.py +1 -1
  112. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  113. metadata/generated/schema/api/services/__init__.py +1 -1
  114. metadata/generated/schema/api/services/createApiService.py +1 -1
  115. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  116. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  117. metadata/generated/schema/api/services/createDriveService.py +1 -1
  118. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  119. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  120. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  121. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  122. metadata/generated/schema/api/services/createSearchService.py +1 -1
  123. metadata/generated/schema/api/services/createSecurityService.py +1 -1
  124. metadata/generated/schema/api/services/createStorageService.py +1 -1
  125. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  126. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  127. metadata/generated/schema/api/setOwner.py +1 -1
  128. metadata/generated/schema/api/teams/__init__.py +1 -1
  129. metadata/generated/schema/api/teams/createPersona.py +1 -1
  130. metadata/generated/schema/api/teams/createRole.py +1 -1
  131. metadata/generated/schema/api/teams/createTeam.py +1 -1
  132. metadata/generated/schema/api/teams/createUser.py +1 -1
  133. metadata/generated/schema/api/tests/__init__.py +1 -1
  134. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  135. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  136. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  137. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  138. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  139. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  140. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  141. metadata/generated/schema/api/tests/moveGlossaryTermRequest.py +1 -1
  142. metadata/generated/schema/api/validateGlossaryTagsRequest.py +1 -1
  143. metadata/generated/schema/api/voteRequest.py +1 -1
  144. metadata/generated/schema/auth/__init__.py +1 -1
  145. metadata/generated/schema/auth/basicAuth.py +1 -1
  146. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  147. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  148. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  149. metadata/generated/schema/auth/emailRequest.py +1 -1
  150. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  151. metadata/generated/schema/auth/generateToken.py +1 -1
  152. metadata/generated/schema/auth/jwtAuth.py +1 -1
  153. metadata/generated/schema/auth/loginRequest.py +1 -1
  154. metadata/generated/schema/auth/logoutRequest.py +1 -1
  155. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  156. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  157. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  158. metadata/generated/schema/auth/refreshToken.py +1 -1
  159. metadata/generated/schema/auth/registrationRequest.py +1 -1
  160. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  161. metadata/generated/schema/auth/revokeToken.py +1 -1
  162. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  163. metadata/generated/schema/auth/ssoAuth.py +1 -1
  164. metadata/generated/schema/auth/supportToken.py +1 -1
  165. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  166. metadata/generated/schema/configuration/__init__.py +1 -1
  167. metadata/generated/schema/configuration/aiPlatformConfiguration.py +1 -1
  168. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  169. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  170. metadata/generated/schema/configuration/authConfig.py +1 -1
  171. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  172. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  173. metadata/generated/schema/configuration/cacheConfiguration.py +1 -1
  174. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  175. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  176. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  177. metadata/generated/schema/configuration/entityRulesSettings.py +1 -1
  178. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  182. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  183. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  184. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  185. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  186. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  187. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  188. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  189. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  190. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  191. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  192. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  193. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  194. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  195. metadata/generated/schema/configuration/opsConfig.py +1 -1
  196. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  197. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  198. metadata/generated/schema/configuration/searchSettings.py +1 -1
  199. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  200. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  201. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  202. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  203. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  204. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  205. metadata/generated/schema/dataInsight/__init__.py +1 -1
  206. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  207. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  208. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  209. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  210. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  211. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  212. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  213. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  214. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  215. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  216. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  217. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  218. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  219. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  220. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  221. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  222. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  223. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  224. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  225. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  226. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  227. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  228. metadata/generated/schema/email/__init__.py +1 -1
  229. metadata/generated/schema/email/emailRequest.py +1 -1
  230. metadata/generated/schema/email/emailTemplate.py +1 -1
  231. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  232. metadata/generated/schema/email/smtpSettings.py +1 -1
  233. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  234. metadata/generated/schema/entity/__init__.py +1 -1
  235. metadata/generated/schema/entity/applications/__init__.py +1 -1
  236. metadata/generated/schema/entity/applications/app.py +1 -1
  237. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  238. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  250. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  252. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  253. metadata/generated/schema/entity/applications/configuration/external/automator/propagationStopConfig.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  258. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  260. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  262. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  263. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  264. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  265. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  266. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  267. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  268. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  269. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  270. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  271. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  272. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  273. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  274. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  275. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  276. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  277. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  278. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  279. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  280. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  281. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  282. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  283. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  284. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  285. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  286. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  287. metadata/generated/schema/entity/automations/__init__.py +1 -1
  288. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  289. metadata/generated/schema/entity/automations/workflow.py +1 -1
  290. metadata/generated/schema/entity/bot.py +1 -1
  291. metadata/generated/schema/entity/classification/__init__.py +1 -1
  292. metadata/generated/schema/entity/classification/classification.py +1 -1
  293. metadata/generated/schema/entity/classification/tag.py +1 -1
  294. metadata/generated/schema/entity/data/__init__.py +1 -1
  295. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  296. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  297. metadata/generated/schema/entity/data/chart.py +1 -1
  298. metadata/generated/schema/entity/data/container.py +1 -1
  299. metadata/generated/schema/entity/data/dashboard.py +1 -1
  300. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  301. metadata/generated/schema/entity/data/dataContract.py +1 -1
  302. metadata/generated/schema/entity/data/database.py +1 -1
  303. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  304. metadata/generated/schema/entity/data/directory.py +1 -1
  305. metadata/generated/schema/entity/data/file.py +1 -1
  306. metadata/generated/schema/entity/data/glossary.py +1 -1
  307. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  308. metadata/generated/schema/entity/data/metric.py +1 -1
  309. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  310. metadata/generated/schema/entity/data/pipeline.py +1 -1
  311. metadata/generated/schema/entity/data/query.py +1 -1
  312. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  313. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  314. metadata/generated/schema/entity/data/report.py +1 -1
  315. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  316. metadata/generated/schema/entity/data/spreadsheet.py +1 -1
  317. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  318. metadata/generated/schema/entity/data/table.py +1 -1
  319. metadata/generated/schema/entity/data/topic.py +1 -1
  320. metadata/generated/schema/entity/data/worksheet.py +1 -1
  321. metadata/generated/schema/entity/datacontract/__init__.py +1 -1
  322. metadata/generated/schema/entity/datacontract/dataContractResult.py +1 -1
  323. metadata/generated/schema/entity/datacontract/qualityValidation.py +1 -1
  324. metadata/generated/schema/entity/datacontract/schemaValidation.py +1 -1
  325. metadata/generated/schema/entity/datacontract/semanticsValidation.py +1 -1
  326. metadata/generated/schema/entity/datacontract/slaValidation.py +1 -1
  327. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  328. metadata/generated/schema/entity/docStore/document.py +1 -1
  329. metadata/generated/schema/entity/domains/__init__.py +1 -1
  330. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  331. metadata/generated/schema/entity/domains/domain.py +1 -1
  332. metadata/generated/schema/entity/events/__init__.py +1 -1
  333. metadata/generated/schema/entity/events/webhook.py +1 -1
  334. metadata/generated/schema/entity/feed/__init__.py +1 -1
  335. metadata/generated/schema/entity/feed/assets.py +1 -1
  336. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  337. metadata/generated/schema/entity/feed/description.py +1 -1
  338. metadata/generated/schema/entity/feed/domain.py +1 -1
  339. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  340. metadata/generated/schema/entity/feed/owner.py +1 -1
  341. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  342. metadata/generated/schema/entity/feed/tag.py +1 -1
  343. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  344. metadata/generated/schema/entity/feed/thread.py +1 -1
  345. metadata/generated/schema/entity/policies/__init__.py +1 -1
  346. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  347. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  348. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  349. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  350. metadata/generated/schema/entity/policies/filters.py +1 -1
  351. metadata/generated/schema/entity/policies/policy.py +1 -1
  352. metadata/generated/schema/entity/services/__init__.py +1 -1
  353. metadata/generated/schema/entity/services/apiService.py +1 -1
  354. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  355. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  356. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  358. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  359. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  360. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  361. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  362. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  363. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/dashboard/grafanaConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  374. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  375. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  376. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  377. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/dashboard/thoughtSpotConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/epicConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +4 -1
  421. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/database/ssasConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  458. metadata/generated/schema/entity/services/connections/drive/__init__.py +1 -1
  459. metadata/generated/schema/entity/services/connections/drive/customDriveConnection.py +1 -1
  460. metadata/generated/schema/entity/services/connections/drive/googleDriveConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/drive/sharePointConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  463. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  469. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  470. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  477. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  480. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  482. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  483. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  489. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  491. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  493. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  494. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  495. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  496. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  497. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  498. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  499. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  500. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  501. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  502. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  503. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  504. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  505. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  506. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  507. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  508. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  509. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  510. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  511. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  512. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  513. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  514. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  515. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  516. metadata/generated/schema/entity/services/connections/security/__init__.py +1 -1
  517. metadata/generated/schema/entity/services/connections/security/ranger/__init__.py +1 -1
  518. metadata/generated/schema/entity/services/connections/security/ranger/basicAuth.py +1 -1
  519. metadata/generated/schema/entity/services/connections/security/rangerConnection.py +1 -1
  520. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  521. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  522. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  523. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  524. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  525. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  526. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  527. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  528. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  529. metadata/generated/schema/entity/services/databaseService.py +1 -1
  530. metadata/generated/schema/entity/services/driveService.py +1 -1
  531. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  532. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  533. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  534. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  535. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  536. metadata/generated/schema/entity/services/messagingService.py +1 -1
  537. metadata/generated/schema/entity/services/metadataService.py +1 -1
  538. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  539. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  540. metadata/generated/schema/entity/services/searchService.py +1 -1
  541. metadata/generated/schema/entity/services/securityService.py +1 -1
  542. metadata/generated/schema/entity/services/serviceType.py +1 -1
  543. metadata/generated/schema/entity/services/storageService.py +1 -1
  544. metadata/generated/schema/entity/teams/__init__.py +1 -1
  545. metadata/generated/schema/entity/teams/persona.py +1 -1
  546. metadata/generated/schema/entity/teams/role.py +1 -1
  547. metadata/generated/schema/entity/teams/team.py +1 -1
  548. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  549. metadata/generated/schema/entity/teams/user.py +1 -1
  550. metadata/generated/schema/entity/type.py +1 -1
  551. metadata/generated/schema/entity/utils/__init__.py +1 -1
  552. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  553. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  554. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  555. metadata/generated/schema/events/__init__.py +1 -1
  556. metadata/generated/schema/events/alertMetrics.py +1 -1
  557. metadata/generated/schema/events/api/__init__.py +1 -1
  558. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  559. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  560. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  561. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  562. metadata/generated/schema/events/api/typedEvent.py +1 -1
  563. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  564. metadata/generated/schema/events/eventFilterRule.py +1 -1
  565. metadata/generated/schema/events/eventSubscription.py +1 -1
  566. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  567. metadata/generated/schema/events/failedEvent.py +1 -1
  568. metadata/generated/schema/events/failedEventResponse.py +1 -1
  569. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  570. metadata/generated/schema/events/statusContext.py +1 -1
  571. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  572. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  573. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  574. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  575. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  576. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  577. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  578. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  579. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  580. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  581. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  582. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  583. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  584. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  585. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  586. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  587. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  588. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  589. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  590. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  591. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  592. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  593. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  594. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  595. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  596. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  597. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  598. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  599. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  600. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  601. metadata/generated/schema/jobs/__init__.py +1 -1
  602. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  603. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  604. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  605. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  606. metadata/generated/schema/metadataIngestion/application.py +1 -1
  607. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  608. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  609. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  610. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  611. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  612. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  613. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  614. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  615. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  616. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  617. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  618. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  619. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  620. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  621. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  622. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  623. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  624. metadata/generated/schema/metadataIngestion/driveServiceMetadataPipeline.py +1 -1
  625. metadata/generated/schema/metadataIngestion/engine/__init__.py +1 -1
  626. metadata/generated/schema/metadataIngestion/engine/nativeEngineConfig.py +1 -1
  627. metadata/generated/schema/metadataIngestion/engine/sparkEngineConfig.py +1 -1
  628. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  629. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  630. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  631. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  632. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  633. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  634. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  635. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  636. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  637. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  638. metadata/generated/schema/metadataIngestion/securityServiceMetadataPipeline.py +1 -1
  639. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  640. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  641. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  642. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  643. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  644. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  645. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  646. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  647. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  648. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  649. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  650. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  651. metadata/generated/schema/monitoring/__init__.py +1 -1
  652. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  653. metadata/generated/schema/scim/__init__.py +1 -1
  654. metadata/generated/schema/scim/scimConfiguration.py +1 -1
  655. metadata/generated/schema/search/__init__.py +1 -1
  656. metadata/generated/schema/search/aggregationRequest.py +1 -1
  657. metadata/generated/schema/search/searchRequest.py +1 -1
  658. metadata/generated/schema/security/__init__.py +1 -1
  659. metadata/generated/schema/security/client/__init__.py +1 -1
  660. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  661. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  662. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  663. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  664. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  665. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  666. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  667. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  668. metadata/generated/schema/security/credentials/__init__.py +1 -1
  669. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  670. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  671. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  672. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  673. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  674. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  675. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  676. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  677. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  678. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  679. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  680. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  681. metadata/generated/schema/security/credentials/kubernetesCredentials.py +1 -1
  682. metadata/generated/schema/security/sasl/__init__.py +1 -1
  683. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  684. metadata/generated/schema/security/secrets/__init__.py +1 -1
  685. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  686. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  687. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  688. metadata/generated/schema/security/securityConfiguration.py +1 -1
  689. metadata/generated/schema/security/ssl/__init__.py +1 -1
  690. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  691. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  692. metadata/generated/schema/settings/__init__.py +1 -1
  693. metadata/generated/schema/settings/settings.py +1 -1
  694. metadata/generated/schema/system/__init__.py +1 -1
  695. metadata/generated/schema/system/entityError.py +1 -1
  696. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  697. metadata/generated/schema/system/indexingError.py +1 -1
  698. metadata/generated/schema/system/limitsResponse.py +1 -1
  699. metadata/generated/schema/system/ui/__init__.py +1 -1
  700. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  701. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  702. metadata/generated/schema/system/ui/page.py +1 -1
  703. metadata/generated/schema/system/ui/tab.py +1 -1
  704. metadata/generated/schema/system/ui/uiCustomization.py +1 -1
  705. metadata/generated/schema/system/validationResponse.py +1 -1
  706. metadata/generated/schema/tests/__init__.py +1 -1
  707. metadata/generated/schema/tests/assigned.py +1 -1
  708. metadata/generated/schema/tests/basic.py +1 -1
  709. metadata/generated/schema/tests/customMetric.py +1 -1
  710. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  711. metadata/generated/schema/tests/resolved.py +1 -1
  712. metadata/generated/schema/tests/testCase.py +1 -1
  713. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  714. metadata/generated/schema/tests/testDefinition.py +1 -1
  715. metadata/generated/schema/tests/testSuite.py +1 -1
  716. metadata/generated/schema/type/__init__.py +1 -1
  717. metadata/generated/schema/type/apiSchema.py +1 -1
  718. metadata/generated/schema/type/assetCertification.py +1 -1
  719. metadata/generated/schema/type/auditLog.py +1 -1
  720. metadata/generated/schema/type/basic.py +1 -1
  721. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  722. metadata/generated/schema/type/changeEvent.py +1 -1
  723. metadata/generated/schema/type/changeEventType.py +1 -1
  724. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  725. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  726. metadata/generated/schema/type/contractExecutionStatus.py +1 -1
  727. metadata/generated/schema/type/csvDocumentation.py +1 -1
  728. metadata/generated/schema/type/csvErrorType.py +1 -1
  729. metadata/generated/schema/type/csvFile.py +1 -1
  730. metadata/generated/schema/type/csvImportResult.py +1 -1
  731. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  732. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  733. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  734. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  735. metadata/generated/schema/type/customProperty.py +1 -1
  736. metadata/generated/schema/type/dailyCount.py +1 -1
  737. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  738. metadata/generated/schema/type/entityHierarchy.py +1 -1
  739. metadata/generated/schema/type/entityHistory.py +1 -1
  740. metadata/generated/schema/type/entityLineage.py +1 -1
  741. metadata/generated/schema/type/entityReference.py +1 -1
  742. metadata/generated/schema/type/entityReferenceList.py +1 -1
  743. metadata/generated/schema/type/entityRelationship/__init__.py +1 -1
  744. metadata/generated/schema/type/entityRelationship/nodeInformation.py +1 -1
  745. metadata/generated/schema/type/entityUsage.py +1 -1
  746. metadata/generated/schema/type/filterPattern.py +1 -1
  747. metadata/generated/schema/type/function.py +1 -1
  748. metadata/generated/schema/type/include.py +1 -1
  749. metadata/generated/schema/type/jdbcConnection.py +1 -1
  750. metadata/generated/schema/type/layerPaging.py +1 -1
  751. metadata/generated/schema/type/lifeCycle.py +1 -1
  752. metadata/generated/schema/type/paging.py +1 -1
  753. metadata/generated/schema/type/personaPreferences.py +1 -1
  754. metadata/generated/schema/type/profile.py +1 -1
  755. metadata/generated/schema/type/queryParserData.py +1 -1
  756. metadata/generated/schema/type/reaction.py +1 -1
  757. metadata/generated/schema/type/schedule.py +1 -1
  758. metadata/generated/schema/type/schema.py +1 -1
  759. metadata/generated/schema/type/tableQuery.py +1 -1
  760. metadata/generated/schema/type/tableUsageCount.py +1 -1
  761. metadata/generated/schema/type/tagLabel.py +1 -1
  762. metadata/generated/schema/type/usageDetails.py +1 -1
  763. metadata/generated/schema/type/usageRequest.py +1 -1
  764. metadata/generated/schema/type/votes.py +1 -1
  765. metadata/ingestion/models/custom_basemodel_validation.py +169 -43
  766. metadata/ingestion/models/custom_pydantic.py +6 -19
  767. metadata/ingestion/source/database/databricks/connection.py +36 -8
  768. metadata/ingestion/source/database/exasol/connection.py +6 -0
  769. metadata/ingestion/source/database/exasol/lineage.py +24 -0
  770. metadata/ingestion/source/database/exasol/metadata.py +6 -0
  771. metadata/ingestion/source/database/exasol/queries.py +22 -0
  772. metadata/ingestion/source/database/exasol/query_parser.py +33 -0
  773. metadata/ingestion/source/database/exasol/service_spec.py +5 -1
  774. metadata/ingestion/source/database/iceberg/models.py +22 -13
  775. metadata/ingestion/source/database/saphana/cdata_parser.py +220 -49
  776. metadata/ingestion/source/database/saphana/lineage.py +12 -0
  777. metadata/ingestion/source/database/saphana/queries.py +7 -0
  778. metadata/ingestion/source/database/snowflake/constants.py +3 -0
  779. metadata/ingestion/source/database/snowflake/metadata.py +110 -13
  780. metadata/ingestion/source/database/snowflake/queries.py +13 -1
  781. metadata/ingestion/source/database/unitycatalog/connection.py +7 -8
  782. metadata/ingestion/source/database/unitycatalog/metadata.py +5 -4
  783. metadata/ingestion/source/pipeline/nifi/metadata.py +62 -5
  784. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +6 -0
  785. metadata/profiler/orm/functions/table_metric_computer.py +1 -10
  786. metadata/profiler/processor/core.py +1 -1
  787. metadata/utils/fqn.py +27 -3
  788. {openmetadata_ingestion-1.9.1.0.dist-info → openmetadata_ingestion-1.9.2.1.dist-info}/METADATA +536 -529
  789. {openmetadata_ingestion-1.9.1.0.dist-info → openmetadata_ingestion-1.9.2.1.dist-info}/RECORD +793 -789
  790. {openmetadata_ingestion-1.9.1.0.dist-info → openmetadata_ingestion-1.9.2.1.dist-info}/LICENSE +0 -0
  791. {openmetadata_ingestion-1.9.1.0.dist-info → openmetadata_ingestion-1.9.2.1.dist-info}/WHEEL +0 -0
  792. {openmetadata_ingestion-1.9.1.0.dist-info → openmetadata_ingestion-1.9.2.1.dist-info}/entry_points.txt +0 -0
  793. {openmetadata_ingestion-1.9.1.0.dist-info → openmetadata_ingestion-1.9.2.1.dist-info}/top_level.txt +0 -0
@@ -18,9 +18,10 @@ import xml.etree.ElementTree as ET
18
18
  from collections import defaultdict
19
19
  from enum import Enum
20
20
  from functools import lru_cache
21
- from typing import Dict, Iterable, List, NewType, Optional, Set
21
+ from typing import Dict, Iterable, List, NewType, Optional, Set, Tuple
22
22
 
23
23
  from pydantic import Field, computed_field
24
+ from sqlalchemy.engine import Engine
24
25
  from typing_extensions import Annotated
25
26
 
26
27
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
@@ -44,6 +45,7 @@ from metadata.ingestion.source.database.saphana.models import (
44
45
  SYS_BIC_SCHEMA_NAME,
45
46
  ViewType,
46
47
  )
48
+ from metadata.ingestion.source.database.saphana.queries import SAPHANA_SCHEMA_MAPPING
47
49
  from metadata.utils import fqn
48
50
  from metadata.utils.constants import ENTITY_REFERENCE_TYPE_MAP
49
51
  from metadata.utils.dispatch import enum_register
@@ -158,6 +160,7 @@ class DataSource(BaseModel):
158
160
  def get_entity(
159
161
  self,
160
162
  metadata: OpenMetadata,
163
+ engine: Engine,
161
164
  service_name: str,
162
165
  ) -> Table:
163
166
  """Build the Entity Reference for this DataSource"""
@@ -168,13 +171,14 @@ class DataSource(BaseModel):
168
171
  )
169
172
 
170
173
  if self.source_type == ViewType.DATA_BASE_TABLE:
174
+ schema_name = _get_mapped_schema(engine=engine, schema_name=self.location)
171
175
  # The source is a table, so the location is the schema
172
176
  fqn_ = fqn.build(
173
177
  metadata=metadata,
174
178
  entity_type=Table,
175
179
  service_name=service_name,
176
180
  database_name=None, # TODO: Can we assume HXE?
177
- schema_name=self.location,
181
+ schema_name=schema_name,
178
182
  table_name=self.name,
179
183
  )
180
184
  else:
@@ -243,17 +247,67 @@ class ParsedLineage(BaseModel):
243
247
  return id(self)
244
248
 
245
249
  def to_request(
246
- self, metadata: OpenMetadata, service_name: str, to_entity: Table
250
+ self,
251
+ metadata: OpenMetadata,
252
+ engine: Engine,
253
+ service_name: str,
254
+ to_entity: Table,
247
255
  ) -> Iterable[Either[AddLineageRequest]]:
248
256
  """Given the target entity, build the AddLineageRequest based on the sources in `self`"""
249
257
  for source in self.sources:
250
258
  try:
251
259
  source_table = source.get_entity(
252
- metadata=metadata, service_name=service_name
260
+ metadata=metadata, engine=engine, service_name=service_name
253
261
  )
254
262
  if not source_table:
255
263
  logger.warning(f"Can't find table for source [{source}]")
256
264
  continue
265
+
266
+ column_lineage = []
267
+ for mapping in self.mappings:
268
+ if mapping.data_source != source:
269
+ continue
270
+
271
+ from_columns = []
272
+ for source_col in mapping.sources:
273
+ from_column_fqn = get_column_fqn(
274
+ table_entity=source_table,
275
+ column=source_col,
276
+ )
277
+ if not from_column_fqn:
278
+ logger.warning(
279
+ f"Can't find source column [{source_col}] in [{source_table}]"
280
+ )
281
+ continue
282
+
283
+ from_columns.append(
284
+ FullyQualifiedEntityName(
285
+ from_column_fqn,
286
+ )
287
+ )
288
+
289
+ to_column_fqn = get_column_fqn(
290
+ table_entity=to_entity,
291
+ column=mapping.target,
292
+ )
293
+ if not to_column_fqn:
294
+ logger.warning(
295
+ f"Can't find target column [{mapping.target}] in [{to_entity}]."
296
+ f" For source columns: {from_columns}"
297
+ )
298
+ continue
299
+
300
+ to_column = FullyQualifiedEntityName(
301
+ to_column_fqn,
302
+ )
303
+ column_lineage.append(
304
+ ColumnLineage(
305
+ fromColumns=from_columns,
306
+ toColumn=to_column,
307
+ function=mapping.formula,
308
+ )
309
+ )
310
+
257
311
  yield Either(
258
312
  right=AddLineageRequest(
259
313
  edge=EntitiesEdge(
@@ -267,30 +321,7 @@ class ParsedLineage(BaseModel):
267
321
  ),
268
322
  lineageDetails=LineageDetails(
269
323
  source=Source.ViewLineage,
270
- columnsLineage=[
271
- ColumnLineage(
272
- fromColumns=[
273
- FullyQualifiedEntityName(
274
- get_column_fqn(
275
- table_entity=source_table,
276
- column=source_col,
277
- )
278
- )
279
- for source_col in mapping.sources
280
- ],
281
- toColumn=FullyQualifiedEntityName(
282
- get_column_fqn(
283
- table_entity=to_entity,
284
- column=mapping.target,
285
- )
286
- ),
287
- function=mapping.formula
288
- if mapping.formula
289
- else None,
290
- )
291
- for mapping in self.mappings
292
- if mapping.data_source == source
293
- ],
324
+ columnsLineage=column_lineage,
294
325
  ),
295
326
  )
296
327
  )
@@ -339,6 +370,39 @@ def _get_column_datasources(
339
370
  }
340
371
 
341
372
 
373
+ def _get_column_datasources_with_names(
374
+ entry: ET.Element, datasource_map: Optional[DataSourceMap] = None
375
+ ) -> List[Tuple[DataSource, str]]:
376
+ """
377
+ Get the DataSource and the actual source column name after traversal.
378
+ Returns a list of tuples (DataSource, column_name).
379
+ """
380
+ if (
381
+ datasource_map
382
+ and entry.get(CDATAKeys.COLUMN_OBJECT_NAME.value) in datasource_map
383
+ ):
384
+ # Traverse to get the actual sources and column names
385
+ ds_col_pairs = _traverse_ds_with_columns(
386
+ current_column=entry.get(CDATAKeys.COLUMN_NAME.value),
387
+ ds_origin_list=[],
388
+ current_ds=datasource_map[entry.get(CDATAKeys.COLUMN_OBJECT_NAME.value)],
389
+ datasource_map=datasource_map,
390
+ )
391
+ return ds_col_pairs
392
+
393
+ # If we don't have any logical sources, use the column name as-is
394
+ return [
395
+ (
396
+ DataSource(
397
+ name=entry.get(CDATAKeys.COLUMN_OBJECT_NAME.value),
398
+ location=entry.get(CDATAKeys.SCHEMA_NAME.value),
399
+ source_type=ViewType.DATA_BASE_TABLE,
400
+ ),
401
+ entry.get(CDATAKeys.COLUMN_NAME.value),
402
+ )
403
+ ]
404
+
405
+
342
406
  def _traverse_ds(
343
407
  current_column: str,
344
408
  ds_origin_list: List[DataSource],
@@ -355,7 +419,9 @@ def _traverse_ds(
355
419
 
356
420
  else:
357
421
  # Based on our current column, find the parents from the mappings in the current_ds
358
- current_ds_mapping: DataSourceMapping = current_ds.mapping.get(current_column)
422
+ current_ds_mapping: Optional[DataSourceMapping] = current_ds.mapping.get(
423
+ current_column
424
+ )
359
425
 
360
426
  if current_ds_mapping:
361
427
  for parent in current_ds_mapping.parents:
@@ -381,6 +447,54 @@ def _traverse_ds(
381
447
  return ds_origin_list
382
448
 
383
449
 
450
+ def _traverse_ds_with_columns(
451
+ current_column: str,
452
+ ds_origin_list: List[Tuple[DataSource, str]],
453
+ current_ds: DataSource,
454
+ datasource_map: Optional[DataSourceMap],
455
+ ) -> List[Tuple[DataSource, str]]:
456
+ """
457
+ Traverse the ds dict jumping from target -> source columns and getting the right parent.
458
+ We keep inspecting current datasources and will append to the origin list the ones
459
+ that are not LOGICAL, along with the final column name.
460
+ Returns a list of tuples (DataSource, column_name).
461
+ """
462
+ if current_ds.source_type != ViewType.LOGICAL:
463
+ # This is a final datasource, append it with the current column name
464
+ ds_origin_list.append((current_ds, current_column))
465
+
466
+ else:
467
+ # Based on our current column, find the parents from the mappings in the current_ds
468
+ current_ds_mapping: Optional[DataSourceMapping] = current_ds.mapping.get(
469
+ current_column
470
+ )
471
+
472
+ if current_ds_mapping:
473
+ for parent in current_ds_mapping.parents:
474
+ parent_ds = datasource_map.get(parent.parent)
475
+ if not parent_ds:
476
+ raise CDATAParsingError(
477
+ f"Can't find parent [{parent.parent}] for column [{current_column}]"
478
+ )
479
+
480
+ # Traverse from the source column in the parent mapping
481
+ # Note: parent.source is the column name in the parent datasource
482
+ _traverse_ds_with_columns(
483
+ current_column=parent.source,
484
+ ds_origin_list=ds_origin_list,
485
+ current_ds=parent_ds,
486
+ datasource_map=datasource_map,
487
+ )
488
+ else:
489
+ # Current column not in mapping. This can happen for calculated view attributes
490
+ logger.info(
491
+ f"Can't find mapping for column [{current_column}] in [{current_ds}]. "
492
+ f"We still have to implement `calculatedViewAttributes`."
493
+ )
494
+
495
+ return ds_origin_list
496
+
497
+
384
498
  def _read_attributes(
385
499
  tree: ET.Element, ns: dict, datasource_map: Optional[DataSourceMap] = None
386
500
  ) -> ParsedLineage:
@@ -392,17 +506,20 @@ def _read_attributes(
392
506
 
393
507
  for attribute in attribute_list.findall(CDATAKeys.ATTRIBUTE.value, ns):
394
508
  key_mapping = attribute.find(CDATAKeys.KEY_MAPPING.value, ns)
395
- data_sources = _get_column_datasources(
509
+
510
+ # Get the actual source datasources and their column names
511
+ data_sources_with_columns = _get_column_datasources_with_names(
396
512
  entry=key_mapping, datasource_map=datasource_map
397
513
  )
514
+
398
515
  attr_lineage = ParsedLineage(
399
516
  mappings=[
400
517
  ColumnMapping(
401
- data_source=ds,
402
- sources=[key_mapping.get(CDATAKeys.COLUMN_NAME.value)],
518
+ data_source=ds_info[0], # The datasource
519
+ sources=[ds_info[1]], # The actual source column name
403
520
  target=attribute.get(CDATAKeys.ID.value),
404
521
  )
405
- for ds in data_sources
522
+ for ds_info in data_sources_with_columns
406
523
  ]
407
524
  )
408
525
  lineage += attr_lineage
@@ -456,17 +573,20 @@ def _read_base_measures(
456
573
 
457
574
  for measure in base_measures.findall(CDATAKeys.MEASURE.value, ns):
458
575
  measure_mapping = measure.find(CDATAKeys.MEASURE_MAPPING.value, ns)
459
- data_sources = _get_column_datasources(
576
+
577
+ # Get the actual source datasources and their column names
578
+ data_sources_with_columns = _get_column_datasources_with_names(
460
579
  entry=measure_mapping, datasource_map=datasource_map
461
580
  )
581
+
462
582
  measure_lineage = ParsedLineage(
463
583
  mappings=[
464
584
  ColumnMapping(
465
- data_source=ds,
466
- sources=[measure_mapping.get(CDATAKeys.COLUMN_NAME.value)],
585
+ data_source=ds_info[0], # The datasource
586
+ sources=[ds_info[1]], # The actual source column name
467
587
  target=measure.get(CDATAKeys.ID.value),
468
588
  )
469
- for ds in data_sources
589
+ for ds_info in data_sources_with_columns
470
590
  ]
471
591
  )
472
592
  lineage += measure_lineage
@@ -519,7 +639,12 @@ def _(cdata: str) -> ParsedLineage:
519
639
  tree = ET.fromstring(cdata)
520
640
  measure_group = tree.find(CDATAKeys.PRIVATE_MEASURE_GROUP.value, ns)
521
641
  # TODO: Handle lineage from calculatedMeasures, restrictedMeasures and sharedDimensions
522
- return _read_attributes(measure_group, ns)
642
+ attribute_lineage = _read_attributes(measure_group, ns)
643
+ base_measure_lineage = _read_base_measures(
644
+ tree=measure_group, ns=ns, datasource_map=None
645
+ )
646
+
647
+ return attribute_lineage + base_measure_lineage
523
648
 
524
649
 
525
650
  @parse_registry.add(ViewType.ATTRIBUTE_VIEW.value)
@@ -643,10 +768,17 @@ def _parse_cv_data_sources(tree: ET.Element, ns: dict) -> DataSourceMap:
643
768
 
644
769
  for cv in calculation_views.findall(CDATAKeys.CALCULATION_VIEW.value, ns):
645
770
  mappings = _build_mappings(calculation_view=cv, ns=ns)
771
+ # Build mapping dict, keeping only the first occurrence of each target
772
+ # (subsequent ones are typically for join conditions)
773
+ mapping_dict = {}
774
+ for mapping in mappings:
775
+ if mapping.target not in mapping_dict:
776
+ mapping_dict[mapping.target] = mapping
777
+
646
778
  datasource_map[cv.get(CDATAKeys.ID.value)] = DataSource(
647
779
  name=cv.get(CDATAKeys.ID.value),
648
780
  location=None,
649
- mapping={mapping.target: mapping for mapping in mappings},
781
+ mapping=mapping_dict,
650
782
  source_type=ViewType.LOGICAL,
651
783
  )
652
784
 
@@ -690,28 +822,48 @@ def _build_mappings(calculation_view: ET.Element, ns: dict) -> List[DataSourceMa
690
822
  def _build_input_mappings(
691
823
  calculation_view: ET.Element, ns: dict
692
824
  ) -> List[DataSourceMapping]:
693
- """Map input nodes"""
825
+ """
826
+ Map input nodes preserving the exact target-to-source relationships.
827
+
828
+ IMPORTANT: Each target column should map to exactly one source.
829
+ When there are multiple inputs with the same source column name,
830
+ they map to different target columns (e.g., PRICE vs PRICE_1).
831
+ """
694
832
  mappings = []
695
833
  for input_node in calculation_view.findall(CDATAKeys.INPUT.value, ns):
834
+ input_node_name = input_node.get(CDATAKeys.NODE.value).replace("#", "")
835
+
696
836
  for mapping in input_node.findall(CDATAKeys.MAPPING.value, ns):
697
- if mapping.get(CDATAKeys.SOURCE.value) and mapping.get(
698
- CDATAKeys.TARGET.value
699
- ):
837
+ source_col = mapping.get(CDATAKeys.SOURCE.value)
838
+ target_col = mapping.get(CDATAKeys.TARGET.value)
839
+
840
+ if source_col and target_col:
841
+ # Each target column gets its own mapping entry
842
+ # We don't group here because each target maps to a specific source
700
843
  mappings.append(
701
844
  DataSourceMapping(
702
- target=mapping.get(CDATAKeys.TARGET.value),
845
+ target=target_col,
703
846
  parents=[
704
847
  ParentSource(
705
- source=mapping.get(CDATAKeys.SOURCE.value),
706
- parent=input_node.get(CDATAKeys.NODE.value).replace(
707
- "#", ""
708
- ),
848
+ source=source_col,
849
+ parent=input_node_name,
709
850
  )
710
851
  ],
711
852
  )
712
853
  )
713
854
 
714
- return _group_mappings(mappings)
855
+ # For Union views, we need to group because multiple inputs can map to the same target
856
+ # For Join views, we should NOT group because each target has a unique source
857
+ calculation_view_type = calculation_view.get(
858
+ "{http://www.w3.org/2001/XMLSchema-instance}type"
859
+ )
860
+
861
+ if calculation_view_type and "UnionView" in calculation_view_type:
862
+ return _group_mappings(mappings)
863
+ else:
864
+ # For Join, Projection, Aggregation views - each target has exactly one source
865
+ # We still return the list but don't group
866
+ return mappings
715
867
 
716
868
 
717
869
  def _build_cv_attributes(
@@ -770,3 +922,22 @@ def _group_mappings(mappings: List[DataSourceMapping]) -> List[DataSourceMapping
770
922
  ]
771
923
 
772
924
  return grouped_data
925
+
926
+
927
+ @lru_cache(maxsize=256)
928
+ def _get_mapped_schema(
929
+ engine: Engine,
930
+ schema_name: str,
931
+ ) -> str:
932
+ """
933
+ Get the physical schema for a given authoring schema
934
+ If schema is not mapped, then consider it as the physical schema
935
+ """
936
+ with engine.connect() as conn:
937
+ result = conn.execute(
938
+ SAPHANA_SCHEMA_MAPPING.format(authoring_schema=schema_name)
939
+ )
940
+ row = result.fetchone()
941
+ if row is not None:
942
+ return row[0]
943
+ return schema_name
@@ -37,6 +37,7 @@ from metadata.ingestion.source.database.saphana.cdata_parser import (
37
37
  )
38
38
  from metadata.ingestion.source.database.saphana.models import SapHanaLineageModel
39
39
  from metadata.ingestion.source.database.saphana.queries import SAPHANA_LINEAGE
40
+ from metadata.utils.filters import filter_by_table
40
41
  from metadata.utils.logger import ingestion_logger
41
42
  from metadata.utils.ssl_manager import get_ssl_connection
42
43
 
@@ -108,6 +109,16 @@ class SaphanaLineageSource(Source):
108
109
  try:
109
110
  lineage_model = SapHanaLineageModel.validate(dict(row))
110
111
 
112
+ if filter_by_table(
113
+ self.source_config.tableFilterPattern,
114
+ lineage_model.object_name,
115
+ ):
116
+ self.status.filter(
117
+ lineage_model.object_name,
118
+ "View Object Filtered Out",
119
+ )
120
+ continue
121
+
111
122
  yield from self.parse_cdata(
112
123
  metadata=self.metadata, lineage_model=lineage_model
113
124
  )
@@ -138,6 +149,7 @@ class SaphanaLineageSource(Source):
138
149
  if to_entity:
139
150
  yield from parsed_lineage.to_request(
140
151
  metadata=metadata,
152
+ engine=self.engine,
141
153
  service_name=self.config.serviceName,
142
154
  to_entity=to_entity,
143
155
  )
@@ -21,3 +21,10 @@ SELECT
21
21
  FROM _SYS_REPO.ACTIVE_OBJECT
22
22
  WHERE OBJECT_SUFFIX IN ('analyticview', 'attributeview', 'calculationview');
23
23
  """
24
+
25
+ SAPHANA_SCHEMA_MAPPING = """
26
+ SELECT
27
+ PHYSICAL_SCHEMA
28
+ FROM _SYS_BI.M_SCHEMA_MAPPING
29
+ WHERE AUTHORING_SCHEMA = '{authoring_schema}';
30
+ """
@@ -46,3 +46,6 @@ DEFAULT_STREAM_COLUMNS = [
46
46
  "primary_key": False,
47
47
  },
48
48
  ]
49
+
50
+ SNOWFLAKE_TAG_DESCRIPTION = "SNOWFLAKE TAG VALUE"
51
+ SNOWFLAKE_CLASSIFICATION_DESCRIPTION = "SNOWFLAKE TAG NAME"
@@ -54,6 +54,7 @@ from metadata.generated.schema.type.basic import (
54
54
  SourceUrl,
55
55
  )
56
56
  from metadata.generated.schema.type.entityReferenceList import EntityReferenceList
57
+ from metadata.generated.schema.type.tagLabel import TagLabel
57
58
  from metadata.ingestion.api.delete import delete_entity_by_name
58
59
  from metadata.ingestion.api.models import Either
59
60
  from metadata.ingestion.api.steps import InvalidSourceException
@@ -73,6 +74,8 @@ from metadata.ingestion.source.database.incremental_metadata_extraction import (
73
74
  from metadata.ingestion.source.database.multi_db_source import MultiDBSource
74
75
  from metadata.ingestion.source.database.snowflake.constants import (
75
76
  DEFAULT_STREAM_COLUMNS,
77
+ SNOWFLAKE_CLASSIFICATION_DESCRIPTION,
78
+ SNOWFLAKE_TAG_DESCRIPTION,
76
79
  )
77
80
  from metadata.ingestion.source.database.snowflake.models import (
78
81
  STORED_PROC_LANGUAGE_MAP,
@@ -81,7 +84,8 @@ from metadata.ingestion.source.database.snowflake.models import (
81
84
  from metadata.ingestion.source.database.snowflake.queries import (
82
85
  SNOWFLAKE_DESC_FUNCTION,
83
86
  SNOWFLAKE_DESC_STORED_PROCEDURE,
84
- SNOWFLAKE_FETCH_ALL_TAGS,
87
+ SNOWFLAKE_FETCH_SCHEMA_TAGS,
88
+ SNOWFLAKE_FETCH_TABLE_TAGS,
85
89
  SNOWFLAKE_GET_CLUSTER_KEY,
86
90
  SNOWFLAKE_GET_CURRENT_ACCOUNT,
87
91
  SNOWFLAKE_GET_DATABASE_COMMENTS,
@@ -123,7 +127,7 @@ from metadata.utils.sqlalchemy_utils import (
123
127
  get_all_table_ddls,
124
128
  get_all_view_definitions,
125
129
  )
126
- from metadata.utils.tag_utils import get_ometa_tag_and_classification
130
+ from metadata.utils.tag_utils import get_ometa_tag_and_classification, get_tag_label
127
131
 
128
132
 
129
133
  class MAP(StructuredType):
@@ -203,6 +207,7 @@ class SnowflakeSource(
203
207
  self.schema_desc_map = {}
204
208
  self.database_desc_map = {}
205
209
  self.external_location_map = {}
210
+ self.schema_tags_map = {}
206
211
 
207
212
  self._account: Optional[str] = None
208
213
  self._org_name: Optional[str] = None
@@ -299,6 +304,32 @@ class SnowflakeSource(
299
304
  for row in results
300
305
  }
301
306
 
307
+ def set_schema_tags_map(self, database_name: str) -> None:
308
+ """Fetch and store all schema-level tags for the current database"""
309
+ self.schema_tags_map.clear()
310
+ if not self.source_config.includeTags:
311
+ return
312
+
313
+ try:
314
+ results = self.engine.execute(
315
+ SNOWFLAKE_FETCH_SCHEMA_TAGS.format(
316
+ database_name=database_name,
317
+ account_usage=self.service_connection.accountUsageSchema,
318
+ )
319
+ ).all()
320
+
321
+ for row in results:
322
+ schema_name = row.SCHEMA_NAME
323
+ if schema_name not in self.schema_tags_map:
324
+ self.schema_tags_map[schema_name] = []
325
+ self.schema_tags_map[schema_name].append(
326
+ {"tag_name": row.TAG_NAME, "tag_value": row.TAG_VALUE}
327
+ )
328
+
329
+ except Exception as exc:
330
+ logger.debug(traceback.format_exc())
331
+ logger.warning(f"Failed to fetch schema tags: {exc}")
332
+
302
333
  def get_schema_description(self, schema_name: str) -> Optional[str]:
303
334
  """
304
335
  Method to fetch the schema description
@@ -329,6 +360,7 @@ class SnowflakeSource(
329
360
  self.set_schema_description_map()
330
361
  self.set_database_description_map()
331
362
  self.set_external_location_map(configured_db)
363
+ self.set_schema_tags_map(configured_db)
332
364
  yield configured_db
333
365
  else:
334
366
  for new_database in self.get_database_names_raw():
@@ -357,6 +389,7 @@ class SnowflakeSource(
357
389
  self.set_schema_description_map()
358
390
  self.set_database_description_map()
359
391
  self.set_external_location_map(new_database)
392
+ self.set_schema_tags_map(new_database)
360
393
  yield new_database
361
394
  except Exception as exc:
362
395
  logger.debug(traceback.format_exc())
@@ -451,11 +484,14 @@ class SnowflakeSource(
451
484
  def yield_tag(
452
485
  self, schema_name: str
453
486
  ) -> Iterable[Either[OMetaTagAndClassification]]:
487
+ """
488
+ Yield tags for tables/columns and schemas.
489
+ """
454
490
  if self.source_config.includeTags:
455
491
  result = []
456
492
  try:
457
493
  result = self.connection.execute(
458
- SNOWFLAKE_FETCH_ALL_TAGS.format(
494
+ SNOWFLAKE_FETCH_TABLE_TAGS.format(
459
495
  database_name=self.context.get().database,
460
496
  schema_name=schema_name,
461
497
  account_usage=self.service_connection.accountUsageSchema,
@@ -469,20 +505,15 @@ class SnowflakeSource(
469
505
  f"Error fetching tags {exc}. Trying with quoted names"
470
506
  )
471
507
  result = self.connection.execute(
472
- SNOWFLAKE_FETCH_ALL_TAGS.format(
508
+ SNOWFLAKE_FETCH_TABLE_TAGS.format(
473
509
  database_name=f'"{self.context.get().database}"',
474
510
  schema_name=f'"{self.context.get().database_schema}"',
475
511
  account_usage=self.service_connection.accountUsageSchema,
476
512
  )
477
513
  )
478
514
  except Exception as inner_exc:
479
- yield Either(
480
- left=StackTraceError(
481
- name="Tags and Classifications",
482
- error=f"Failed to fetch tags due to [{inner_exc}]",
483
- stackTrace=traceback.format_exc(),
484
- )
485
- )
515
+ logger.debug(traceback.format_exc())
516
+ logger.error(f"Failed to fetch tags due to [{inner_exc}]")
486
517
 
487
518
  for res in result:
488
519
  row = list(res)
@@ -495,12 +526,32 @@ class SnowflakeSource(
495
526
  ),
496
527
  tags=[row[1]],
497
528
  classification_name=row[0],
498
- tag_description="SNOWFLAKE TAG VALUE",
499
- classification_description="SNOWFLAKE TAG NAME",
529
+ tag_description=SNOWFLAKE_TAG_DESCRIPTION,
530
+ classification_description=SNOWFLAKE_CLASSIFICATION_DESCRIPTION,
500
531
  metadata=self.metadata,
501
532
  system_tags=True,
502
533
  )
503
534
 
535
+ # Yield schema-level tags
536
+ if schema_name in self.schema_tags_map:
537
+ schema_fqn = fqn.build(
538
+ self.metadata,
539
+ entity_type=DatabaseSchema,
540
+ service_name=self.context.get().database_service,
541
+ database_name=self.context.get().database,
542
+ schema_name=schema_name,
543
+ )
544
+ for tag_info in self.schema_tags_map[schema_name]:
545
+ yield from get_ometa_tag_and_classification(
546
+ tag_fqn=FullyQualifiedEntityName(schema_fqn),
547
+ tags=[tag_info["tag_value"]],
548
+ classification_name=tag_info["tag_name"],
549
+ tag_description=SNOWFLAKE_TAG_DESCRIPTION,
550
+ classification_description=SNOWFLAKE_CLASSIFICATION_DESCRIPTION,
551
+ metadata=self.metadata,
552
+ system_tags=True,
553
+ )
554
+
504
555
  def _get_table_names_and_types(
505
556
  self, schema_name: str, table_type: TableType = TableType.Regular
506
557
  ) -> List[TableNameAndType]:
@@ -945,3 +996,49 @@ class SnowflakeSource(
945
996
  logger.debug(
946
997
  f"Processing ownership is not supported for {self.service_connection.type.name}"
947
998
  )
999
+
1000
+ def get_schema_tag_labels(self, schema_name: str) -> Optional[List[TagLabel]]:
1001
+ """
1002
+ Return tags for schema entity including Snowflake schema-level tags.
1003
+ """
1004
+ schema_tags = []
1005
+
1006
+ if schema_name in self.schema_tags_map:
1007
+ for tag_info in self.schema_tags_map[schema_name]:
1008
+ tag_label = get_tag_label(
1009
+ metadata=self.metadata,
1010
+ tag_name=tag_info["tag_value"],
1011
+ classification_name=tag_info["tag_name"],
1012
+ )
1013
+ if tag_label:
1014
+ schema_tags.append(tag_label)
1015
+
1016
+ # Include parent tags from context
1017
+ parent_tags = super().get_schema_tag_labels(schema_name) or []
1018
+ for tag in parent_tags:
1019
+ if tag not in schema_tags:
1020
+ schema_tags.append(tag)
1021
+
1022
+ return schema_tags if schema_tags else None
1023
+
1024
+ def get_tag_labels(self, table_name: str) -> Optional[List[TagLabel]]:
1025
+ """
1026
+ Override to include schema-level tags inherited by tables.
1027
+ This method combines:
1028
+ 1. Tags directly assigned to the table (from parent implementation)
1029
+ 2. Tags inherited from the schema level
1030
+ """
1031
+ table_tags = super().get_tag_labels(table_name) or []
1032
+
1033
+ schema_name = self.context.get().database_schema
1034
+ if schema_name and schema_name in self.schema_tags_map:
1035
+ for tag_info in self.schema_tags_map[schema_name]:
1036
+ tag_label = get_tag_label(
1037
+ metadata=self.metadata,
1038
+ tag_name=tag_info["tag_value"],
1039
+ classification_name=tag_info["tag_name"],
1040
+ )
1041
+ if tag_label and tag_label not in table_tags:
1042
+ table_tags.append(tag_label)
1043
+
1044
+ return table_tags if table_tags else None