openmetadata-ingestion 1.8.9.0__py3-none-any.whl → 1.9.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (826) hide show
  1. metadata/__init__.py +2 -0
  2. metadata/data_quality/validations/models.py +2 -2
  3. metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +78 -5
  4. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +10 -63
  5. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +4 -1
  6. metadata/generated/schema/analytics/__init__.py +1 -1
  7. metadata/generated/schema/analytics/basic.py +1 -1
  8. metadata/generated/schema/analytics/reportData.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  10. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  11. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  12. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  13. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  14. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  15. metadata/generated/schema/analytics/webAnalyticEvent.py +5 -5
  16. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  17. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  18. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  19. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  20. metadata/generated/schema/api/__init__.py +1 -1
  21. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  22. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  23. metadata/generated/schema/api/analytics/__init__.py +1 -1
  24. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +6 -5
  25. metadata/generated/schema/api/automations/__init__.py +1 -1
  26. metadata/generated/schema/api/automations/createWorkflow.py +6 -5
  27. metadata/generated/schema/api/bulkAssets.py +1 -1
  28. metadata/generated/schema/api/classification/__init__.py +1 -1
  29. metadata/generated/schema/api/classification/createClassification.py +6 -5
  30. metadata/generated/schema/api/classification/createTag.py +4 -4
  31. metadata/generated/schema/api/classification/loadTags.py +1 -1
  32. metadata/generated/schema/api/createBot.py +5 -5
  33. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  34. metadata/generated/schema/api/createType.py +6 -5
  35. metadata/generated/schema/api/data/__init__.py +1 -1
  36. metadata/generated/schema/api/data/createAPICollection.py +4 -4
  37. metadata/generated/schema/api/data/createAPIEndpoint.py +4 -4
  38. metadata/generated/schema/api/data/createChart.py +12 -4
  39. metadata/generated/schema/api/data/createContainer.py +4 -4
  40. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  41. metadata/generated/schema/api/data/createDashboard.py +4 -4
  42. metadata/generated/schema/api/data/createDashboardDataModel.py +4 -4
  43. metadata/generated/schema/api/data/createDataContract.py +11 -5
  44. metadata/generated/schema/api/data/createDatabase.py +4 -4
  45. metadata/generated/schema/api/data/createDatabaseSchema.py +4 -4
  46. metadata/generated/schema/api/data/createDirectory.py +105 -0
  47. metadata/generated/schema/api/data/createFile.py +104 -0
  48. metadata/generated/schema/api/data/createGlossary.py +4 -4
  49. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  50. metadata/generated/schema/api/data/createMetric.py +4 -4
  51. metadata/generated/schema/api/data/createMlModel.py +4 -4
  52. metadata/generated/schema/api/data/createPipeline.py +4 -4
  53. metadata/generated/schema/api/data/createQuery.py +5 -4
  54. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  55. metadata/generated/schema/api/data/createSearchIndex.py +4 -4
  56. metadata/generated/schema/api/data/createSpreadsheet.py +111 -0
  57. metadata/generated/schema/api/data/createStoredProcedure.py +4 -4
  58. metadata/generated/schema/api/data/createTable.py +5 -4
  59. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  60. metadata/generated/schema/api/data/createTopic.py +5 -4
  61. metadata/generated/schema/api/data/createWorksheet.py +105 -0
  62. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  63. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  64. metadata/generated/schema/api/data/updateColumn.py +1 -1
  65. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  66. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +5 -4
  67. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  68. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  69. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  70. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +5 -5
  71. metadata/generated/schema/api/docStore/__init__.py +1 -1
  72. metadata/generated/schema/api/docStore/createDocument.py +6 -5
  73. metadata/generated/schema/api/domains/__init__.py +1 -1
  74. metadata/generated/schema/api/domains/createDataProduct.py +4 -4
  75. metadata/generated/schema/api/domains/createDomain.py +1 -1
  76. metadata/generated/schema/api/entityRelationship/__init__.py +3 -0
  77. metadata/generated/schema/api/entityRelationship/entityRelationshipDirection.py +12 -0
  78. metadata/generated/schema/api/entityRelationship/esEntityRelationshipData.py +57 -0
  79. metadata/generated/schema/api/entityRelationship/relationshipRef.py +32 -0
  80. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipRequest.py +47 -0
  81. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipResult.py +47 -0
  82. metadata/generated/schema/api/entityRelationship/searchSchemaEntityRelationshipResult.py +20 -0
  83. metadata/generated/schema/api/feed/__init__.py +1 -1
  84. metadata/generated/schema/api/feed/closeTask.py +1 -1
  85. metadata/generated/schema/api/feed/createPost.py +1 -1
  86. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  87. metadata/generated/schema/api/feed/createThread.py +6 -2
  88. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  89. metadata/generated/schema/api/feed/threadCount.py +1 -1
  90. metadata/generated/schema/api/governance/__init__.py +1 -1
  91. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  92. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  93. metadata/generated/schema/api/lineage/__init__.py +1 -1
  94. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  95. metadata/generated/schema/api/lineage/esLineageData.py +4 -1
  96. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  97. metadata/generated/schema/api/lineage/nodeInformation.py +5 -2
  98. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  99. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  100. metadata/generated/schema/api/mcp/__init__.py +1 -1
  101. metadata/generated/schema/api/mcp/mcpToolDefinition.py +1 -1
  102. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  103. metadata/generated/schema/api/policies/__init__.py +1 -1
  104. metadata/generated/schema/api/policies/createPolicy.py +6 -5
  105. metadata/generated/schema/api/scim/__init__.py +1 -1
  106. metadata/generated/schema/api/scim/scimGroup.py +1 -1
  107. metadata/generated/schema/api/scim/scimPatchOp.py +1 -1
  108. metadata/generated/schema/api/scim/scimUser.py +1 -1
  109. metadata/generated/schema/api/search/__init__.py +1 -1
  110. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  111. metadata/generated/schema/api/services/__init__.py +1 -1
  112. metadata/generated/schema/api/services/createApiService.py +4 -4
  113. metadata/generated/schema/api/services/createDashboardService.py +4 -4
  114. metadata/generated/schema/api/services/createDatabaseService.py +4 -4
  115. metadata/generated/schema/api/services/createDriveService.py +58 -0
  116. metadata/generated/schema/api/services/createMessagingService.py +4 -4
  117. metadata/generated/schema/api/services/createMetadataService.py +5 -4
  118. metadata/generated/schema/api/services/createMlModelService.py +4 -4
  119. metadata/generated/schema/api/services/createPipelineService.py +4 -4
  120. metadata/generated/schema/api/services/createSearchService.py +4 -4
  121. metadata/generated/schema/api/services/createSecurityService.py +4 -4
  122. metadata/generated/schema/api/services/createStorageService.py +4 -4
  123. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  124. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +13 -5
  125. metadata/generated/schema/api/setOwner.py +1 -1
  126. metadata/generated/schema/api/teams/__init__.py +1 -1
  127. metadata/generated/schema/api/teams/createPersona.py +12 -4
  128. metadata/generated/schema/api/teams/createRole.py +5 -4
  129. metadata/generated/schema/api/teams/createTeam.py +1 -1
  130. metadata/generated/schema/api/teams/createUser.py +1 -1
  131. metadata/generated/schema/api/tests/__init__.py +1 -1
  132. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  133. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  134. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  135. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  136. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  137. metadata/generated/schema/api/tests/createTestDefinition.py +5 -4
  138. metadata/generated/schema/api/tests/createTestSuite.py +13 -5
  139. metadata/generated/schema/api/tests/moveGlossaryTermRequest.py +27 -0
  140. metadata/generated/schema/api/validateGlossaryTagsRequest.py +1 -1
  141. metadata/generated/schema/api/voteRequest.py +1 -1
  142. metadata/generated/schema/auth/__init__.py +1 -1
  143. metadata/generated/schema/auth/basicAuth.py +1 -1
  144. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  145. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  146. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  147. metadata/generated/schema/auth/emailRequest.py +1 -1
  148. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  149. metadata/generated/schema/auth/generateToken.py +1 -1
  150. metadata/generated/schema/auth/jwtAuth.py +1 -1
  151. metadata/generated/schema/auth/loginRequest.py +1 -1
  152. metadata/generated/schema/auth/logoutRequest.py +1 -1
  153. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  154. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  155. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  156. metadata/generated/schema/auth/refreshToken.py +1 -1
  157. metadata/generated/schema/auth/registrationRequest.py +1 -1
  158. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  159. metadata/generated/schema/auth/revokeToken.py +1 -1
  160. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  161. metadata/generated/schema/auth/ssoAuth.py +1 -1
  162. metadata/generated/schema/auth/supportToken.py +1 -1
  163. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  164. metadata/generated/schema/configuration/__init__.py +1 -1
  165. metadata/generated/schema/configuration/aiPlatformConfiguration.py +58 -0
  166. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  167. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  168. metadata/generated/schema/configuration/authConfig.py +1 -1
  169. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  170. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  171. metadata/generated/schema/configuration/cacheConfiguration.py +137 -0
  172. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  173. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  174. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  175. metadata/generated/schema/configuration/entityRulesSettings.py +24 -0
  176. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  177. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  178. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  182. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  183. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  184. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  185. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  186. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  187. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  188. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  189. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  190. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  191. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  192. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  193. metadata/generated/schema/configuration/opsConfig.py +1 -1
  194. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  195. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  196. metadata/generated/schema/configuration/searchSettings.py +1 -1
  197. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  198. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  199. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  200. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  201. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  202. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  203. metadata/generated/schema/dataInsight/__init__.py +1 -1
  204. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  205. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  206. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  207. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  208. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  209. metadata/generated/schema/dataInsight/custom/lineChart.py +5 -1
  210. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  211. metadata/generated/schema/dataInsight/dataInsightChart.py +5 -5
  212. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  213. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  214. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  215. metadata/generated/schema/dataInsight/kpi/kpi.py +4 -4
  216. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  217. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  218. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  219. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  220. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  221. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  222. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  223. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  224. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  225. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  226. metadata/generated/schema/email/__init__.py +1 -1
  227. metadata/generated/schema/email/emailRequest.py +1 -1
  228. metadata/generated/schema/email/emailTemplate.py +1 -1
  229. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  230. metadata/generated/schema/email/smtpSettings.py +1 -1
  231. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  232. metadata/generated/schema/entity/__init__.py +1 -1
  233. metadata/generated/schema/entity/applications/__init__.py +1 -1
  234. metadata/generated/schema/entity/applications/app.py +4 -4
  235. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  236. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +5 -5
  245. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +4 -4
  250. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/external/automator/propagationStopConfig.py +2 -2
  252. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  253. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  258. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  260. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  262. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  263. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  264. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  265. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  266. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  267. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  268. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  269. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  270. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  271. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  272. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  273. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  274. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  275. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  276. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  277. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  278. metadata/generated/schema/entity/applications/createAppRequest.py +6 -5
  279. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  280. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  281. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  282. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +5 -11
  283. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +5 -4
  284. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  285. metadata/generated/schema/entity/automations/__init__.py +1 -1
  286. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  287. metadata/generated/schema/entity/automations/workflow.py +5 -5
  288. metadata/generated/schema/entity/bot.py +5 -5
  289. metadata/generated/schema/entity/classification/__init__.py +1 -1
  290. metadata/generated/schema/entity/classification/classification.py +5 -5
  291. metadata/generated/schema/entity/classification/tag.py +4 -4
  292. metadata/generated/schema/entity/data/__init__.py +1 -1
  293. metadata/generated/schema/entity/data/apiCollection.py +4 -4
  294. metadata/generated/schema/entity/data/apiEndpoint.py +4 -4
  295. metadata/generated/schema/entity/data/chart.py +11 -4
  296. metadata/generated/schema/entity/data/container.py +4 -4
  297. metadata/generated/schema/entity/data/dashboard.py +4 -4
  298. metadata/generated/schema/entity/data/dashboardDataModel.py +4 -4
  299. metadata/generated/schema/entity/data/dataContract.py +40 -53
  300. metadata/generated/schema/entity/data/database.py +4 -4
  301. metadata/generated/schema/entity/data/databaseSchema.py +4 -4
  302. metadata/generated/schema/entity/data/directory.py +173 -0
  303. metadata/generated/schema/entity/data/file.py +184 -0
  304. metadata/generated/schema/entity/data/glossary.py +4 -4
  305. metadata/generated/schema/entity/data/glossaryTerm.py +4 -4
  306. metadata/generated/schema/entity/data/metric.py +4 -5
  307. metadata/generated/schema/entity/data/mlmodel.py +4 -4
  308. metadata/generated/schema/entity/data/pipeline.py +4 -4
  309. metadata/generated/schema/entity/data/query.py +4 -4
  310. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  311. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  312. metadata/generated/schema/entity/data/report.py +4 -4
  313. metadata/generated/schema/entity/data/searchIndex.py +4 -4
  314. metadata/generated/schema/entity/data/spreadsheet.py +209 -0
  315. metadata/generated/schema/entity/data/storedProcedure.py +4 -4
  316. metadata/generated/schema/entity/data/table.py +50 -4
  317. metadata/generated/schema/entity/data/topic.py +4 -4
  318. metadata/generated/schema/entity/data/worksheet.py +168 -0
  319. metadata/generated/schema/entity/datacontract/__init__.py +3 -0
  320. metadata/generated/schema/entity/datacontract/dataContractResult.py +74 -0
  321. metadata/generated/schema/entity/datacontract/qualityValidation.py +31 -0
  322. metadata/generated/schema/entity/datacontract/schemaValidation.py +31 -0
  323. metadata/generated/schema/entity/datacontract/semanticsValidation.py +39 -0
  324. metadata/generated/schema/entity/datacontract/slaValidation.py +32 -0
  325. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  326. metadata/generated/schema/entity/docStore/document.py +5 -5
  327. metadata/generated/schema/entity/domains/__init__.py +1 -1
  328. metadata/generated/schema/entity/domains/dataProduct.py +5 -5
  329. metadata/generated/schema/entity/domains/domain.py +1 -1
  330. metadata/generated/schema/entity/events/__init__.py +1 -1
  331. metadata/generated/schema/entity/events/webhook.py +1 -1
  332. metadata/generated/schema/entity/feed/__init__.py +1 -1
  333. metadata/generated/schema/entity/feed/assets.py +1 -1
  334. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  335. metadata/generated/schema/entity/feed/description.py +1 -1
  336. metadata/generated/schema/entity/feed/domain.py +8 -8
  337. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  338. metadata/generated/schema/entity/feed/owner.py +1 -1
  339. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  340. metadata/generated/schema/entity/feed/tag.py +1 -1
  341. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  342. metadata/generated/schema/entity/feed/thread.py +4 -3
  343. metadata/generated/schema/entity/policies/__init__.py +1 -1
  344. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  345. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  346. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  347. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  348. metadata/generated/schema/entity/policies/filters.py +1 -1
  349. metadata/generated/schema/entity/policies/policy.py +4 -4
  350. metadata/generated/schema/entity/services/__init__.py +1 -1
  351. metadata/generated/schema/entity/services/apiService.py +4 -4
  352. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  353. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  354. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  356. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  357. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  358. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  359. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  360. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  361. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  371. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  372. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  373. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  374. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  375. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/dashboard/thoughtSpotConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/epicConnection.py +80 -0
  417. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/database/ssasConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/drive/__init__.py +3 -0
  456. metadata/generated/schema/entity/services/connections/drive/customDriveConnection.py +45 -0
  457. metadata/generated/schema/entity/services/connections/drive/googleDriveConnection.py +82 -0
  458. metadata/generated/schema/entity/services/connections/drive/sharePointConnection.py +79 -0
  459. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  460. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  466. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  467. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  470. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  474. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  480. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  482. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  489. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  491. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  493. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  494. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  495. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  496. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  497. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  498. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  499. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  500. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  501. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  502. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  503. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  504. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  505. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  506. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  507. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  508. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  509. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  510. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  511. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  512. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  513. metadata/generated/schema/entity/services/connections/security/__init__.py +1 -1
  514. metadata/generated/schema/entity/services/connections/security/ranger/__init__.py +1 -1
  515. metadata/generated/schema/entity/services/connections/security/ranger/basicAuth.py +1 -1
  516. metadata/generated/schema/entity/services/connections/security/rangerConnection.py +1 -1
  517. metadata/generated/schema/entity/services/connections/serviceConnection.py +4 -1
  518. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  519. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  520. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  521. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  522. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  523. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +5 -5
  524. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  525. metadata/generated/schema/entity/services/dashboardService.py +4 -4
  526. metadata/generated/schema/entity/services/databaseService.py +7 -4
  527. metadata/generated/schema/entity/services/driveService.py +143 -0
  528. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  529. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +11 -4
  530. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  531. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  532. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  533. metadata/generated/schema/entity/services/messagingService.py +4 -4
  534. metadata/generated/schema/entity/services/metadataService.py +4 -4
  535. metadata/generated/schema/entity/services/mlmodelService.py +4 -4
  536. metadata/generated/schema/entity/services/pipelineService.py +4 -4
  537. metadata/generated/schema/entity/services/searchService.py +4 -4
  538. metadata/generated/schema/entity/services/securityService.py +4 -4
  539. metadata/generated/schema/entity/services/serviceType.py +2 -1
  540. metadata/generated/schema/entity/services/storageService.py +4 -4
  541. metadata/generated/schema/entity/teams/__init__.py +1 -1
  542. metadata/generated/schema/entity/teams/persona.py +11 -4
  543. metadata/generated/schema/entity/teams/role.py +5 -5
  544. metadata/generated/schema/entity/teams/team.py +1 -1
  545. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  546. metadata/generated/schema/entity/teams/user.py +21 -3
  547. metadata/generated/schema/entity/type.py +5 -11
  548. metadata/generated/schema/entity/utils/__init__.py +1 -1
  549. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  550. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  551. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  552. metadata/generated/schema/events/__init__.py +1 -1
  553. metadata/generated/schema/events/alertMetrics.py +1 -1
  554. metadata/generated/schema/events/api/__init__.py +1 -1
  555. metadata/generated/schema/events/api/createEventSubscription.py +5 -4
  556. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  557. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  558. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  559. metadata/generated/schema/events/api/typedEvent.py +1 -1
  560. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  561. metadata/generated/schema/events/eventFilterRule.py +1 -1
  562. metadata/generated/schema/events/eventSubscription.py +5 -5
  563. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  564. metadata/generated/schema/events/failedEvent.py +1 -1
  565. metadata/generated/schema/events/failedEventResponse.py +1 -1
  566. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  567. metadata/generated/schema/events/statusContext.py +1 -1
  568. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  569. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  570. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  571. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  572. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  573. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  574. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  575. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  576. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  577. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  578. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  579. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  580. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  581. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  582. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  583. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  584. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  585. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  586. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  587. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  588. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  589. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  590. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  591. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  592. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +9 -1
  593. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  594. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  595. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  596. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  597. metadata/generated/schema/governance/workflows/workflowInstanceState.py +5 -1
  598. metadata/generated/schema/jobs/__init__.py +1 -1
  599. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  600. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  601. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  602. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  603. metadata/generated/schema/metadataIngestion/application.py +1 -1
  604. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  605. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  606. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  607. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  608. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  609. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +25 -3
  610. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  611. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  612. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  613. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  614. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  615. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  616. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  617. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  618. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  619. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  620. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  621. metadata/generated/schema/metadataIngestion/driveServiceMetadataPipeline.py +165 -0
  622. metadata/generated/schema/metadataIngestion/engine/__init__.py +3 -0
  623. metadata/generated/schema/metadataIngestion/engine/nativeEngineConfig.py +23 -0
  624. metadata/generated/schema/metadataIngestion/engine/sparkEngineConfig.py +43 -0
  625. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  626. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  627. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  628. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  629. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  630. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  631. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  632. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  633. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  634. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  635. metadata/generated/schema/metadataIngestion/securityServiceMetadataPipeline.py +1 -1
  636. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  637. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  638. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  639. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  640. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  641. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  642. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  643. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  644. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  645. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  646. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  647. metadata/generated/schema/metadataIngestion/workflow.py +3 -1
  648. metadata/generated/schema/monitoring/__init__.py +1 -1
  649. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  650. metadata/generated/schema/scim/__init__.py +1 -1
  651. metadata/generated/schema/scim/scimConfiguration.py +1 -1
  652. metadata/generated/schema/search/__init__.py +1 -1
  653. metadata/generated/schema/search/aggregationRequest.py +1 -1
  654. metadata/generated/schema/search/searchRequest.py +1 -1
  655. metadata/generated/schema/security/__init__.py +1 -1
  656. metadata/generated/schema/security/client/__init__.py +1 -1
  657. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  658. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  659. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  660. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  661. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  662. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  663. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  664. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  665. metadata/generated/schema/security/credentials/__init__.py +1 -1
  666. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  667. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  668. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  669. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  670. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  671. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  672. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  673. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  674. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  675. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  676. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  677. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  678. metadata/generated/schema/security/credentials/kubernetesCredentials.py +40 -0
  679. metadata/generated/schema/security/sasl/__init__.py +1 -1
  680. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  681. metadata/generated/schema/security/secrets/__init__.py +1 -1
  682. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  683. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  684. metadata/generated/schema/security/secrets/secretsManagerProvider.py +2 -1
  685. metadata/generated/schema/security/securityConfiguration.py +1 -1
  686. metadata/generated/schema/security/ssl/__init__.py +1 -1
  687. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  688. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  689. metadata/generated/schema/settings/__init__.py +1 -1
  690. metadata/generated/schema/settings/settings.py +4 -1
  691. metadata/generated/schema/system/__init__.py +1 -1
  692. metadata/generated/schema/system/entityError.py +1 -1
  693. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  694. metadata/generated/schema/system/indexingError.py +1 -1
  695. metadata/generated/schema/system/limitsResponse.py +1 -1
  696. metadata/generated/schema/system/ui/__init__.py +1 -1
  697. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  698. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  699. metadata/generated/schema/system/ui/page.py +5 -4
  700. metadata/generated/schema/system/ui/tab.py +1 -1
  701. metadata/generated/schema/system/ui/uiCustomization.py +9 -2
  702. metadata/generated/schema/system/validationResponse.py +1 -1
  703. metadata/generated/schema/tests/__init__.py +1 -1
  704. metadata/generated/schema/tests/assigned.py +1 -1
  705. metadata/generated/schema/tests/basic.py +1 -1
  706. metadata/generated/schema/tests/customMetric.py +1 -1
  707. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  708. metadata/generated/schema/tests/resolved.py +1 -1
  709. metadata/generated/schema/tests/testCase.py +4 -4
  710. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  711. metadata/generated/schema/tests/testDefinition.py +5 -5
  712. metadata/generated/schema/tests/testSuite.py +11 -4
  713. metadata/generated/schema/type/__init__.py +1 -1
  714. metadata/generated/schema/type/apiSchema.py +1 -1
  715. metadata/generated/schema/type/assetCertification.py +1 -1
  716. metadata/generated/schema/type/auditLog.py +1 -1
  717. metadata/generated/schema/type/basic.py +43 -1
  718. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  719. metadata/generated/schema/type/changeEvent.py +5 -7
  720. metadata/generated/schema/type/changeEventType.py +1 -1
  721. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  722. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  723. metadata/generated/schema/type/contractExecutionStatus.py +16 -0
  724. metadata/generated/schema/type/csvDocumentation.py +1 -1
  725. metadata/generated/schema/type/csvErrorType.py +1 -1
  726. metadata/generated/schema/type/csvFile.py +1 -1
  727. metadata/generated/schema/type/csvImportResult.py +1 -1
  728. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  729. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  730. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  731. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  732. metadata/generated/schema/type/customProperty.py +1 -1
  733. metadata/generated/schema/type/dailyCount.py +1 -1
  734. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  735. metadata/generated/schema/type/entityHierarchy.py +1 -1
  736. metadata/generated/schema/type/entityHistory.py +1 -1
  737. metadata/generated/schema/type/entityLineage.py +1 -1
  738. metadata/generated/schema/type/entityReference.py +1 -1
  739. metadata/generated/schema/type/entityReferenceList.py +1 -1
  740. metadata/generated/schema/type/{entityRelationship.py → entityRelationship/__init__.py} +2 -2
  741. metadata/generated/schema/type/entityRelationship/nodeInformation.py +25 -0
  742. metadata/generated/schema/type/entityUsage.py +1 -1
  743. metadata/generated/schema/type/filterPattern.py +1 -1
  744. metadata/generated/schema/type/function.py +1 -1
  745. metadata/generated/schema/type/include.py +1 -1
  746. metadata/generated/schema/type/jdbcConnection.py +1 -1
  747. metadata/generated/schema/type/layerPaging.py +24 -0
  748. metadata/generated/schema/type/lifeCycle.py +1 -1
  749. metadata/generated/schema/type/paging.py +1 -1
  750. metadata/generated/schema/type/personaPreferences.py +48 -0
  751. metadata/generated/schema/type/profile.py +1 -1
  752. metadata/generated/schema/type/queryParserData.py +1 -1
  753. metadata/generated/schema/type/reaction.py +1 -1
  754. metadata/generated/schema/type/schedule.py +1 -1
  755. metadata/generated/schema/type/schema.py +1 -1
  756. metadata/generated/schema/type/tableQuery.py +1 -1
  757. metadata/generated/schema/type/tableUsageCount.py +1 -1
  758. metadata/generated/schema/type/tagLabel.py +1 -1
  759. metadata/generated/schema/type/usageDetails.py +1 -1
  760. metadata/generated/schema/type/usageRequest.py +1 -1
  761. metadata/generated/schema/type/votes.py +1 -1
  762. metadata/ingestion/api/parser.py +13 -0
  763. metadata/ingestion/connections/connection.py +18 -1
  764. metadata/ingestion/lineage/sql_lineage.py +21 -0
  765. metadata/ingestion/models/custom_properties.py +3 -3
  766. metadata/ingestion/models/patch_request.py +36 -4
  767. metadata/ingestion/ometa/mixins/data_contract_mixin.py +205 -0
  768. metadata/ingestion/ometa/mixins/patch_mixin.py +131 -55
  769. metadata/ingestion/ometa/ometa_api.py +4 -1
  770. metadata/ingestion/ometa/routes.py +32 -0
  771. metadata/ingestion/sink/metadata_rest.py +51 -0
  772. metadata/ingestion/source/api/rest/metadata.py +1 -0
  773. metadata/ingestion/source/connections.py +1 -1
  774. metadata/ingestion/source/dashboard/superset/connection.py +5 -7
  775. metadata/ingestion/source/dashboard/tableau/client.py +4 -4
  776. metadata/ingestion/source/dashboard/tableau/metadata.py +1 -0
  777. metadata/ingestion/source/database/datalake/connection.py +51 -73
  778. metadata/ingestion/source/database/datalake/metadata.py +3 -4
  779. metadata/ingestion/source/database/datalake/service_spec.py +2 -0
  780. metadata/ingestion/source/database/dbt/constants.py +17 -1
  781. metadata/ingestion/source/database/dbt/dbt_service.py +30 -1
  782. metadata/ingestion/source/database/dbt/metadata.py +135 -0
  783. metadata/ingestion/source/database/deltalake/clients/pyspark.py +1 -1
  784. metadata/ingestion/source/database/exasol/connection.py +14 -3
  785. metadata/ingestion/source/database/exasol/queries.py +13 -0
  786. metadata/ingestion/source/database/mysql/connection.py +13 -19
  787. metadata/ingestion/source/database/oracle/metadata.py +1 -1
  788. metadata/ingestion/source/database/oracle/utils.py +19 -0
  789. metadata/ingestion/source/database/postgres/connection.py +51 -48
  790. metadata/ingestion/source/database/postgres/service_spec.py +2 -0
  791. metadata/ingestion/source/database/sample_data.py +661 -2
  792. metadata/ingestion/source/database/snowflake/connection.py +196 -162
  793. metadata/ingestion/source/database/snowflake/service_spec.py +2 -0
  794. metadata/ingestion/source/database/trino/connection.py +279 -125
  795. metadata/ingestion/source/database/trino/service_spec.py +2 -0
  796. metadata/ingestion/source/database/unitycatalog/connection.py +20 -3
  797. metadata/ingestion/source/database/unitycatalog/queries.py +37 -1
  798. metadata/ingestion/source/database/unitycatalog/query_parser.py +4 -0
  799. metadata/ingestion/source/database/unitycatalog/usage.py +21 -35
  800. metadata/ingestion/source/drive/drive_service.py +648 -0
  801. metadata/ingestion/source/drives/__init__.py +13 -0
  802. metadata/ingestion/source/pipeline/airflow/metadata.py +33 -10
  803. metadata/ingestion/source/pipeline/fivetran/metadata.py +2 -2
  804. metadata/profiler/processor/processor.py +18 -3
  805. metadata/profiler/source/database/base/profiler_resolver.py +5 -2
  806. metadata/profiler/source/database/base/profiler_source.py +8 -1
  807. metadata/profiler/source/profiler_source_interface.py +11 -2
  808. metadata/sampler/pandas/sampler.py +1 -1
  809. metadata/sampler/processor.py +19 -3
  810. metadata/sampler/sampler_interface.py +7 -0
  811. metadata/utils/credentials.py +35 -0
  812. metadata/utils/db_utils.py +4 -0
  813. metadata/utils/filters.py +60 -0
  814. metadata/utils/fqn.py +79 -0
  815. metadata/utils/logger.py +9 -0
  816. metadata/utils/metadata_service_helper.py +1 -1
  817. metadata/utils/secrets/kubernetes_secrets_manager.py +176 -0
  818. metadata/utils/secrets/secrets_manager_factory.py +3 -0
  819. metadata/workflow/ingestion.py +15 -2
  820. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/METADATA +542 -535
  821. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/RECORD +825 -780
  822. metadata/ingestion/source/database/extended_sample_data.py +0 -534
  823. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/LICENSE +0 -0
  824. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/WHEEL +0 -0
  825. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/entry_points.txt +0 -0
  826. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/top_level.txt +0 -0
