openmetadata-ingestion 1.6.3.2.dev1__py3-none-any.whl → 1.6.4.0.dev0__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 (700) hide show
  1. metadata/generated/schema/analytics/__init__.py +1 -1
  2. metadata/generated/schema/analytics/basic.py +1 -1
  3. metadata/generated/schema/analytics/reportData.py +1 -1
  4. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  5. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  6. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  7. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  8. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  10. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  11. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  12. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  13. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  14. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  15. metadata/generated/schema/api/__init__.py +1 -1
  16. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  17. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  18. metadata/generated/schema/api/analytics/__init__.py +1 -1
  19. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  20. metadata/generated/schema/api/automations/__init__.py +1 -1
  21. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  22. metadata/generated/schema/api/bulkAssets.py +1 -1
  23. metadata/generated/schema/api/classification/__init__.py +1 -1
  24. metadata/generated/schema/api/classification/createClassification.py +1 -1
  25. metadata/generated/schema/api/classification/createTag.py +1 -1
  26. metadata/generated/schema/api/classification/loadTags.py +1 -1
  27. metadata/generated/schema/api/createBot.py +1 -1
  28. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  29. metadata/generated/schema/api/createType.py +1 -1
  30. metadata/generated/schema/api/data/__init__.py +1 -1
  31. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  32. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  33. metadata/generated/schema/api/data/createChart.py +1 -1
  34. metadata/generated/schema/api/data/createContainer.py +1 -1
  35. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  36. metadata/generated/schema/api/data/createDashboard.py +1 -1
  37. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  38. metadata/generated/schema/api/data/createDatabase.py +1 -1
  39. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  40. metadata/generated/schema/api/data/createGlossary.py +1 -1
  41. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  42. metadata/generated/schema/api/data/createMetric.py +1 -1
  43. metadata/generated/schema/api/data/createMlModel.py +1 -1
  44. metadata/generated/schema/api/data/createPipeline.py +1 -1
  45. metadata/generated/schema/api/data/createQuery.py +1 -1
  46. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  47. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  48. metadata/generated/schema/api/data/createTable.py +1 -1
  49. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  50. metadata/generated/schema/api/data/createTopic.py +1 -1
  51. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  52. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  53. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  54. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  55. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  56. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  57. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  58. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  59. metadata/generated/schema/api/docStore/__init__.py +1 -1
  60. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  61. metadata/generated/schema/api/domains/__init__.py +1 -1
  62. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  63. metadata/generated/schema/api/domains/createDomain.py +1 -1
  64. metadata/generated/schema/api/feed/__init__.py +1 -1
  65. metadata/generated/schema/api/feed/closeTask.py +1 -1
  66. metadata/generated/schema/api/feed/createPost.py +1 -1
  67. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  68. metadata/generated/schema/api/feed/createThread.py +1 -1
  69. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  70. metadata/generated/schema/api/feed/threadCount.py +1 -1
  71. metadata/generated/schema/api/governance/__init__.py +1 -1
  72. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  73. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  74. metadata/generated/schema/api/lineage/__init__.py +1 -1
  75. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  76. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  77. metadata/generated/schema/api/policies/__init__.py +1 -1
  78. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  79. metadata/generated/schema/api/services/__init__.py +1 -1
  80. metadata/generated/schema/api/services/createApiService.py +1 -1
  81. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  82. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  83. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  84. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  85. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  86. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  87. metadata/generated/schema/api/services/createSearchService.py +1 -1
  88. metadata/generated/schema/api/services/createStorageService.py +1 -1
  89. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  90. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  91. metadata/generated/schema/api/setOwner.py +1 -1
  92. metadata/generated/schema/api/teams/__init__.py +1 -1
  93. metadata/generated/schema/api/teams/createPersona.py +1 -1
  94. metadata/generated/schema/api/teams/createRole.py +1 -1
  95. metadata/generated/schema/api/teams/createTeam.py +1 -1
  96. metadata/generated/schema/api/teams/createUser.py +1 -1
  97. metadata/generated/schema/api/tests/__init__.py +1 -1
  98. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  99. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  100. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  101. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  102. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  103. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  104. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  105. metadata/generated/schema/api/voteRequest.py +1 -1
  106. metadata/generated/schema/auth/__init__.py +1 -1
  107. metadata/generated/schema/auth/basicAuth.py +1 -1
  108. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  109. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  110. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  111. metadata/generated/schema/auth/emailRequest.py +1 -1
  112. metadata/generated/schema/auth/emailVerificationToken.py +2 -4
  113. metadata/generated/schema/auth/generateToken.py +1 -1
  114. metadata/generated/schema/auth/jwtAuth.py +1 -1
  115. metadata/generated/schema/auth/loginRequest.py +1 -1
  116. metadata/generated/schema/auth/logoutRequest.py +1 -1
  117. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  118. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  119. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  120. metadata/generated/schema/auth/refreshToken.py +1 -1
  121. metadata/generated/schema/auth/registrationRequest.py +1 -1
  122. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  123. metadata/generated/schema/auth/revokeToken.py +1 -1
  124. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  125. metadata/generated/schema/auth/ssoAuth.py +1 -1
  126. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  127. metadata/generated/schema/configuration/__init__.py +1 -1
  128. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  129. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  130. metadata/generated/schema/configuration/authConfig.py +1 -1
  131. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  132. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  133. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  134. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  135. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  136. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  137. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  138. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  139. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  140. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  141. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  142. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  143. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  144. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  145. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  146. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  147. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  148. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  149. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  150. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  151. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  152. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  153. metadata/generated/schema/configuration/searchSettings.py +1 -1
  154. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  155. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  156. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  157. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  158. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  159. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  160. metadata/generated/schema/dataInsight/__init__.py +1 -1
  161. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  162. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  163. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  164. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  165. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  166. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  167. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  168. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  169. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  170. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  171. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  172. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  173. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  174. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  175. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  176. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  177. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  178. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  179. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  180. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  181. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  182. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  183. metadata/generated/schema/email/__init__.py +1 -1
  184. metadata/generated/schema/email/emailRequest.py +1 -1
  185. metadata/generated/schema/email/emailTemplate.py +1 -1
  186. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  187. metadata/generated/schema/email/smtpSettings.py +1 -1
  188. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  189. metadata/generated/schema/entity/__init__.py +1 -1
  190. metadata/generated/schema/entity/applications/__init__.py +1 -1
  191. metadata/generated/schema/entity/applications/app.py +1 -1
  192. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  193. metadata/generated/schema/entity/applications/appRunRecord.py +3 -1
  194. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  195. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  196. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  197. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  198. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  199. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  200. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  201. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  202. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  203. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  204. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  205. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  206. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  207. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +10 -2
  208. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  209. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  210. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +23 -3
  211. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  212. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  213. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  214. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  215. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  216. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  217. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  218. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  219. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  220. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  221. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  222. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  223. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  224. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  225. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  226. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  227. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  228. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  229. metadata/generated/schema/entity/automations/__init__.py +1 -1
  230. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  231. metadata/generated/schema/entity/automations/workflow.py +1 -1
  232. metadata/generated/schema/entity/bot.py +1 -1
  233. metadata/generated/schema/entity/classification/__init__.py +1 -1
  234. metadata/generated/schema/entity/classification/classification.py +1 -1
  235. metadata/generated/schema/entity/classification/tag.py +1 -1
  236. metadata/generated/schema/entity/data/__init__.py +1 -1
  237. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  238. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  239. metadata/generated/schema/entity/data/chart.py +1 -1
  240. metadata/generated/schema/entity/data/container.py +1 -1
  241. metadata/generated/schema/entity/data/dashboard.py +1 -1
  242. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  243. metadata/generated/schema/entity/data/database.py +1 -1
  244. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  245. metadata/generated/schema/entity/data/glossary.py +1 -1
  246. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  247. metadata/generated/schema/entity/data/metric.py +1 -1
  248. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  249. metadata/generated/schema/entity/data/pipeline.py +1 -1
  250. metadata/generated/schema/entity/data/query.py +1 -1
  251. metadata/generated/schema/entity/data/report.py +1 -1
  252. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  253. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  254. metadata/generated/schema/entity/data/table.py +2 -1
  255. metadata/generated/schema/entity/data/topic.py +1 -1
  256. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  257. metadata/generated/schema/entity/docStore/document.py +1 -1
  258. metadata/generated/schema/entity/domains/__init__.py +1 -1
  259. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  260. metadata/generated/schema/entity/domains/domain.py +1 -1
  261. metadata/generated/schema/entity/events/__init__.py +1 -1
  262. metadata/generated/schema/entity/events/webhook.py +1 -1
  263. metadata/generated/schema/entity/feed/__init__.py +1 -1
  264. metadata/generated/schema/entity/feed/assets.py +1 -1
  265. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  266. metadata/generated/schema/entity/feed/description.py +1 -1
  267. metadata/generated/schema/entity/feed/domain.py +1 -1
  268. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  269. metadata/generated/schema/entity/feed/owner.py +1 -1
  270. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  271. metadata/generated/schema/entity/feed/tag.py +1 -1
  272. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  273. metadata/generated/schema/entity/feed/thread.py +1 -1
  274. metadata/generated/schema/entity/policies/__init__.py +1 -1
  275. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  276. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  277. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  278. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  279. metadata/generated/schema/entity/policies/filters.py +1 -1
  280. metadata/generated/schema/entity/policies/policy.py +1 -1
  281. metadata/generated/schema/entity/services/__init__.py +1 -1
  282. metadata/generated/schema/entity/services/apiService.py +1 -1
  283. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  284. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  285. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  286. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  287. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  288. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  289. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  290. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  291. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  292. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  293. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  294. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  295. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  296. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  297. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  302. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  303. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  304. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  305. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  306. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  307. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  308. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  309. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  310. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  314. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  322. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  323. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  324. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  325. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  326. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  327. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +9 -1
  328. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  329. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  330. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  331. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  332. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  334. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  336. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  337. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  338. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  347. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  351. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +9 -1
  373. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  380. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  386. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  387. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  394. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  400. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +3 -0
  414. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +39 -0
  415. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +4 -25
  416. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +3 -0
  417. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +40 -0
  418. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +38 -0
  419. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +3 -2
  420. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  425. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  427. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  428. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  429. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  433. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  438. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  439. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  440. metadata/generated/schema/entity/services/databaseService.py +1 -1
  441. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  442. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +7 -1
  443. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  444. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  445. metadata/generated/schema/entity/services/messagingService.py +1 -1
  446. metadata/generated/schema/entity/services/metadataService.py +1 -1
  447. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  448. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  449. metadata/generated/schema/entity/services/searchService.py +1 -1
  450. metadata/generated/schema/entity/services/serviceType.py +1 -1
  451. metadata/generated/schema/entity/services/storageService.py +1 -1
  452. metadata/generated/schema/entity/teams/__init__.py +1 -1
  453. metadata/generated/schema/entity/teams/persona.py +1 -1
  454. metadata/generated/schema/entity/teams/role.py +1 -1
  455. metadata/generated/schema/entity/teams/team.py +1 -1
  456. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  457. metadata/generated/schema/entity/teams/user.py +1 -1
  458. metadata/generated/schema/entity/type.py +1 -1
  459. metadata/generated/schema/entity/utils/__init__.py +1 -1
  460. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  461. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  462. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  463. metadata/generated/schema/events/__init__.py +1 -1
  464. metadata/generated/schema/events/alertMetrics.py +1 -1
  465. metadata/generated/schema/events/api/__init__.py +1 -1
  466. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  467. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  468. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  469. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  470. metadata/generated/schema/events/api/typedEvent.py +1 -1
  471. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  472. metadata/generated/schema/events/eventFilterRule.py +1 -1
  473. metadata/generated/schema/events/eventSubscription.py +1 -1
  474. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  475. metadata/generated/schema/events/failedEvent.py +1 -1
  476. metadata/generated/schema/events/failedEventResponse.py +1 -1
  477. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  478. metadata/generated/schema/events/statusContext.py +1 -1
  479. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  480. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  481. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  482. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  483. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  484. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  485. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  486. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  487. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  488. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  489. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  490. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  491. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  492. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  493. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  494. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  495. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  496. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  497. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  498. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  499. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  500. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  501. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  502. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  503. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  504. metadata/generated/schema/jobs/__init__.py +1 -1
  505. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  506. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  507. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  508. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  509. metadata/generated/schema/metadataIngestion/application.py +1 -1
  510. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  511. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  512. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  513. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  514. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  515. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  516. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +9 -1
  517. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  518. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  519. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  520. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  521. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  522. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  523. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  524. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  525. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  526. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  527. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  528. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  529. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  530. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  531. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +2 -2
  532. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  533. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  534. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  535. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  536. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  537. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  538. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  539. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  540. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  541. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  542. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  543. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  544. metadata/generated/schema/monitoring/__init__.py +1 -1
  545. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  546. metadata/generated/schema/security/__init__.py +1 -1
  547. metadata/generated/schema/security/client/__init__.py +1 -1
  548. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  549. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  550. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  551. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  552. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  553. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  554. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  555. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  556. metadata/generated/schema/security/credentials/__init__.py +1 -1
  557. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  558. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  559. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  560. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  561. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  562. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  563. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  564. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  565. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  566. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  567. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  568. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  569. metadata/generated/schema/security/sasl/__init__.py +1 -1
  570. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  571. metadata/generated/schema/security/secrets/__init__.py +1 -1
  572. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  573. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  574. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  575. metadata/generated/schema/security/securityConfiguration.py +1 -1
  576. metadata/generated/schema/security/ssl/__init__.py +1 -1
  577. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  578. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  579. metadata/generated/schema/settings/__init__.py +1 -1
  580. metadata/generated/schema/settings/settings.py +1 -1
  581. metadata/generated/schema/system/__init__.py +1 -1
  582. metadata/generated/schema/system/entityError.py +1 -1
  583. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  584. metadata/generated/schema/system/indexingError.py +1 -1
  585. metadata/generated/schema/system/limitsResponse.py +1 -1
  586. metadata/generated/schema/system/ui/__init__.py +1 -1
  587. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  588. metadata/generated/schema/system/ui/page.py +1 -1
  589. metadata/generated/schema/system/validationResponse.py +1 -1
  590. metadata/generated/schema/tests/__init__.py +1 -1
  591. metadata/generated/schema/tests/assigned.py +1 -1
  592. metadata/generated/schema/tests/basic.py +20 -20
  593. metadata/generated/schema/tests/customMetric.py +1 -1
  594. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  595. metadata/generated/schema/tests/resolved.py +1 -1
  596. metadata/generated/schema/tests/testCase.py +1 -1
  597. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  598. metadata/generated/schema/tests/testDefinition.py +1 -1
  599. metadata/generated/schema/tests/testSuite.py +1 -1
  600. metadata/generated/schema/type/__init__.py +1 -1
  601. metadata/generated/schema/type/apiSchema.py +1 -1
  602. metadata/generated/schema/type/assetCertification.py +1 -1
  603. metadata/generated/schema/type/auditLog.py +1 -1
  604. metadata/generated/schema/type/basic.py +8 -1
  605. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  606. metadata/generated/schema/type/changeEvent.py +1 -1
  607. metadata/generated/schema/type/changeEventType.py +1 -1
  608. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  609. metadata/generated/schema/type/csvDocumentation.py +1 -1
  610. metadata/generated/schema/type/csvErrorType.py +1 -1
  611. metadata/generated/schema/type/csvFile.py +1 -1
  612. metadata/generated/schema/type/csvImportResult.py +1 -1
  613. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  614. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  615. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  616. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  617. metadata/generated/schema/type/customProperty.py +1 -1
  618. metadata/generated/schema/type/dailyCount.py +1 -1
  619. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  620. metadata/generated/schema/type/entityHierarchy.py +1 -1
  621. metadata/generated/schema/type/entityHistory.py +1 -1
  622. metadata/generated/schema/type/entityLineage.py +1 -1
  623. metadata/generated/schema/type/entityReference.py +1 -1
  624. metadata/generated/schema/type/entityReferenceList.py +1 -1
  625. metadata/generated/schema/type/entityRelationship.py +1 -1
  626. metadata/generated/schema/type/entityUsage.py +1 -1
  627. metadata/generated/schema/type/filterPattern.py +1 -1
  628. metadata/generated/schema/type/function.py +1 -1
  629. metadata/generated/schema/type/include.py +1 -1
  630. metadata/generated/schema/type/jdbcConnection.py +1 -1
  631. metadata/generated/schema/type/lifeCycle.py +1 -1
  632. metadata/generated/schema/type/paging.py +1 -1
  633. metadata/generated/schema/type/profile.py +1 -1
  634. metadata/generated/schema/type/queryParserData.py +1 -1
  635. metadata/generated/schema/type/reaction.py +1 -1
  636. metadata/generated/schema/type/schedule.py +1 -1
  637. metadata/generated/schema/type/schema.py +1 -1
  638. metadata/generated/schema/type/tableQuery.py +1 -1
  639. metadata/generated/schema/type/tableUsageCount.py +1 -1
  640. metadata/generated/schema/type/tagLabel.py +1 -1
  641. metadata/generated/schema/type/usageDetails.py +1 -1
  642. metadata/generated/schema/type/usageRequest.py +1 -1
  643. metadata/generated/schema/type/votes.py +1 -1
  644. metadata/ingestion/lineage/masker.py +1 -1
  645. metadata/ingestion/lineage/models.py +1 -2
  646. metadata/ingestion/lineage/parser.py +2 -2
  647. metadata/ingestion/lineage/sql_lineage.py +111 -5
  648. metadata/ingestion/ometa/mixins/query_mixin.py +2 -0
  649. metadata/ingestion/ometa/routes.py +4 -0
  650. metadata/ingestion/source/api/rest/metadata.py +33 -24
  651. metadata/ingestion/source/dashboard/looker/metadata.py +115 -13
  652. metadata/ingestion/source/dashboard/powerbi/client.py +150 -35
  653. metadata/ingestion/source/database/bigquery/metadata.py +39 -0
  654. metadata/ingestion/source/database/databricks/connection.py +8 -3
  655. metadata/ingestion/source/database/databricks/lineage.py +12 -24
  656. metadata/ingestion/source/database/databricks/metadata.py +8 -0
  657. metadata/ingestion/source/database/databricks/queries.py +24 -0
  658. metadata/ingestion/source/database/databricks/query_parser.py +11 -15
  659. metadata/ingestion/source/database/databricks/usage.py +7 -37
  660. metadata/ingestion/source/database/db2/connection.py +1 -1
  661. metadata/ingestion/source/database/db2/service_spec.py +1 -4
  662. metadata/ingestion/source/database/dbt/metadata.py +3 -1
  663. metadata/ingestion/source/database/druid/service_spec.py +1 -5
  664. metadata/ingestion/source/database/greenplum/service_spec.py +1 -5
  665. metadata/ingestion/source/database/hive/service_spec.py +1 -5
  666. metadata/ingestion/source/database/impala/service_spec.py +1 -5
  667. metadata/ingestion/source/database/lineage_source.py +12 -1
  668. metadata/ingestion/source/database/mariadb/service_spec.py +1 -9
  669. metadata/ingestion/source/database/pinotdb/service_spec.py +1 -5
  670. metadata/ingestion/source/database/postgres/usage.py +15 -0
  671. metadata/ingestion/source/database/query_parser_source.py +1 -0
  672. metadata/ingestion/source/database/redshift/metadata.py +31 -11
  673. metadata/ingestion/source/database/redshift/queries.py +5 -0
  674. metadata/ingestion/source/database/singlestore/service_spec.py +1 -6
  675. metadata/ingestion/source/database/snowflake/connection.py +10 -2
  676. metadata/ingestion/source/database/snowflake/lineage.py +3 -0
  677. metadata/ingestion/source/database/snowflake/metadata.py +3 -0
  678. metadata/ingestion/source/database/snowflake/queries.py +8 -8
  679. metadata/ingestion/source/database/snowflake/query_parser.py +1 -0
  680. metadata/ingestion/source/database/sqlite/service_spec.py +1 -5
  681. metadata/ingestion/source/database/teradata/service_spec.py +1 -5
  682. metadata/ingestion/source/database/trino/connection.py +13 -0
  683. metadata/ingestion/source/database/unitycatalog/lineage.py +56 -32
  684. metadata/ingestion/source/database/unitycatalog/query_parser.py +7 -0
  685. metadata/ingestion/source/database/unitycatalog/service_spec.py +4 -0
  686. metadata/ingestion/source/database/unitycatalog/usage.py +41 -2
  687. metadata/ingestion/source/database/usage_source.py +1 -1
  688. metadata/ingestion/source/pipeline/nifi/connection.py +4 -2
  689. metadata/profiler/interface/sqlalchemy/unity_catalog/sampler_interface.py +29 -0
  690. metadata/profiler/source/fetcher/config.py +4 -0
  691. metadata/profiler/source/fetcher/fetcher_strategy.py +19 -2
  692. metadata/sampler/sampler_interface.py +0 -3
  693. metadata/sampler/sqlalchemy/bigquery/sampler.py +1 -2
  694. metadata/sampler/sqlalchemy/sampler.py +22 -9
  695. {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/METADATA +400 -381
  696. {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/RECORD +700 -694
  697. {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/LICENSE +0 -0
  698. {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/WHEEL +0 -0
  699. {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/entry_points.txt +0 -0
  700. {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/top_level.txt +0 -0
@@ -16,8 +16,10 @@ import traceback
16
16
  from collections import defaultdict
17
17
  from typing import Any, Iterable, List, Optional, Tuple, Union
18
18
 
19
+ import networkx as nx
19
20
  from collate_sqllineage.core.models import Column, DataFunction
20
21
  from collate_sqllineage.core.models import Table as LineageTable
22
+ from networkx import DiGraph
21
23
 
22
24
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
23
25
  from metadata.generated.schema.entity.data.storedProcedure import (
@@ -509,6 +511,7 @@ def _create_lineage_by_table_name(
509
511
  column_lineage_map: dict,
510
512
  lineage_source: LineageSource = LineageSource.QueryLineage,
511
513
  procedure: Optional[EntityReference] = None,
514
+ graph: DiGraph = None,
512
515
  ) -> Iterable[Either[AddLineageRequest]]:
513
516
  """
514
517
  This method is to create a lineage between two tables
@@ -539,6 +542,11 @@ def _create_lineage_by_table_name(
539
542
  logger.debug(
540
543
  f"WARNING: Table entity [{table_name}] not found in OpenMetadata"
541
544
  )
545
+ if graph is not None and (not from_table_entities or not to_table_entities):
546
+ graph.add_node(from_table, entity=from_table_entities)
547
+ graph.add_node(to_table, entity=to_table_entities)
548
+ graph.add_edge(from_table, to_table, query=masked_query)
549
+ return
542
550
 
543
551
  for from_entity, to_entity in itertools.product(
544
552
  from_table_entities or [], to_table_entities or []
@@ -606,6 +614,7 @@ def get_lineage_by_query(
606
614
  dialect: Dialect,
607
615
  timeout_seconds: int = LINEAGE_PARSING_TIMEOUT,
608
616
  lineage_source: LineageSource = LineageSource.QueryLineage,
617
+ graph: DiGraph = None,
609
618
  ) -> Iterable[Either[AddLineageRequest]]:
610
619
  """
611
620
  This method parses the query to get source, target and intermediate table names to create lineage,
@@ -616,8 +625,8 @@ def get_lineage_by_query(
616
625
 
617
626
  try:
618
627
  lineage_parser = LineageParser(query, dialect, timeout_seconds=timeout_seconds)
619
- masked_query = lineage_parser.masked_query or query
620
- logger.debug(f"Running lineage with query: {masked_query}")
628
+ masked_query = lineage_parser.masked_query
629
+ logger.debug(f"Running lineage with query: {masked_query or query}")
621
630
 
622
631
  raw_column_lineage = lineage_parser.column_lineage
623
632
  column_lineage.update(populate_column_lineage_map(raw_column_lineage))
@@ -645,6 +654,7 @@ def get_lineage_by_query(
645
654
  column_lineage_map=column_lineage,
646
655
  lineage_source=lineage_source,
647
656
  procedure=procedure,
657
+ graph=graph,
648
658
  )
649
659
  for target_table in lineage_parser.target_tables:
650
660
  yield from _create_lineage_by_table_name(
@@ -682,11 +692,12 @@ def get_lineage_by_query(
682
692
  column_lineage_map=column_lineage,
683
693
  lineage_source=lineage_source,
684
694
  procedure=procedure,
695
+ graph=graph,
685
696
  )
686
697
  if not lineage_parser.query_parsing_success:
687
698
  query_parsing_failures.add(
688
699
  QueryParsingError(
689
- query=masked_query,
700
+ query=masked_query or query,
690
701
  error=lineage_parser.query_parsing_failure_reason,
691
702
  )
692
703
  )
@@ -710,6 +721,7 @@ def get_lineage_via_table_entity(
710
721
  dialect: Dialect,
711
722
  timeout_seconds: int = LINEAGE_PARSING_TIMEOUT,
712
723
  lineage_source: LineageSource = LineageSource.QueryLineage,
724
+ graph: DiGraph = None,
713
725
  ) -> Iterable[Either[AddLineageRequest]]:
714
726
  """Get lineage from table entity"""
715
727
  column_lineage = {}
@@ -717,8 +729,10 @@ def get_lineage_via_table_entity(
717
729
 
718
730
  try:
719
731
  lineage_parser = LineageParser(query, dialect, timeout_seconds=timeout_seconds)
720
- masked_query = lineage_parser.masked_query or query
721
- logger.debug(f"Getting lineage via table entity using query: {masked_query}")
732
+ masked_query = lineage_parser.masked_query
733
+ logger.debug(
734
+ f"Getting lineage via table entity using query: {masked_query or query}"
735
+ )
722
736
  to_table_name = table_entity.name.root
723
737
 
724
738
  for from_table_name in lineage_parser.source_tables:
@@ -743,6 +757,7 @@ def get_lineage_via_table_entity(
743
757
  column_lineage_map=column_lineage,
744
758
  lineage_source=lineage_source,
745
759
  procedure=procedure,
760
+ graph=graph,
746
761
  ) or []
747
762
  if not lineage_parser.query_parsing_success:
748
763
  query_parsing_failures.add(
@@ -759,3 +774,94 @@ def get_lineage_via_table_entity(
759
774
  stackTrace=traceback.format_exc(),
760
775
  )
761
776
  )
777
+
778
+
779
+ def _process_sequence(
780
+ sequence: List[Any], graph: DiGraph
781
+ ) -> Iterable[Either[AddLineageRequest]]:
782
+ """
783
+ Process a sequence of nodes to generate lineage information.
784
+ """
785
+ from_node = None
786
+ queries = set()
787
+ clean_queries = False
788
+ previous_node = None
789
+ for node in sequence:
790
+ try:
791
+ if clean_queries:
792
+ queries.clear()
793
+ clean_queries = False
794
+ current_node = graph.nodes[node]
795
+ current_entity = current_node.get("entity")
796
+
797
+ if (
798
+ previous_node is not None
799
+ and graph.edges[(previous_node, node)].get("query") is not None
800
+ ):
801
+ queries.add(graph.edges[(previous_node, node)].get("query"))
802
+
803
+ if current_entity and from_node is not None:
804
+ for from_entity, to_entity in itertools.product(
805
+ from_node.get("entity") or [], current_entity or []
806
+ ):
807
+ if to_entity and from_entity:
808
+ yield _build_table_lineage(
809
+ to_entity=to_entity,
810
+ from_entity=from_entity,
811
+ to_table_raw_name=str(node),
812
+ from_table_raw_name=str(from_node),
813
+ masked_query="\n--------\n".join(queries),
814
+ column_lineage_map={},
815
+ lineage_source=LineageSource.QueryLineage,
816
+ procedure=None,
817
+ )
818
+ clean_queries = True
819
+
820
+ if current_entity:
821
+ from_node = graph.nodes[node]
822
+ previous_node = node
823
+ except Exception as exc:
824
+ logger.debug(traceback.format_exc())
825
+ logger.error(f"Error creating lineage for node [{node}]: {exc}")
826
+
827
+
828
+ def get_lineage_by_graph(
829
+ graph: DiGraph,
830
+ ) -> Iterable[Either[AddLineageRequest]]:
831
+ """
832
+ Generate lineage information from a directed graph.
833
+ This method processes a directed graph to extract lineage information by identifying
834
+ weakly connected components and traversing each component to generate sequences of nodes.
835
+ It then yields lineage information for each sequence.
836
+ Args:
837
+ graph (DiGraph): A directed graph representing the lineage.
838
+ Raises:
839
+ Exception: If an error occurs during the lineage creation process, it logs the error.
840
+ """
841
+ if graph is None:
842
+ return
843
+
844
+ # Get all weakly connected components
845
+ components = list(nx.weakly_connected_components(graph))
846
+
847
+ # Extract each component as an independent subgraph
848
+ independent_subtrees = [
849
+ graph.subgraph(component).copy() for component in components
850
+ ]
851
+
852
+ # Print results in the desired format
853
+ for subtree in independent_subtrees:
854
+ # Find a root node (node with no incoming edges)
855
+ root = [node for node in subtree if subtree.in_degree(node) == 0][0]
856
+
857
+ # Traverse from the root to get the sequence of nodes
858
+ current = root
859
+ sequence = [current]
860
+ while True:
861
+ successors = list(subtree.successors(current))
862
+ if not successors:
863
+ break
864
+ current = successors[0]
865
+ sequence.append(current)
866
+
867
+ yield from _process_sequence(sequence, subtree)
@@ -42,6 +42,8 @@ class OMetaQueryMixin:
42
42
  return str(result.hexdigest())
43
43
 
44
44
  def _get_or_create_query(self, query: CreateQueryRequest) -> Optional[Query]:
45
+ if query.query.root is None:
46
+ return None
45
47
  query_hash = self._get_query_hash(query=query.query.root)
46
48
  query_entity = self.get_by_name(entity=Query, fqn=query_hash)
47
49
  if query_entity is None:
@@ -92,6 +92,7 @@ from metadata.generated.schema.api.services.createStorageService import (
92
92
  from metadata.generated.schema.api.services.ingestionPipelines.createIngestionPipeline import (
93
93
  CreateIngestionPipelineRequest,
94
94
  )
95
+ from metadata.generated.schema.api.teams.createPersona import CreatePersonaRequest
95
96
  from metadata.generated.schema.api.teams.createRole import CreateRoleRequest
96
97
  from metadata.generated.schema.api.teams.createTeam import CreateTeamRequest
97
98
  from metadata.generated.schema.api.teams.createUser import CreateUserRequest
@@ -157,6 +158,7 @@ from metadata.generated.schema.entity.services.mlmodelService import MlModelServ
157
158
  from metadata.generated.schema.entity.services.pipelineService import PipelineService
158
159
  from metadata.generated.schema.entity.services.searchService import SearchService
159
160
  from metadata.generated.schema.entity.services.storageService import StorageService
161
+ from metadata.generated.schema.entity.teams.persona import Persona
160
162
  from metadata.generated.schema.entity.teams.role import Role
161
163
  from metadata.generated.schema.entity.teams.team import Team
162
164
  from metadata.generated.schema.entity.teams.user import AuthenticationMechanism, User
@@ -217,6 +219,8 @@ ROUTES = {
217
219
  CreateTeamRequest.__name__: "/teams",
218
220
  User.__name__: "/users",
219
221
  CreateUserRequest.__name__: "/users",
222
+ Persona.__name__: "/personas",
223
+ CreatePersonaRequest.__name__: "/personas",
220
224
  AuthenticationMechanism.__name__: "/users/auth-mechanism",
221
225
  Bot.__name__: "/bots",
222
226
  CreateBot.__name__: "/bots",
@@ -171,7 +171,7 @@ class RestSource(ApiServiceSource):
171
171
  break
172
172
  return filtered_paths
173
173
  except Exception as err:
174
- logger.info(
174
+ logger.warning(
175
175
  f"Error while filtering endpoints for collection {collection.name.root}"
176
176
  )
177
177
  return None
@@ -184,7 +184,7 @@ class RestSource(ApiServiceSource):
184
184
  endpoint.name = f"{path} - {method_type}"
185
185
  return endpoint
186
186
  except Exception as err:
187
- logger.info(f"Error while parsing endpoint data: {err}")
187
+ logger.warning(f"Error while parsing endpoint data: {err}")
188
188
  return None
189
189
 
190
190
  def _generate_collection_url(self, collection_name: str) -> Optional[AnyUrl]:
@@ -195,7 +195,7 @@ class RestSource(ApiServiceSource):
195
195
  f"{self.config.serviceConnection.root.config.openAPISchemaURL}#tag/{collection_name}"
196
196
  )
197
197
  except Exception as err:
198
- logger.info(f"Error while generating collection url: {err}")
198
+ logger.warning(f"Error while generating collection url: {err}")
199
199
  return None
200
200
 
201
201
  def _generate_endpoint_url(self, endpoint_name: str) -> AnyUrl:
@@ -203,15 +203,14 @@ class RestSource(ApiServiceSource):
203
203
  base_url = self.config.serviceConnection.root.config.openAPISchemaURL
204
204
  if endpoint_name:
205
205
  return AnyUrl(f"{base_url}#operation/{endpoint_name}")
206
- else:
207
- return AnyUrl(base_url)
206
+ return AnyUrl(base_url)
208
207
 
209
208
  def _get_api_request_method(self, method_type: str) -> Optional[str]:
210
209
  """fetch endpoint request method"""
211
210
  try:
212
211
  return ApiRequestMethod[method_type.upper()]
213
212
  except KeyError as err:
214
- logger.info(f"Keyerror while fetching request method: {err}")
213
+ logger.warning(f"Keyerror while fetching request method: {err}")
215
214
  return None
216
215
 
217
216
  def _get_request_schema(self, info: dict) -> Optional[APISchema]:
@@ -227,9 +226,9 @@ class RestSource(ApiServiceSource):
227
226
  if not schema_ref:
228
227
  logger.debug("No request schema found for the endpoint")
229
228
  return None
230
- return self._process_schema(schema_ref)
229
+ return APISchema(schemaFields=self.process_schema_fields(schema_ref))
231
230
  except Exception as err:
232
- logger.info(f"Error while parsing request schema: {err}")
231
+ logger.warning(f"Error while parsing request schema: {err}")
233
232
  return None
234
233
 
235
234
  def _get_response_schema(self, info: dict) -> Optional[APISchema]:
@@ -246,33 +245,43 @@ class RestSource(ApiServiceSource):
246
245
  if not schema_ref:
247
246
  logger.debug("No response schema found for the endpoint")
248
247
  return None
249
- return self._process_schema(schema_ref)
248
+ return APISchema(schemaFields=self.process_schema_fields(schema_ref))
250
249
  except Exception as err:
251
- logger.info(f"Error while parsing response schema: {err}")
250
+ logger.warning(f"Error while parsing response schema: {err}")
252
251
  return None
253
252
 
254
- def _process_schema(self, schema_ref: str) -> Optional[List[APISchema]]:
255
- """process schema"""
253
+ def process_schema_fields(self, schema_ref: str) -> Optional[List[FieldModel]]:
256
254
  try:
257
- schema_ref = schema_ref.split("/")[-1]
255
+ schema_name = schema_ref.split("/")[-1]
258
256
  schema_fields = (
259
- self.json_response.get("components").get("schemas").get(schema_ref)
257
+ self.json_response.get("components").get("schemas").get(schema_name)
260
258
  )
261
259
 
262
260
  fetched_fields = []
263
261
  for key, val in schema_fields.get("properties", {}).items():
264
262
  dtype = val.get("type")
265
- if not dtype:
266
- continue
267
- fetched_fields.append(
268
- FieldModel(
269
- name=key,
270
- dataType=DataTypeTopic[dtype.upper()]
263
+ if dtype:
264
+ parsed_dtype = (
265
+ DataTypeTopic[dtype.upper()]
271
266
  if dtype.upper() in DataTypeTopic.__members__
272
- else DataTypeTopic.UNKNOWN,
267
+ else DataTypeTopic.UNKNOWN
273
268
  )
274
- )
275
- return APISchema(schemaFields=fetched_fields)
269
+ fetched_fields.append(FieldModel(name=key, dataType=parsed_dtype))
270
+ else:
271
+ # If type of field is not defined then check for sub-schema
272
+ # Check if it's `object` type field
273
+ # check infinite recrusrion by comparing with parent(schema_ref)
274
+ object_children = None
275
+ if val.get("$ref") and val.get("$ref") != schema_ref:
276
+ object_children = self.process_schema_fields(val.get("$ref"))
277
+ fetched_fields.append(
278
+ FieldModel(
279
+ name=key,
280
+ dataType=DataTypeTopic.UNKNOWN,
281
+ children=object_children,
282
+ )
283
+ )
284
+ return fetched_fields
276
285
  except Exception as err:
277
- logger.info(f"Error while processing request schema: {err}")
286
+ logger.warning(f"Error while processing schema fields: {err}")
278
287
  return None
@@ -21,6 +21,7 @@ Notes:
21
21
  """
22
22
  import copy
23
23
  import os
24
+ import re
24
25
  import traceback
25
26
  from datetime import datetime
26
27
  from pathlib import Path
@@ -39,6 +40,7 @@ from typing import (
39
40
 
40
41
  import giturlparse
41
42
  import lkml
43
+ import networkx as nx
42
44
  from liquid import Template
43
45
  from looker_sdk.sdk.api40.methods import Looker40SDK
44
46
  from looker_sdk.sdk.api40.models import Dashboard as LookerDashboard
@@ -134,6 +136,10 @@ logger = ingestion_logger()
134
136
  LIST_DASHBOARD_FIELDS = ["id", "title"]
135
137
  IMPORTED_PROJECTS_DIR = "imported_projects"
136
138
 
139
+ # we need to find the derived references in the SQL query using regex
140
+ # https://cloud.google.com/looker/docs/derived-tables#referencing_derived_tables_in_other_derived_tables
141
+ DERIVED_REFERENCES = r"\${([\w\s\d_.]+)\.SQL_TABLE_NAME}"
142
+
137
143
  # Here we can update the fields to get further information, such as:
138
144
  # created_at, updated_at, last_updater_id, deleted_at, deleter_id, favorite_count, last_viewed_at
139
145
  GET_DASHBOARD_FIELDS = [
@@ -165,6 +171,13 @@ def build_datamodel_name(model_name: str, explore_name: str) -> str:
165
171
  return clean_dashboard_name(model_name + "_" + explore_name)
166
172
 
167
173
 
174
+ def find_derived_references(sql_query: str) -> List[str]:
175
+ if sql_query is None:
176
+ return []
177
+ matches = re.findall(DERIVED_REFERENCES, sql_query)
178
+ return matches
179
+
180
+
168
181
  class LookerSource(DashboardServiceSource):
169
182
  """
170
183
  Looker Source Class.
@@ -172,6 +185,8 @@ class LookerSource(DashboardServiceSource):
172
185
  Its client uses Looker 40 from the SDK: client = looker_sdk.init40()
173
186
  """
174
187
 
188
+ # pylint: disable=too-many-instance-attributes
189
+
175
190
  config: WorkflowSource
176
191
  metadata: OpenMetadata
177
192
  client: Looker40SDK
@@ -192,6 +207,10 @@ class LookerSource(DashboardServiceSource):
192
207
  self._main__lookml_manifest: Optional[LookMLManifest] = None
193
208
  self._view_data_model: Optional[DashboardDataModel] = None
194
209
 
210
+ self._parsed_views: Optional[Dict[str, str]] = {}
211
+ self._unparsed_views: Optional[Dict[str, str]] = {}
212
+ self._derived_dependencies = nx.DiGraph()
213
+
195
214
  self._added_lineage: Optional[Dict] = {}
196
215
 
197
216
  @classmethod
@@ -557,6 +576,68 @@ class LookerSource(DashboardServiceSource):
557
576
  )
558
577
  )
559
578
 
579
+ def replace_derived_references(self, sql_query):
580
+ """
581
+ Replace all derived references with the parsed views sql query
582
+ will replace the derived references in the SQL query using regex
583
+ for e.g. It will replace ${view_name.SQL_TABLE_NAME} with the parsed view query for view_name
584
+ https://cloud.google.com/looker/docs/derived-tables#referencing_derived_tables_in_other_derived_tables
585
+ """
586
+ try:
587
+ sql_query = re.sub(
588
+ DERIVED_REFERENCES,
589
+ # from `${view_name.SQL_TABLE_NAME}` we want the `view_name`.
590
+ # match.group(1) will give us the `view_name`
591
+ lambda match: f"({self._parsed_views.get(match.group(1), match.group(0))})",
592
+ sql_query,
593
+ )
594
+ except Exception as e:
595
+ logger.warning(
596
+ f"Something went wrong while replacing derived view references: {e}"
597
+ )
598
+ return sql_query
599
+
600
+ def build_lineage_for_unparsed_views(self) -> Iterable[Either[AddLineageRequest]]:
601
+ """
602
+ build lineage by parsing the unparsed views containing derived references
603
+ """
604
+ try:
605
+ # Doing a reversed topological sort to process the views in the right order
606
+ for view_name in reversed(
607
+ list(nx.topological_sort(self._derived_dependencies))
608
+ ):
609
+ if view_name in self._parsed_views:
610
+ # Skip if already processed
611
+ continue
612
+ sql_query = self.replace_derived_references(
613
+ self._unparsed_views[view_name]
614
+ )
615
+ if view_references := find_derived_references(sql_query):
616
+ # There are still derived references in the view query
617
+ logger.debug(
618
+ f"Views {view_references} not found for {view_name}. Skipping."
619
+ )
620
+ continue
621
+ self._parsed_views[view_name] = sql_query
622
+ del self._unparsed_views[view_name]
623
+ yield from self._build_lineage_for_view(view_name, sql_query)
624
+
625
+ except Exception as err:
626
+ yield Either(
627
+ left=StackTraceError(
628
+ name="parse_unparsed_views",
629
+ error=f"Error parsing unparsed views: {err}",
630
+ stackTrace=traceback.format_exc(),
631
+ )
632
+ )
633
+
634
+ def _add_dependency_edge(self, view_name: str, view_references: List[str]):
635
+ """
636
+ Add a dependency edge between the view and the derived reference
637
+ """
638
+ for dependent_view_name in view_references:
639
+ self._derived_dependencies.add_edge(view_name, dependent_view_name)
640
+
560
641
  def add_view_lineage(
561
642
  self, view: LookMlView, explore: LookmlModelExplore
562
643
  ) -> Iterable[Either[AddLineageRequest]]:
@@ -589,6 +670,7 @@ class LookerSource(DashboardServiceSource):
589
670
  for db_service_name in db_service_names or []:
590
671
  dialect = self._get_db_dialect(db_service_name)
591
672
  source_table_name = self._clean_table_name(sql_table_name, dialect)
673
+ self._parsed_views[view.name] = source_table_name
592
674
 
593
675
  # View to the source is only there if we are informing the dbServiceNames
594
676
  yield self.build_lineage_request(
@@ -601,20 +683,19 @@ class LookerSource(DashboardServiceSource):
601
683
  sql_query = view.derived_table.sql
602
684
  if not sql_query:
603
685
  return
686
+ if find_derived_references(sql_query):
687
+ sql_query = self.replace_derived_references(sql_query)
688
+ # If we still have derived references, we cannot process the view
689
+ if view_references := find_derived_references(sql_query):
690
+ self._add_dependency_edge(view.name, view_references)
691
+ logger.warning(
692
+ f"Not all references are replaced for view [{view.name}]. Parsing it later."
693
+ )
694
+ return
604
695
  logger.debug(f"Processing view [{view.name}] with SQL: \n[{sql_query}]")
605
- for db_service_name in db_service_names or []:
606
- lineage_parser = LineageParser(
607
- sql_query,
608
- self._get_db_dialect(db_service_name),
609
- timeout_seconds=30,
610
- )
611
- if lineage_parser.source_tables:
612
- for from_table_name in lineage_parser.source_tables:
613
- yield self.build_lineage_request(
614
- source=str(from_table_name),
615
- db_service_name=db_service_name,
616
- to_entity=self._view_data_model,
617
- )
696
+ yield from self._build_lineage_for_view(view.name, sql_query)
697
+ if self._unparsed_views:
698
+ self.build_lineage_for_unparsed_views()
618
699
 
619
700
  except Exception as err:
620
701
  yield Either(
@@ -625,6 +706,27 @@ class LookerSource(DashboardServiceSource):
625
706
  )
626
707
  )
627
708
 
709
+ def _build_lineage_for_view(
710
+ self, view_name: str, sql_query: str
711
+ ) -> Iterable[Either[AddLineageRequest]]:
712
+ """
713
+ Parse the SQL query and build lineage for the view.
714
+ """
715
+ for db_service_name in self.get_db_service_names() or []:
716
+ lineage_parser = LineageParser(
717
+ sql_query,
718
+ self._get_db_dialect(db_service_name),
719
+ timeout_seconds=30,
720
+ )
721
+ if lineage_parser.source_tables:
722
+ self._parsed_views[view_name] = sql_query
723
+ for from_table_name in lineage_parser.source_tables:
724
+ yield self.build_lineage_request(
725
+ source=str(from_table_name),
726
+ db_service_name=db_service_name,
727
+ to_entity=self._view_data_model,
728
+ )
729
+
628
730
  def _get_db_dialect(self, db_service_name) -> Dialect:
629
731
  db_service = self.metadata.get_by_name(DatabaseService, db_service_name)
630
732
  return ConnectionTypeDialectMapper.dialect_of(