@@ -13,24 +13,27 @@
13
13
  Source connection handler
14
14
  """
15
15
  from copy import deepcopy
16
- from typing import Optional
16
+ from typing import Optional, cast
17
17
  from urllib.parse import quote_plus
18
18
 
19
19
  from requests import Session
20
20
  from sqlalchemy.engine import Engine
21
21
  from trino.auth import BasicAuthentication, JWTAuthentication, OAuth2Authentication
22
22
 
23
- from metadata.clients.azure_client import AzureClient
24
23
  from metadata.generated.schema.entity.automations.workflow import (
25
24
  Workflow as AutomationWorkflow,
26
25
  )
26
+ from metadata.generated.schema.entity.services.connections.connectionBasicType import (
27
+ ConnectionArguments,
28
+ )
27
29
  from metadata.generated.schema.entity.services.connections.database.common import (
30
+ azureConfig,
28
31
  basicAuth,
29
32
  jwtAuth,
30
33
  noConfigAuthenticationTypes,
31
34
  )
32
35
  from metadata.generated.schema.entity.services.connections.database.trinoConnection import (
33
- TrinoConnection,
36
+ TrinoConnection as TrinoConnectionConfig,
34
37
  )
35
38
  from metadata.generated.schema.entity.services.connections.testConnectionResult import (
36
39
  TestConnectionResult,
@@ -41,6 +44,7 @@ from metadata.ingestion.connections.builders import (
41
44
  init_empty_connection_arguments,
42
45
  init_empty_connection_options,
43
46
  )
47
+ from metadata.ingestion.connections.connection import BaseConnection
44
48
  from metadata.ingestion.connections.secrets import connection_with_options_secrets
45
49
  from metadata.ingestion.connections.test_connections import (
46
50
  test_connection_db_schema_sources,
@@ -48,151 +52,301 @@ from metadata.ingestion.connections.test_connections import (
48
52
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
49
53
  from metadata.ingestion.source.database.trino.queries import TRINO_GET_DATABASE
50
54
  from metadata.utils.constants import THREE_MIN
55
+ from metadata.utils.credentials import get_azure_access_token
51
56
 
52
57
 
53
- def get_connection_url(connection: TrinoConnection) -> str:
54
- """
55
- Prepare the connection url for trino
56
- """
57
- url = f"{connection.scheme.value}://"
58
-
59
- # leaving username here as, even though with basic auth is used directly
60
- # in BasicAuthentication class, it's often also required as a part of url.
61
- # For example - it will be used by OAuth2Authentication to persist token in
62
- # cache more efficiently (per user instead of per host)
63
- if connection.username:
64
- url += f"{quote_plus(connection.username)}@"
65
-
66
- url += f"{connection.hostPort}"
67
- if connection.catalog:
68
- url += f"/{connection.catalog}"
69
- if connection.connectionOptions is not None:
70
- params = "&".join(
71
- f"{key}={quote_plus(value)}"
72
- for (key, value) in connection.connectionOptions.root.items()
73
- if value
74
- )
75
- url = f"{url}?{params}"
76
- return url
58
+ # pylint: disable=unused-argument
59
+ def _is_disconnect(self, e, connection, cursor):
60
+ """is_disconnect method for the Databricks dialect"""
61
+ if "JWT expired" in str(e):
62
+ return True
63
+ return False
77
64
 
78
65
 
79
- @connection_with_options_secrets
80
- def get_connection_args(connection: TrinoConnection):
81
- if not connection.connectionArguments:
82
- connection.connectionArguments = init_empty_connection_arguments()
66
+ class TrinoConnection(BaseConnection[TrinoConnectionConfig, Engine]):
67
+ def __init__(self, connection: TrinoConnectionConfig):
68
+ super().__init__(connection)
83
69
 
84
- if connection.proxies:
85
- session = Session()
86
- session.proxies = connection.proxies
70
+ def _get_client(self) -> Engine:
71
+ """
72
+ Create connection
73
+ """
74
+ # here we are creating a copy of connection, because we need to dynamically
75
+ # add auth params to connectionArguments, which we do no intend to store
76
+ # in original connection object and in OpenMetadata database
77
+ from trino.sqlalchemy.dialect import TrinoDialect
87
78
 
88
- connection.connectionArguments.root["http_session"] = session
79
+ TrinoDialect.is_disconnect = _is_disconnect # type: ignore
89
80
 
90
- if isinstance(connection.authType, basicAuth.BasicAuth):
91
- connection.connectionArguments.root["auth"] = BasicAuthentication(
92
- connection.username,
93
- connection.authType.password.get_secret_value()
94
- if connection.authType.password
95
- else None,
81
+ connection = self.service_connection
82
+ connection_copy = deepcopy(connection)
83
+
84
+ if hasattr(connection.authType, "azureConfig"):
85
+ auth_type = cast(azureConfig.AzureConfigurationSource, connection.authType)
86
+ access_token = get_azure_access_token(auth_type)
87
+ if not connection.connectionOptions:
88
+ connection.connectionOptions = init_empty_connection_options()
89
+ connection.connectionOptions.root["access_token"] = access_token
90
+
91
+ # Update the connection with the connection arguments
92
+ connection_copy.connectionArguments = self.build_connection_args(
93
+ connection_copy
96
94
  )
97
- connection.connectionArguments.root["http_scheme"] = "https"
98
95
 
99
- elif isinstance(connection.authType, jwtAuth.JwtAuth):
100
- connection.connectionArguments.root["auth"] = JWTAuthentication(
101
- connection.authType.jwt.get_secret_value()
96
+ return create_generic_db_connection(
97
+ connection=connection_copy,
98
+ get_connection_url_fn=self.get_connection_url,
99
+ get_connection_args_fn=get_connection_args_common,
102
100
  )
103
- connection.connectionArguments.root["http_scheme"] = "https"
104
101
 
105
- elif hasattr(connection.authType, "azureConfig"):
106
- if not connection.authType.azureConfig.scopes:
107
- raise ValueError(
108
- "Azure Scopes are missing, please refer https://learn.microsoft.com/en-gb/azure/mysql/flexible-server/how-to-azure-ad#2---retrieve-microsoft-entra-access-token and fetch the resource associated with it, for e.g. https://ossrdbms-aad.database.windows.net/.default"
102
+ def test_connection(
103
+ self,
104
+ metadata: OpenMetadata,
105
+ automation_workflow: Optional[AutomationWorkflow] = None,
106
+ timeout_seconds: Optional[int] = THREE_MIN,
107
+ ) -> TestConnectionResult:
108
+ """
109
+ Test connection. This can be executed either as part
110
+ of a metadata workflow or during an Automation Workflow
111
+ """
112
+ queries = {
113
+ "GetDatabases": TRINO_GET_DATABASE,
114
+ }
115
+
116
+ return test_connection_db_schema_sources(
117
+ metadata=metadata,
118
+ engine=self.client,
119
+ service_connection=self.service_connection,
120
+ automation_workflow=automation_workflow,
121
+ queries=queries,
122
+ timeout_seconds=timeout_seconds,
123
+ )
124
+
125
+ def get_connection_dict(self) -> dict:
126
+ """
127
+ Return the connection dictionary for this service.
128
+ """
129
+ url = self.client.url
130
+ connection_copy = deepcopy(self.service_connection)
131
+
132
+ connection_dict = {
133
+ "driver": url.drivername,
134
+ "host": url.host,
135
+ "port": url.port,
136
+ "user": url.username,
137
+ "catalog": url.database,
138
+ "schema": url.query.get("schema"),
139
+ }
140
+
141
+ connection_dict.update(url.query)
142
+
143
+ if connection_copy.proxies:
144
+ connection_dict["http_session"] = connection_copy.proxies
145
+
146
+ if (
147
+ connection_copy.connectionArguments
148
+ and connection_copy.connectionArguments.root
149
+ ):
150
+ connection_with_options_secrets(lambda: connection_copy)
151
+ connection_dict.update(get_connection_args_common(connection_copy))
152
+
153
+ if isinstance(connection_copy.authType, basicAuth.BasicAuth):
154
+ connection_dict["auth"] = TrinoConnection.get_basic_auth_dict(
155
+ connection_copy
109
156
  )
157
+ connection_dict["http_scheme"] = "https"
110
158
 
111
- azure_client = AzureClient(connection.authType.azureConfig).create_client()
159
+ elif isinstance(connection_copy.authType, jwtAuth.JwtAuth):
160
+ connection_dict["auth"] = TrinoConnection.get_jwt_auth_dict(connection_copy)
161
+ connection_dict["http_scheme"] = "https"
112
162
 
113
- access_token_obj = azure_client.get_token(
114
- *connection.authType.azureConfig.scopes.split(",")
115
- )
163
+ elif hasattr(connection_copy.authType, "azureConfig"):
164
+ connection_dict["auth"] = TrinoConnection.get_azure_auth_dict(
165
+ connection_copy
166
+ )
167
+ connection_dict["http_scheme"] = "https"
168
+
169
+ elif (
170
+ connection_copy.authType
171
+ == noConfigAuthenticationTypes.NoConfigAuthenticationTypes.OAuth2
172
+ ):
173
+ connection_dict["auth"] = TrinoConnection.get_oauth2_auth_dict(
174
+ connection_copy
175
+ )
176
+ connection_dict["http_scheme"] = "https"
177
+
178
+ return connection_dict
179
+
180
+ @staticmethod
181
+ def get_connection_url(connection: TrinoConnectionConfig) -> str:
182
+ """
183
+ Prepare the connection url for trino
184
+ """
185
+
186
+ url = f"{connection.scheme.value}://"
116
187
 
117
- connection.connectionArguments.root["auth"] = JWTAuthentication(
118
- access_token_obj.token
188
+ # leaving username here as, even though with basic auth is used directly
189
+ # in BasicAuthentication class, it's often also required as a part of url.
190
+ # For example - it will be used by OAuth2Authentication to persist token in
191
+ # cache more efficiently (per user instead of per host)
192
+ if connection.username:
193
+ url += f"{quote_plus(connection.username)}@"
194
+
195
+ url += f"{connection.hostPort}"
196
+ if connection.catalog:
197
+ url += f"/{connection.catalog}"
198
+ if connection.connectionOptions is not None:
199
+ params = "&".join(
200
+ f"{key}={quote_plus(value)}"
201
+ for (key, value) in connection.connectionOptions.root.items()
202
+ if value
203
+ )
204
+ url = f"{url}?{params}"
205
+ return url
206
+
207
+ @staticmethod
208
+ @connection_with_options_secrets
209
+ def build_connection_args(connection: TrinoConnectionConfig) -> ConnectionArguments:
210
+ """
211
+ Get the connection args for the trino connection
212
+ """
213
+ connection_args: ConnectionArguments = (
214
+ connection.connectionArguments or init_empty_connection_arguments()
119
215
  )
120
- connection.connectionArguments.root["http_scheme"] = "https"
216
+ assert connection_args.root is not None
217
+
218
+ if connection.verify:
219
+ connection_args.root["verify"] = {"verify": connection.verify}
220
+
221
+ if connection.proxies:
222
+ session = Session()
223
+ session.proxies = connection.proxies
224
+
225
+ connection_args.root["http_session"] = session
226
+
227
+ if isinstance(connection.authType, basicAuth.BasicAuth):
228
+ TrinoConnection.set_basic_auth(connection, connection_args)
121
229
 
122
- elif (
123
- connection.authType
124
- == noConfigAuthenticationTypes.NoConfigAuthenticationTypes.OAuth2
125
- ):
126
- connection.connectionArguments.root["auth"] = OAuth2Authentication()
127
- connection.connectionArguments.root["http_scheme"] = "https"
230
+ elif isinstance(connection.authType, jwtAuth.JwtAuth):
231
+ TrinoConnection.set_jwt_auth(connection, connection_args)
128
232
 
129
- return get_connection_args_common(connection)
233
+ elif hasattr(connection.authType, "azureConfig"):
234
+ TrinoConnection.set_azure_auth(connection, connection_args)
130
235
 
236
+ elif (
237
+ connection.authType
238
+ == noConfigAuthenticationTypes.NoConfigAuthenticationTypes.OAuth2
239
+ ):
240
+ TrinoConnection.set_oauth2_auth(connection, connection_args)
131
241
 
132
- def get_connection(connection: TrinoConnection) -> Engine:
133
- """
134
- Create connection
135
- """
136
- # here we are creating a copy of connection, because we need to dynamically
137
- # add auth params to connectionArguments, which we do no intend to store
138
- # in original connection object and in OpenMetadata database
139
- from trino.sqlalchemy.dialect import TrinoDialect
242
+ return connection_args
140
243
 
141
- TrinoDialect.is_disconnect = _is_disconnect
244
+ @staticmethod
245
+ def get_basic_auth_dict(connection: TrinoConnectionConfig) -> dict:
246
+ """
247
+ Get the basic auth dictionary for the trino connection
248
+ """
249
+ auth_type = cast(basicAuth.BasicAuth, connection.authType)
250
+ return {
251
+ "authType": "basic",
252
+ "username": connection.username,
253
+ "password": auth_type.password.get_secret_value()
254
+ if auth_type.password
255
+ else None,
256
+ }
257
+
258
+ @staticmethod
259
+ def set_basic_auth(
260
+ connection: TrinoConnectionConfig, connection_args: ConnectionArguments
261
+ ) -> None:
262
+ """
263
+ Get the basic auth dictionary for the trino connection
264
+ """
265
+ assert connection_args.root is not None
266
+ auth_type = cast(basicAuth.BasicAuth, connection.authType)
142
267
 
143
- connection_copy = deepcopy(connection)
144
- if connection_copy.verify:
145
- connection_copy.connectionArguments = (
146
- connection_copy.connectionArguments or init_empty_connection_arguments()
268
+ connection_args.root["auth"] = BasicAuthentication(
269
+ connection.username,
270
+ auth_type.password.get_secret_value() if auth_type.password else None,
147
271
  )
148
- connection.connectionArguments.root["verify"] = {"verify": connection.verify}
149
- if hasattr(connection.authType, "azureConfig"):
150
- azure_client = AzureClient(connection.authType.azureConfig).create_client()
151
- if not connection.authType.azureConfig.scopes:
152
- raise ValueError(
153
- "Azure Scopes are missing, please refer https://learn.microsoft.com/en-gb/azure/mysql/flexible-server/how-to-azure-ad#2---retrieve-microsoft-entra-access-token and fetch the resource associated with it, for e.g. https://ossrdbms-aad.database.windows.net/.default"
154
- )
155
- access_token_obj = azure_client.get_token(
156
- *connection.authType.azureConfig.scopes.split(",")
272
+ connection_args.root["http_scheme"] = "https"
273
+
274
+ @staticmethod
275
+ def get_jwt_auth_dict(connection: TrinoConnectionConfig) -> dict:
276
+ """
277
+ Get the jwt auth dictionary for the trino connection
278
+ """
279
+ auth_type = cast(jwtAuth.JwtAuth, connection.authType)
280
+
281
+ return {
282
+ "authType": "jwt",
283
+ "jwt": auth_type.jwt.get_secret_value(),
284
+ }
285
+
286
+ @staticmethod
287
+ def set_jwt_auth(
288
+ connection: TrinoConnectionConfig, connection_args: ConnectionArguments
289
+ ) -> None:
290
+ """
291
+ Set the jwt auth for the trino connection
292
+ """
293
+ assert connection_args.root is not None
294
+ auth_type = cast(jwtAuth.JwtAuth, connection.authType)
295
+
296
+ connection_args.root["auth"] = JWTAuthentication(
297
+ auth_type.jwt.get_secret_value()
157
298
  )
158
- if not connection.connectionOptions:
159
- connection.connectionOptions = init_empty_connection_options()
160
- connection.connectionOptions.root["access_token"] = access_token_obj.token
161
- return create_generic_db_connection(
162
- connection=connection_copy,
163
- get_connection_url_fn=get_connection_url,
164
- get_connection_args_fn=get_connection_args,
165
- )
166
-
167
-
168
- def test_connection(
169
- metadata: OpenMetadata,
170
- engine: Engine,
171
- service_connection: TrinoConnection,
172
- automation_workflow: Optional[AutomationWorkflow] = None,
173
- timeout_seconds: Optional[int] = THREE_MIN,
174
- ) -> TestConnectionResult:
175
- """
176
- Test connection. This can be executed either as part
177
- of a metadata workflow or during an Automation Workflow
178
- """
179
- queries = {
180
- "GetDatabases": TRINO_GET_DATABASE,
181
- }
182
-
183
- return test_connection_db_schema_sources(
184
- metadata=metadata,
185
- engine=engine,
186
- service_connection=service_connection,
187
- automation_workflow=automation_workflow,
188
- queries=queries,
189
- timeout_seconds=timeout_seconds,
190
- )
299
+ connection_args.root["http_scheme"] = "https"
191
300
 
301
+ @staticmethod
302
+ def get_azure_auth_dict(connection: TrinoConnectionConfig) -> dict:
303
+ """
304
+ Get the azure auth dictionary for the trino connection
305
+ """
306
+ return {
307
+ "authType": "jwt",
308
+ "jwt": TrinoConnection.get_azure_token(connection),
309
+ }
192
310
 
193
- # pylint: disable=unused-argument
194
- def _is_disconnect(self, e, connection, cursor):
195
- """is_disconnect method for the Databricks dialect"""
196
- if "JWT expired" in str(e):
197
- return True
198
- return False
311
+ @staticmethod
312
+ def set_azure_auth(
313
+ connection: TrinoConnectionConfig, connection_args: ConnectionArguments
314
+ ) -> None:
315
+ """
316
+ Set the azure auth for the trino connection
317
+ """
318
+ assert connection_args.root is not None
319
+
320
+ connection_args.root["auth"] = JWTAuthentication(
321
+ TrinoConnection.get_azure_token(connection)
322
+ )
323
+ connection_args.root["http_scheme"] = "https"
324
+
325
+ @staticmethod
326
+ def get_oauth2_auth_dict(connection: TrinoConnectionConfig) -> dict:
327
+ """
328
+ Get the oauth2 auth dictionary for the trino connection
329
+ """
330
+ return {
331
+ "authType": "oauth2",
332
+ }
333
+
334
+ @staticmethod
335
+ def set_oauth2_auth(
336
+ connection: TrinoConnectionConfig, connection_args: ConnectionArguments
337
+ ) -> None:
338
+ """
339
+ Set the oauth2 auth for the trino connection
340
+ """
341
+ assert connection_args.root is not None
342
+
343
+ connection_args.root["auth"] = OAuth2Authentication()
344
+ connection_args.root["http_scheme"] = "https"
345
+
346
+ @staticmethod
347
+ def get_azure_token(connection: TrinoConnectionConfig) -> str:
348
+ """
349
+ Get the azure token for the trino connection
350
+ """
351
+ auth_type = cast(azureConfig.AzureConfigurationSource, connection.authType)
352
+ return get_azure_access_token(auth_type)
@@ -1,3 +1,4 @@
1
+ from metadata.ingestion.source.database.trino.connection import TrinoConnection
1
2
  from metadata.ingestion.source.database.trino.lineage import TrinoLineageSource
2
3
  from metadata.ingestion.source.database.trino.metadata import TrinoSource
3
4
  from metadata.ingestion.source.database.trino.usage import TrinoUsageSource
@@ -13,4 +14,5 @@ ServiceSpec = DefaultDatabaseSpec(
13
14
  usage_source_class=TrinoUsageSource,
14
15
  profiler_class=TrinoProfilerInterface,
15
16
  sampler_class=TrinoSampler,
17
+ connection_class=TrinoConnection,
16
18
  )
@@ -17,6 +17,7 @@ from typing import Optional
17
17
 
18
18
  from databricks.sdk import WorkspaceClient
19
19
  from sqlalchemy.engine import Engine
20
+ from sqlalchemy.exc import DatabaseError
20
21
 
21
22
  from metadata.generated.schema.entity.automations.workflow import (
22
23
  Workflow as AutomationWorkflow,
@@ -34,13 +35,13 @@ from metadata.ingestion.connections.builders import (
34
35
  )
35
36
  from metadata.ingestion.connections.test_connections import test_connection_steps
36
37
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
37
- from metadata.ingestion.source.database.unitycatalog.client import UnityCatalogClient
38
38
  from metadata.ingestion.source.database.unitycatalog.models import DatabricksTable
39
39
  from metadata.ingestion.source.database.unitycatalog.queries import (
40
40
  UNITY_CATALOG_GET_ALL_SCHEMA_TAGS,
41
41
  UNITY_CATALOG_GET_ALL_TABLE_COLUMNS_TAGS,
42
42
  UNITY_CATALOG_GET_ALL_TABLE_TAGS,
43
43
  UNITY_CATALOG_GET_CATALOGS_TAGS,
44
+ UNITY_CATALOG_SQL_STATEMENT_TEST,
44
45
  )
45
46
  from metadata.utils.constants import THREE_MIN
46
47
  from metadata.utils.db_utils import get_host_from_host_port
@@ -93,8 +94,20 @@ def test_connection(
93
94
  Test connection. This can be executed either as part
94
95
  of a metadata workflow or during an Automation Workflow
95
96
  """
96
- client = UnityCatalogClient(service_connection)
97
97
  table_obj = DatabricksTable()
98
+ engine = get_sqlalchemy_connection(service_connection)
99
+
100
+ def test_database_query(engine: Engine, statement: str):
101
+ """
102
+ Method used to execute the given query and fetch a result
103
+ to test if user has access to the tables specified
104
+ in the sql statement
105
+ """
106
+ try:
107
+ connection = engine.connect()
108
+ connection.execute(statement).fetchone()
109
+ except DatabaseError as soe:
110
+ logger.debug(f"Failed to fetch catalogs due to: {soe}")
98
111
 
99
112
  def get_catalogs(connection: WorkspaceClient, table_obj: DatabricksTable):
100
113
  for catalog in connection.catalogs.list():
@@ -149,7 +162,11 @@ def test_connection(
149
162
  "GetSchemas": partial(get_schemas, connection, table_obj),
150
163
  "GetTables": partial(get_tables, connection, table_obj),
151
164
  "GetViews": partial(get_tables, connection, table_obj),
152
- "GetQueries": client.test_query_api_access,
165
+ "GetQueries": partial(
166
+ test_database_query,
167
+ engine=engine,
168
+ statement=UNITY_CATALOG_SQL_STATEMENT_TEST,
169
+ ),
153
170
  "GetTags": partial(get_tags, service_connection, table_obj),
154
171
  }
155
172
 
@@ -1,7 +1,19 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
1
11
  """
2
- SQL queries for Unity Catalog
12
+ SQL Queries used during ingestion
3
13
  """
4
14
 
15
+ import textwrap
16
+
5
17
  UNITY_CATALOG_GET_CATALOGS_TAGS = """
6
18
  SELECT * FROM `{database}`.information_schema.catalog_tags;
7
19
  """
@@ -17,3 +29,27 @@ SELECT * FROM `{database}`.information_schema.table_tags WHERE schema_name = '{s
17
29
  UNITY_CATALOG_GET_ALL_TABLE_COLUMNS_TAGS = """
18
30
  SELECT * FROM `{database}`.information_schema.column_tags WHERE schema_name = '{schema}';
19
31
  """
32
+
33
+ UNITY_CATALOG_SQL_STATEMENT = textwrap.dedent(
34
+ """
35
+ SELECT
36
+ statement_type AS query_type,
37
+ statement_text AS query_text,
38
+ executed_by AS user_name,
39
+ start_time AS start_time,
40
+ null AS database_name,
41
+ null AS schema_name,
42
+ end_time AS end_time,
43
+ total_duration_ms/1000 AS duration
44
+ from system.query.history
45
+ WHERE statement_text NOT LIKE '/* {{"app": "OpenMetadata", %%}} */%%'
46
+ AND statement_text NOT LIKE '/* {{"app": "dbt", %%}} */%%'
47
+ AND start_time between to_timestamp('{start_time}') and to_timestamp('{end_time}')
48
+ {filters}
49
+ LIMIT {result_limit}
50
+ """
51
+ )
52
+
53
+ UNITY_CATALOG_SQL_STATEMENT_TEST = """
54
+ SELECT statement_text from system.query.history LIMIT 1
55
+ """
@@ -27,6 +27,9 @@ from metadata.ingestion.source.database.databricks.query_parser import (
27
27
  )
28
28
  from metadata.ingestion.source.database.query_parser_source import QueryParserSource
29
29
  from metadata.ingestion.source.database.unitycatalog.client import UnityCatalogClient
30
+ from metadata.ingestion.source.database.unitycatalog.connection import (
31
+ get_sqlalchemy_connection,
32
+ )
30
33
  from metadata.utils.logger import ingestion_logger
31
34
 
32
35
  logger = ingestion_logger()
@@ -55,6 +58,7 @@ class UnityCatalogQueryParserSource(
55
58
  def __init__(self, config: WorkflowSource, metadata: OpenMetadata):
56
59
  self._init_super(config=config, metadata=metadata)
57
60
  self.client = UnityCatalogClient(self.service_connection)
61
+ self.sql_client = get_sqlalchemy_connection(self.service_connection)
58
62
 
59
63
  @classmethod
60
64
  def create(
@@ -11,12 +11,10 @@
11
11
  """
12
12
  unity catalog usage module
13
13
  """
14
- import traceback
15
- from datetime import datetime
16
- from typing import Iterable
17
14
 
18
- from metadata.generated.schema.type.basic import DateTime
19
- from metadata.generated.schema.type.tableQuery import TableQueries, TableQuery
15
+ from metadata.ingestion.source.database.unitycatalog.queries import (
16
+ UNITY_CATALOG_SQL_STATEMENT,
17
+ )
20
18
  from metadata.ingestion.source.database.unitycatalog.query_parser import (
21
19
  UnityCatalogQueryParserSource,
22
20
  )
@@ -35,36 +33,24 @@ class UnitycatalogUsageSource(UnityCatalogQueryParserSource, UsageSource):
35
33
  the same API for fetching Usage Queries
36
34
  """
37
35
 
38
- def yield_table_queries(self) -> Iterable[TableQuery]:
36
+ sql_stmt = UNITY_CATALOG_SQL_STATEMENT
37
+
38
+ filters = """
39
+ AND statement_type NOT IN ('SHOW', 'DESCRIBE', 'USE')
40
+ """
41
+
42
+ def get_engine(self):
43
+ yield self.sql_client
44
+
45
+ def get_sql_statement(self, start_time, end_time):
39
46
  """
40
- Method to yield TableQueries
47
+ returns sql statement to fetch query logs.
48
+
49
+ Override if we have specific parameters
41
50
  """
42
- queries = []
43
- data = self.client.list_query_history(
44
- start_date=self.start,
45
- end_date=self.end,
51
+ return self.sql_stmt.format(
52
+ start_time=start_time,
53
+ end_time=end_time,
54
+ filters=self.get_filters(),
55
+ result_limit=self.source_config.resultLimit,
46
56
  )
47
- for row in data or []:
48
- try:
49
- if self.client.is_query_valid(row):
50
- queries.append(
51
- TableQuery(
52
- dialect=self.dialect.value,
53
- query=row.get("query_text"),
54
- userName=row.get("user_name"),
55
- startTime=str(row.get("query_start_time_ms")),
56
- endTime=str(row.get("execution_end_time_ms")),
57
- analysisDate=DateTime(datetime.now()),
58
- serviceName=self.config.serviceName,
59
- duration=row.get("duration")
60
- if row.get("duration")
61
- else None,
62
- )
63
- )
64
- except Exception as err:
65
- logger.debug(traceback.format_exc())
66
- logger.warning(
67
- f"Failed to process query {row.get('query_text')} due to: {err}"
68
- )
69
-
70
- yield TableQueries(queries=queries)