openmetadata-ingestion 1.8.10.0__py3-none-any.whl → 1.9.1.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (845) 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/examples/workflows/grafana.yaml +115 -0
  7. metadata/generated/schema/analytics/__init__.py +1 -1
  8. metadata/generated/schema/analytics/basic.py +1 -1
  9. metadata/generated/schema/analytics/reportData.py +1 -1
  10. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  11. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  12. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  13. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  14. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  15. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  16. metadata/generated/schema/analytics/webAnalyticEvent.py +5 -5
  17. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  18. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  19. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  20. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  21. metadata/generated/schema/api/__init__.py +1 -1
  22. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  23. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  24. metadata/generated/schema/api/analytics/__init__.py +1 -1
  25. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +6 -5
  26. metadata/generated/schema/api/automations/__init__.py +1 -1
  27. metadata/generated/schema/api/automations/createWorkflow.py +6 -5
  28. metadata/generated/schema/api/bulkAssets.py +1 -1
  29. metadata/generated/schema/api/classification/__init__.py +1 -1
  30. metadata/generated/schema/api/classification/createClassification.py +6 -5
  31. metadata/generated/schema/api/classification/createTag.py +4 -4
  32. metadata/generated/schema/api/classification/loadTags.py +1 -1
  33. metadata/generated/schema/api/createBot.py +5 -5
  34. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  35. metadata/generated/schema/api/createType.py +6 -5
  36. metadata/generated/schema/api/data/__init__.py +1 -1
  37. metadata/generated/schema/api/data/createAPICollection.py +4 -4
  38. metadata/generated/schema/api/data/createAPIEndpoint.py +4 -4
  39. metadata/generated/schema/api/data/createChart.py +12 -4
  40. metadata/generated/schema/api/data/createContainer.py +4 -4
  41. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  42. metadata/generated/schema/api/data/createDashboard.py +4 -4
  43. metadata/generated/schema/api/data/createDashboardDataModel.py +4 -4
  44. metadata/generated/schema/api/data/createDataContract.py +11 -5
  45. metadata/generated/schema/api/data/createDatabase.py +4 -4
  46. metadata/generated/schema/api/data/createDatabaseSchema.py +4 -4
  47. metadata/generated/schema/api/data/createDirectory.py +105 -0
  48. metadata/generated/schema/api/data/createFile.py +104 -0
  49. metadata/generated/schema/api/data/createGlossary.py +4 -4
  50. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  51. metadata/generated/schema/api/data/createMetric.py +4 -4
  52. metadata/generated/schema/api/data/createMlModel.py +4 -4
  53. metadata/generated/schema/api/data/createPipeline.py +4 -4
  54. metadata/generated/schema/api/data/createQuery.py +5 -4
  55. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  56. metadata/generated/schema/api/data/createSearchIndex.py +4 -4
  57. metadata/generated/schema/api/data/createSpreadsheet.py +111 -0
  58. metadata/generated/schema/api/data/createStoredProcedure.py +4 -4
  59. metadata/generated/schema/api/data/createTable.py +5 -4
  60. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  61. metadata/generated/schema/api/data/createTopic.py +5 -4
  62. metadata/generated/schema/api/data/createWorksheet.py +105 -0
  63. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  64. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  65. metadata/generated/schema/api/data/updateColumn.py +1 -1
  66. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  67. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +5 -4
  68. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  69. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  70. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  71. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +5 -5
  72. metadata/generated/schema/api/docStore/__init__.py +1 -1
  73. metadata/generated/schema/api/docStore/createDocument.py +6 -5
  74. metadata/generated/schema/api/domains/__init__.py +1 -1
  75. metadata/generated/schema/api/domains/createDataProduct.py +4 -4
  76. metadata/generated/schema/api/domains/createDomain.py +1 -1
  77. metadata/generated/schema/api/entityRelationship/__init__.py +3 -0
  78. metadata/generated/schema/api/entityRelationship/entityRelationshipDirection.py +12 -0
  79. metadata/generated/schema/api/entityRelationship/esEntityRelationshipData.py +57 -0
  80. metadata/generated/schema/api/entityRelationship/relationshipRef.py +32 -0
  81. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipRequest.py +47 -0
  82. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipResult.py +47 -0
  83. metadata/generated/schema/api/entityRelationship/searchSchemaEntityRelationshipResult.py +20 -0
  84. metadata/generated/schema/api/feed/__init__.py +1 -1
  85. metadata/generated/schema/api/feed/closeTask.py +1 -1
  86. metadata/generated/schema/api/feed/createPost.py +1 -1
  87. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  88. metadata/generated/schema/api/feed/createThread.py +6 -2
  89. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  90. metadata/generated/schema/api/feed/threadCount.py +1 -1
  91. metadata/generated/schema/api/governance/__init__.py +1 -1
  92. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  93. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  94. metadata/generated/schema/api/lineage/__init__.py +1 -1
  95. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  96. metadata/generated/schema/api/lineage/esLineageData.py +4 -1
  97. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  98. metadata/generated/schema/api/lineage/nodeInformation.py +4 -1
  99. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  100. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  101. metadata/generated/schema/api/mcp/__init__.py +1 -1
  102. metadata/generated/schema/api/mcp/mcpToolDefinition.py +1 -1
  103. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  104. metadata/generated/schema/api/policies/__init__.py +1 -1
  105. metadata/generated/schema/api/policies/createPolicy.py +6 -5
  106. metadata/generated/schema/api/scim/__init__.py +1 -1
  107. metadata/generated/schema/api/scim/scimGroup.py +1 -1
  108. metadata/generated/schema/api/scim/scimPatchOp.py +1 -1
  109. metadata/generated/schema/api/scim/scimUser.py +1 -1
  110. metadata/generated/schema/api/search/__init__.py +1 -1
  111. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  112. metadata/generated/schema/api/services/__init__.py +1 -1
  113. metadata/generated/schema/api/services/createApiService.py +4 -4
  114. metadata/generated/schema/api/services/createDashboardService.py +4 -4
  115. metadata/generated/schema/api/services/createDatabaseService.py +4 -4
  116. metadata/generated/schema/api/services/createDriveService.py +58 -0
  117. metadata/generated/schema/api/services/createMessagingService.py +4 -4
  118. metadata/generated/schema/api/services/createMetadataService.py +5 -4
  119. metadata/generated/schema/api/services/createMlModelService.py +4 -4
  120. metadata/generated/schema/api/services/createPipelineService.py +4 -4
  121. metadata/generated/schema/api/services/createSearchService.py +4 -4
  122. metadata/generated/schema/api/services/createSecurityService.py +4 -4
  123. metadata/generated/schema/api/services/createStorageService.py +4 -4
  124. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  125. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +13 -5
  126. metadata/generated/schema/api/setOwner.py +1 -1
  127. metadata/generated/schema/api/teams/__init__.py +1 -1
  128. metadata/generated/schema/api/teams/createPersona.py +12 -4
  129. metadata/generated/schema/api/teams/createRole.py +5 -4
  130. metadata/generated/schema/api/teams/createTeam.py +1 -1
  131. metadata/generated/schema/api/teams/createUser.py +1 -1
  132. metadata/generated/schema/api/tests/__init__.py +1 -1
  133. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  134. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  135. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  136. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  137. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  138. metadata/generated/schema/api/tests/createTestDefinition.py +5 -4
  139. metadata/generated/schema/api/tests/createTestSuite.py +13 -5
  140. metadata/generated/schema/api/tests/moveGlossaryTermRequest.py +27 -0
  141. metadata/generated/schema/api/validateGlossaryTagsRequest.py +1 -1
  142. metadata/generated/schema/api/voteRequest.py +1 -1
  143. metadata/generated/schema/auth/__init__.py +1 -1
  144. metadata/generated/schema/auth/basicAuth.py +1 -1
  145. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  146. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  147. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  148. metadata/generated/schema/auth/emailRequest.py +1 -1
  149. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  150. metadata/generated/schema/auth/generateToken.py +1 -1
  151. metadata/generated/schema/auth/jwtAuth.py +1 -1
  152. metadata/generated/schema/auth/loginRequest.py +1 -1
  153. metadata/generated/schema/auth/logoutRequest.py +1 -1
  154. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  155. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  156. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  157. metadata/generated/schema/auth/refreshToken.py +1 -1
  158. metadata/generated/schema/auth/registrationRequest.py +1 -1
  159. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  160. metadata/generated/schema/auth/revokeToken.py +1 -1
  161. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  162. metadata/generated/schema/auth/ssoAuth.py +1 -1
  163. metadata/generated/schema/auth/supportToken.py +1 -1
  164. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  165. metadata/generated/schema/configuration/__init__.py +1 -1
  166. metadata/generated/schema/configuration/aiPlatformConfiguration.py +58 -0
  167. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  168. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  169. metadata/generated/schema/configuration/authConfig.py +1 -1
  170. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  171. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  172. metadata/generated/schema/configuration/cacheConfiguration.py +137 -0
  173. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  174. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  175. metadata/generated/schema/configuration/elasticSearchConfiguration.py +18 -1
  176. metadata/generated/schema/configuration/entityRulesSettings.py +24 -0
  177. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  178. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  182. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  183. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  184. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  185. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  186. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  187. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  188. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  189. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  190. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  191. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  192. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  193. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  194. metadata/generated/schema/configuration/opsConfig.py +1 -1
  195. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  196. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  197. metadata/generated/schema/configuration/searchSettings.py +1 -1
  198. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  199. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  200. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  201. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  202. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  203. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  204. metadata/generated/schema/dataInsight/__init__.py +1 -1
  205. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  206. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  207. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  208. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  209. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  210. metadata/generated/schema/dataInsight/custom/lineChart.py +5 -1
  211. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  212. metadata/generated/schema/dataInsight/dataInsightChart.py +5 -5
  213. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  214. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  215. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  216. metadata/generated/schema/dataInsight/kpi/kpi.py +4 -4
  217. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  218. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  219. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  220. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  221. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  222. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  223. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  224. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  225. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  226. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  227. metadata/generated/schema/email/__init__.py +1 -1
  228. metadata/generated/schema/email/emailRequest.py +1 -1
  229. metadata/generated/schema/email/emailTemplate.py +1 -1
  230. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  231. metadata/generated/schema/email/smtpSettings.py +1 -1
  232. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  233. metadata/generated/schema/entity/__init__.py +1 -1
  234. metadata/generated/schema/entity/applications/__init__.py +1 -1
  235. metadata/generated/schema/entity/applications/app.py +4 -4
  236. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  237. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +5 -5
  246. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  250. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +4 -4
  251. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  252. metadata/generated/schema/entity/applications/configuration/external/automator/propagationStopConfig.py +2 -2
  253. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  258. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  260. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  262. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  263. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  264. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  265. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  266. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  267. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  268. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  269. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  270. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  271. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  272. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  273. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  274. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  275. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  276. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  277. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  278. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  279. metadata/generated/schema/entity/applications/createAppRequest.py +6 -5
  280. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  281. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  282. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  283. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +5 -11
  284. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +5 -4
  285. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  286. metadata/generated/schema/entity/automations/__init__.py +1 -1
  287. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  288. metadata/generated/schema/entity/automations/workflow.py +5 -5
  289. metadata/generated/schema/entity/bot.py +5 -5
  290. metadata/generated/schema/entity/classification/__init__.py +1 -1
  291. metadata/generated/schema/entity/classification/classification.py +5 -5
  292. metadata/generated/schema/entity/classification/tag.py +4 -4
  293. metadata/generated/schema/entity/data/__init__.py +1 -1
  294. metadata/generated/schema/entity/data/apiCollection.py +4 -4
  295. metadata/generated/schema/entity/data/apiEndpoint.py +4 -4
  296. metadata/generated/schema/entity/data/chart.py +16 -4
  297. metadata/generated/schema/entity/data/container.py +4 -4
  298. metadata/generated/schema/entity/data/dashboard.py +4 -4
  299. metadata/generated/schema/entity/data/dashboardDataModel.py +4 -4
  300. metadata/generated/schema/entity/data/dataContract.py +40 -53
  301. metadata/generated/schema/entity/data/database.py +4 -4
  302. metadata/generated/schema/entity/data/databaseSchema.py +4 -4
  303. metadata/generated/schema/entity/data/directory.py +173 -0
  304. metadata/generated/schema/entity/data/file.py +184 -0
  305. metadata/generated/schema/entity/data/glossary.py +4 -4
  306. metadata/generated/schema/entity/data/glossaryTerm.py +4 -4
  307. metadata/generated/schema/entity/data/metric.py +4 -5
  308. metadata/generated/schema/entity/data/mlmodel.py +4 -4
  309. metadata/generated/schema/entity/data/pipeline.py +4 -4
  310. metadata/generated/schema/entity/data/query.py +4 -4
  311. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  312. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  313. metadata/generated/schema/entity/data/report.py +4 -4
  314. metadata/generated/schema/entity/data/searchIndex.py +4 -4
  315. metadata/generated/schema/entity/data/spreadsheet.py +209 -0
  316. metadata/generated/schema/entity/data/storedProcedure.py +4 -4
  317. metadata/generated/schema/entity/data/table.py +50 -4
  318. metadata/generated/schema/entity/data/topic.py +4 -4
  319. metadata/generated/schema/entity/data/worksheet.py +168 -0
  320. metadata/generated/schema/entity/datacontract/__init__.py +3 -0
  321. metadata/generated/schema/entity/datacontract/dataContractResult.py +74 -0
  322. metadata/generated/schema/entity/datacontract/qualityValidation.py +31 -0
  323. metadata/generated/schema/entity/datacontract/schemaValidation.py +31 -0
  324. metadata/generated/schema/entity/datacontract/semanticsValidation.py +39 -0
  325. metadata/generated/schema/entity/datacontract/slaValidation.py +32 -0
  326. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  327. metadata/generated/schema/entity/docStore/document.py +5 -5
  328. metadata/generated/schema/entity/domains/__init__.py +1 -1
  329. metadata/generated/schema/entity/domains/dataProduct.py +5 -5
  330. metadata/generated/schema/entity/domains/domain.py +1 -1
  331. metadata/generated/schema/entity/events/__init__.py +1 -1
  332. metadata/generated/schema/entity/events/webhook.py +1 -1
  333. metadata/generated/schema/entity/feed/__init__.py +1 -1
  334. metadata/generated/schema/entity/feed/assets.py +1 -1
  335. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  336. metadata/generated/schema/entity/feed/description.py +1 -1
  337. metadata/generated/schema/entity/feed/domain.py +8 -8
  338. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  339. metadata/generated/schema/entity/feed/owner.py +1 -1
  340. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  341. metadata/generated/schema/entity/feed/tag.py +1 -1
  342. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  343. metadata/generated/schema/entity/feed/thread.py +4 -3
  344. metadata/generated/schema/entity/policies/__init__.py +1 -1
  345. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  346. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  347. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  348. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  349. metadata/generated/schema/entity/policies/filters.py +1 -1
  350. metadata/generated/schema/entity/policies/policy.py +4 -4
  351. metadata/generated/schema/entity/services/__init__.py +1 -1
  352. metadata/generated/schema/entity/services/apiService.py +4 -4
  353. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  354. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  355. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  357. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  358. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  359. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  360. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  361. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  362. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/dashboard/grafanaConnection.py +77 -0
  365. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  373. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  374. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  375. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  376. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  377. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/dashboard/thoughtSpotConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/epicConnection.py +80 -0
  419. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/database/ssasConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/drive/__init__.py +3 -0
  458. metadata/generated/schema/entity/services/connections/drive/customDriveConnection.py +45 -0
  459. metadata/generated/schema/entity/services/connections/drive/googleDriveConnection.py +82 -0
  460. metadata/generated/schema/entity/services/connections/drive/sharePointConnection.py +79 -0
  461. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  462. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  468. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  469. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  470. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  476. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  480. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  482. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  489. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  491. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  493. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  494. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  495. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  496. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  497. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  498. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  499. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  500. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  501. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  502. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  503. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  504. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  505. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  506. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  507. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  508. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  509. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  510. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  511. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  512. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  513. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  514. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  515. metadata/generated/schema/entity/services/connections/security/__init__.py +1 -1
  516. metadata/generated/schema/entity/services/connections/security/ranger/__init__.py +1 -1
  517. metadata/generated/schema/entity/services/connections/security/ranger/basicAuth.py +1 -1
  518. metadata/generated/schema/entity/services/connections/security/rangerConnection.py +1 -1
  519. metadata/generated/schema/entity/services/connections/serviceConnection.py +4 -1
  520. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  521. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  522. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  523. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  524. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  525. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +5 -5
  526. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  527. metadata/generated/schema/entity/services/dashboardService.py +7 -4
  528. metadata/generated/schema/entity/services/databaseService.py +7 -4
  529. metadata/generated/schema/entity/services/driveService.py +143 -0
  530. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  531. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +11 -4
  532. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  533. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  534. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  535. metadata/generated/schema/entity/services/messagingService.py +4 -4
  536. metadata/generated/schema/entity/services/metadataService.py +4 -4
  537. metadata/generated/schema/entity/services/mlmodelService.py +4 -4
  538. metadata/generated/schema/entity/services/pipelineService.py +4 -4
  539. metadata/generated/schema/entity/services/searchService.py +4 -4
  540. metadata/generated/schema/entity/services/securityService.py +4 -4
  541. metadata/generated/schema/entity/services/serviceType.py +2 -1
  542. metadata/generated/schema/entity/services/storageService.py +4 -4
  543. metadata/generated/schema/entity/teams/__init__.py +1 -1
  544. metadata/generated/schema/entity/teams/persona.py +11 -4
  545. metadata/generated/schema/entity/teams/role.py +5 -5
  546. metadata/generated/schema/entity/teams/team.py +1 -1
  547. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  548. metadata/generated/schema/entity/teams/user.py +21 -3
  549. metadata/generated/schema/entity/type.py +5 -11
  550. metadata/generated/schema/entity/utils/__init__.py +1 -1
  551. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  552. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  553. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  554. metadata/generated/schema/events/__init__.py +1 -1
  555. metadata/generated/schema/events/alertMetrics.py +1 -1
  556. metadata/generated/schema/events/api/__init__.py +1 -1
  557. metadata/generated/schema/events/api/createEventSubscription.py +5 -4
  558. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  559. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  560. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  561. metadata/generated/schema/events/api/typedEvent.py +1 -1
  562. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  563. metadata/generated/schema/events/eventFilterRule.py +1 -1
  564. metadata/generated/schema/events/eventSubscription.py +5 -5
  565. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  566. metadata/generated/schema/events/failedEvent.py +1 -1
  567. metadata/generated/schema/events/failedEventResponse.py +1 -1
  568. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  569. metadata/generated/schema/events/statusContext.py +1 -1
  570. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  571. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  572. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  573. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  574. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  575. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  576. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  577. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  578. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  579. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  580. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  581. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  582. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  583. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  584. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  585. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  586. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  587. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  588. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  589. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  590. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  591. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  592. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  593. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  594. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +9 -1
  595. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  596. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  597. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  598. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  599. metadata/generated/schema/governance/workflows/workflowInstanceState.py +5 -1
  600. metadata/generated/schema/jobs/__init__.py +1 -1
  601. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  602. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  603. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  604. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  605. metadata/generated/schema/metadataIngestion/application.py +1 -1
  606. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  607. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  608. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  609. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  610. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  611. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +25 -3
  612. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  613. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  614. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  615. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  616. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  617. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  618. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  619. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  620. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  621. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  622. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  623. metadata/generated/schema/metadataIngestion/driveServiceMetadataPipeline.py +165 -0
  624. metadata/generated/schema/metadataIngestion/engine/__init__.py +3 -0
  625. metadata/generated/schema/metadataIngestion/engine/nativeEngineConfig.py +23 -0
  626. metadata/generated/schema/metadataIngestion/engine/sparkEngineConfig.py +43 -0
  627. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  628. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  629. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  630. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  631. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  632. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  633. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  634. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  635. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  636. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  637. metadata/generated/schema/metadataIngestion/securityServiceMetadataPipeline.py +1 -1
  638. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  639. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  640. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  641. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  642. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  643. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  644. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  645. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  646. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  647. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  648. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  649. metadata/generated/schema/metadataIngestion/workflow.py +3 -1
  650. metadata/generated/schema/monitoring/__init__.py +1 -1
  651. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  652. metadata/generated/schema/scim/__init__.py +1 -1
  653. metadata/generated/schema/scim/scimConfiguration.py +1 -1
  654. metadata/generated/schema/search/__init__.py +1 -1
  655. metadata/generated/schema/search/aggregationRequest.py +1 -1
  656. metadata/generated/schema/search/searchRequest.py +1 -1
  657. metadata/generated/schema/security/__init__.py +1 -1
  658. metadata/generated/schema/security/client/__init__.py +1 -1
  659. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  660. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  661. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  662. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  663. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  664. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  665. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  666. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  667. metadata/generated/schema/security/credentials/__init__.py +1 -1
  668. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  669. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  670. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  671. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  672. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  673. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  674. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  675. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  676. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  677. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  678. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  679. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  680. metadata/generated/schema/security/credentials/kubernetesCredentials.py +40 -0
  681. metadata/generated/schema/security/sasl/__init__.py +1 -1
  682. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  683. metadata/generated/schema/security/secrets/__init__.py +1 -1
  684. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  685. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  686. metadata/generated/schema/security/secrets/secretsManagerProvider.py +2 -1
  687. metadata/generated/schema/security/securityConfiguration.py +1 -1
  688. metadata/generated/schema/security/ssl/__init__.py +1 -1
  689. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  690. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  691. metadata/generated/schema/settings/__init__.py +1 -1
  692. metadata/generated/schema/settings/settings.py +4 -1
  693. metadata/generated/schema/system/__init__.py +1 -1
  694. metadata/generated/schema/system/entityError.py +1 -1
  695. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  696. metadata/generated/schema/system/indexingError.py +1 -1
  697. metadata/generated/schema/system/limitsResponse.py +1 -1
  698. metadata/generated/schema/system/ui/__init__.py +1 -1
  699. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  700. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  701. metadata/generated/schema/system/ui/page.py +5 -4
  702. metadata/generated/schema/system/ui/tab.py +1 -1
  703. metadata/generated/schema/system/ui/uiCustomization.py +9 -2
  704. metadata/generated/schema/system/validationResponse.py +1 -1
  705. metadata/generated/schema/tests/__init__.py +1 -1
  706. metadata/generated/schema/tests/assigned.py +1 -1
  707. metadata/generated/schema/tests/basic.py +1 -1
  708. metadata/generated/schema/tests/customMetric.py +1 -1
  709. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  710. metadata/generated/schema/tests/resolved.py +1 -1
  711. metadata/generated/schema/tests/testCase.py +4 -4
  712. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  713. metadata/generated/schema/tests/testDefinition.py +5 -5
  714. metadata/generated/schema/tests/testSuite.py +11 -4
  715. metadata/generated/schema/type/__init__.py +1 -1
  716. metadata/generated/schema/type/apiSchema.py +1 -1
  717. metadata/generated/schema/type/assetCertification.py +1 -1
  718. metadata/generated/schema/type/auditLog.py +1 -1
  719. metadata/generated/schema/type/basic.py +43 -1
  720. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  721. metadata/generated/schema/type/changeEvent.py +5 -7
  722. metadata/generated/schema/type/changeEventType.py +1 -1
  723. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  724. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  725. metadata/generated/schema/type/contractExecutionStatus.py +16 -0
  726. metadata/generated/schema/type/csvDocumentation.py +1 -1
  727. metadata/generated/schema/type/csvErrorType.py +1 -1
  728. metadata/generated/schema/type/csvFile.py +1 -1
  729. metadata/generated/schema/type/csvImportResult.py +1 -1
  730. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  731. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  732. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  733. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  734. metadata/generated/schema/type/customProperty.py +1 -1
  735. metadata/generated/schema/type/dailyCount.py +1 -1
  736. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  737. metadata/generated/schema/type/entityHierarchy.py +1 -1
  738. metadata/generated/schema/type/entityHistory.py +1 -1
  739. metadata/generated/schema/type/entityLineage.py +1 -1
  740. metadata/generated/schema/type/entityReference.py +1 -1
  741. metadata/generated/schema/type/entityReferenceList.py +1 -1
  742. metadata/generated/schema/type/{entityRelationship.py → entityRelationship/__init__.py} +2 -2
  743. metadata/generated/schema/type/entityRelationship/nodeInformation.py +25 -0
  744. metadata/generated/schema/type/entityUsage.py +1 -1
  745. metadata/generated/schema/type/filterPattern.py +1 -1
  746. metadata/generated/schema/type/function.py +1 -1
  747. metadata/generated/schema/type/include.py +1 -1
  748. metadata/generated/schema/type/jdbcConnection.py +1 -1
  749. metadata/generated/schema/type/layerPaging.py +24 -0
  750. metadata/generated/schema/type/lifeCycle.py +1 -1
  751. metadata/generated/schema/type/paging.py +1 -1
  752. metadata/generated/schema/type/personaPreferences.py +48 -0
  753. metadata/generated/schema/type/profile.py +1 -1
  754. metadata/generated/schema/type/queryParserData.py +1 -1
  755. metadata/generated/schema/type/reaction.py +1 -1
  756. metadata/generated/schema/type/schedule.py +1 -1
  757. metadata/generated/schema/type/schema.py +1 -1
  758. metadata/generated/schema/type/tableQuery.py +1 -1
  759. metadata/generated/schema/type/tableUsageCount.py +1 -1
  760. metadata/generated/schema/type/tagLabel.py +1 -1
  761. metadata/generated/schema/type/usageDetails.py +1 -1
  762. metadata/generated/schema/type/usageRequest.py +1 -1
  763. metadata/generated/schema/type/votes.py +1 -1
  764. metadata/ingestion/api/parser.py +13 -0
  765. metadata/ingestion/bulksink/metadata_usage.py +2 -2
  766. metadata/ingestion/connections/connection.py +18 -1
  767. metadata/ingestion/lineage/sql_lineage.py +98 -65
  768. metadata/ingestion/models/custom_properties.py +3 -3
  769. metadata/ingestion/models/patch_request.py +36 -4
  770. metadata/ingestion/ometa/mixins/data_contract_mixin.py +205 -0
  771. metadata/ingestion/ometa/mixins/lineage_mixin.py +1 -1
  772. metadata/ingestion/ometa/mixins/patch_mixin.py +131 -55
  773. metadata/ingestion/ometa/ometa_api.py +4 -1
  774. metadata/ingestion/ometa/routes.py +32 -0
  775. metadata/ingestion/sink/metadata_rest.py +51 -0
  776. metadata/ingestion/source/api/rest/connection.py +12 -6
  777. metadata/ingestion/source/api/rest/metadata.py +3 -1
  778. metadata/ingestion/source/api/rest/parser.py +103 -0
  779. metadata/ingestion/source/connections.py +1 -1
  780. metadata/ingestion/source/dashboard/grafana/__init__.py +10 -0
  781. metadata/ingestion/source/dashboard/grafana/client.py +223 -0
  782. metadata/ingestion/source/dashboard/grafana/connection.py +66 -0
  783. metadata/ingestion/source/dashboard/grafana/metadata.py +476 -0
  784. metadata/ingestion/source/dashboard/grafana/models.py +159 -0
  785. metadata/ingestion/source/dashboard/grafana/service_spec.py +17 -0
  786. metadata/ingestion/source/dashboard/microstrategy/metadata.py +1 -1
  787. metadata/ingestion/source/dashboard/powerbi/metadata.py +9 -9
  788. metadata/ingestion/source/dashboard/powerbi/models.py +1 -1
  789. metadata/ingestion/source/dashboard/superset/connection.py +5 -7
  790. metadata/ingestion/source/dashboard/tableau/client.py +4 -4
  791. metadata/ingestion/source/dashboard/tableau/metadata.py +1 -0
  792. metadata/ingestion/source/database/datalake/connection.py +51 -73
  793. metadata/ingestion/source/database/datalake/metadata.py +3 -4
  794. metadata/ingestion/source/database/datalake/service_spec.py +2 -0
  795. metadata/ingestion/source/database/dbt/constants.py +17 -1
  796. metadata/ingestion/source/database/dbt/dbt_service.py +30 -1
  797. metadata/ingestion/source/database/dbt/metadata.py +136 -1
  798. metadata/ingestion/source/database/deltalake/clients/pyspark.py +1 -1
  799. metadata/ingestion/source/database/exasol/connection.py +14 -3
  800. metadata/ingestion/source/database/exasol/queries.py +13 -0
  801. metadata/ingestion/source/database/lineage_source.py +18 -2
  802. metadata/ingestion/source/database/mysql/connection.py +13 -19
  803. metadata/ingestion/source/database/oracle/metadata.py +1 -1
  804. metadata/ingestion/source/database/oracle/utils.py +19 -0
  805. metadata/ingestion/source/database/postgres/connection.py +51 -48
  806. metadata/ingestion/source/database/postgres/service_spec.py +2 -0
  807. metadata/ingestion/source/database/sample_data.py +661 -2
  808. metadata/ingestion/source/database/snowflake/connection.py +196 -162
  809. metadata/ingestion/source/database/snowflake/service_spec.py +2 -0
  810. metadata/ingestion/source/database/stored_procedures_mixin.py +9 -1
  811. metadata/ingestion/source/database/trino/connection.py +279 -125
  812. metadata/ingestion/source/database/trino/service_spec.py +2 -0
  813. metadata/ingestion/source/database/unitycatalog/connection.py +20 -3
  814. metadata/ingestion/source/database/unitycatalog/queries.py +37 -1
  815. metadata/ingestion/source/database/unitycatalog/query_parser.py +4 -0
  816. metadata/ingestion/source/database/unitycatalog/usage.py +21 -35
  817. metadata/ingestion/source/drive/drive_service.py +648 -0
  818. metadata/ingestion/source/drives/__init__.py +13 -0
  819. metadata/ingestion/source/pipeline/airflow/connection.py +8 -6
  820. metadata/ingestion/source/pipeline/airflow/metadata.py +33 -10
  821. metadata/ingestion/source/pipeline/fivetran/metadata.py +2 -2
  822. metadata/profiler/processor/processor.py +18 -3
  823. metadata/profiler/source/database/base/profiler_resolver.py +5 -2
  824. metadata/profiler/source/database/base/profiler_source.py +8 -1
  825. metadata/profiler/source/profiler_source_interface.py +11 -2
  826. metadata/sampler/pandas/sampler.py +1 -1
  827. metadata/sampler/processor.py +19 -3
  828. metadata/sampler/sampler_interface.py +7 -0
  829. metadata/utils/credentials.py +35 -0
  830. metadata/utils/db_utils.py +12 -5
  831. metadata/utils/filters.py +60 -0
  832. metadata/utils/fqn.py +79 -0
  833. metadata/utils/helpers.py +6 -1
  834. metadata/utils/logger.py +9 -0
  835. metadata/utils/metadata_service_helper.py +1 -1
  836. metadata/utils/secrets/kubernetes_secrets_manager.py +176 -0
  837. metadata/utils/secrets/secrets_manager_factory.py +3 -0
  838. metadata/workflow/ingestion.py +15 -2
  839. {openmetadata_ingestion-1.8.10.0.dist-info → openmetadata_ingestion-1.9.1.0.dist-info}/METADATA +543 -536
  840. {openmetadata_ingestion-1.8.10.0.dist-info → openmetadata_ingestion-1.9.1.0.dist-info}/RECORD +844 -790
  841. metadata/ingestion/source/database/extended_sample_data.py +0 -534
  842. {openmetadata_ingestion-1.8.10.0.dist-info → openmetadata_ingestion-1.9.1.0.dist-info}/LICENSE +0 -0
  843. {openmetadata_ingestion-1.8.10.0.dist-info → openmetadata_ingestion-1.9.1.0.dist-info}/WHEEL +0 -0
  844. {openmetadata_ingestion-1.8.10.0.dist-info → openmetadata_ingestion-1.9.1.0.dist-info}/entry_points.txt +0 -0
  845. {openmetadata_ingestion-1.8.10.0.dist-info → openmetadata_ingestion-1.9.1.0.dist-info}/top_level.txt +0 -0
@@ -40,11 +40,19 @@ from metadata.generated.schema.api.data.createDatabase import CreateDatabaseRequ
40
40
  from metadata.generated.schema.api.data.createDatabaseSchema import (
41
41
  CreateDatabaseSchemaRequest,
42
42
  )
43
+ from metadata.generated.schema.api.data.createDataContract import (
44
+ CreateDataContractRequest,
45
+ )
46
+ from metadata.generated.schema.api.data.createDirectory import CreateDirectoryRequest
47
+ from metadata.generated.schema.api.data.createFile import CreateFileRequest
43
48
  from metadata.generated.schema.api.data.createMlModel import CreateMlModelRequest
44
49
  from metadata.generated.schema.api.data.createPipeline import CreatePipelineRequest
45
50
  from metadata.generated.schema.api.data.createSearchIndex import (
46
51
  CreateSearchIndexRequest,
47
52
  )
53
+ from metadata.generated.schema.api.data.createSpreadsheet import (
54
+ CreateSpreadsheetRequest,
55
+ )
48
56
  from metadata.generated.schema.api.data.createStoredProcedure import (
49
57
  CreateStoredProcedureRequest,
50
58
  )
@@ -53,7 +61,15 @@ from metadata.generated.schema.api.data.createTableProfile import (
53
61
  CreateTableProfileRequest,
54
62
  )
55
63
  from metadata.generated.schema.api.data.createTopic import CreateTopicRequest
64
+ from metadata.generated.schema.api.data.createWorksheet import CreateWorksheetRequest
65
+ from metadata.generated.schema.api.domains.createDomain import CreateDomainRequest
56
66
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
67
+ from metadata.generated.schema.api.services.createDatabaseService import (
68
+ CreateDatabaseServiceRequest,
69
+ )
70
+ from metadata.generated.schema.api.services.createDriveService import (
71
+ CreateDriveServiceRequest,
72
+ )
57
73
  from metadata.generated.schema.api.teams.createRole import CreateRoleRequest
58
74
  from metadata.generated.schema.api.teams.createTeam import CreateTeamRequest
59
75
  from metadata.generated.schema.api.teams.createUser import CreateUserRequest
@@ -70,6 +86,7 @@ from metadata.generated.schema.entity.data.dashboard import Dashboard
70
86
  from metadata.generated.schema.entity.data.dashboardDataModel import DashboardDataModel
71
87
  from metadata.generated.schema.entity.data.database import Database
72
88
  from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
89
+ from metadata.generated.schema.entity.data.dataContract import DataContract
73
90
  from metadata.generated.schema.entity.data.mlmodel import (
74
91
  FeatureSource,
75
92
  MlFeature,
@@ -82,20 +99,36 @@ from metadata.generated.schema.entity.data.storedProcedure import (
82
99
  StoredProcedureCode,
83
100
  )
84
101
  from metadata.generated.schema.entity.data.table import (
102
+ Column,
85
103
  ColumnProfile,
104
+ DataType,
86
105
  SystemProfile,
87
106
  Table,
88
107
  TableData,
89
108
  TableProfile,
90
109
  )
91
110
  from metadata.generated.schema.entity.data.topic import Topic, TopicSampleData
111
+ from metadata.generated.schema.entity.datacontract.dataContractResult import (
112
+ DataContractResult,
113
+ )
92
114
  from metadata.generated.schema.entity.policies.policy import Policy
93
115
  from metadata.generated.schema.entity.services.apiService import ApiService
94
116
  from metadata.generated.schema.entity.services.connections.database.customDatabaseConnection import (
95
117
  CustomDatabaseConnection,
96
118
  )
119
+ from metadata.generated.schema.entity.services.connections.database.snowflakeConnection import (
120
+ SnowflakeConnection,
121
+ )
97
122
  from metadata.generated.schema.entity.services.dashboardService import DashboardService
98
- from metadata.generated.schema.entity.services.databaseService import DatabaseService
123
+ from metadata.generated.schema.entity.services.databaseService import (
124
+ DatabaseConnection,
125
+ DatabaseService,
126
+ DatabaseServiceType,
127
+ )
128
+ from metadata.generated.schema.entity.services.driveService import DriveService
129
+ from metadata.generated.schema.entity.services.ingestionPipelines.status import (
130
+ StackTraceError,
131
+ )
99
132
  from metadata.generated.schema.entity.services.messagingService import MessagingService
100
133
  from metadata.generated.schema.entity.services.mlmodelService import MlModelService
101
134
  from metadata.generated.schema.entity.services.pipelineService import PipelineService
@@ -112,7 +145,11 @@ from metadata.generated.schema.tests.resolved import Resolved, TestCaseFailureRe
112
145
  from metadata.generated.schema.tests.testCase import TestCase, TestCaseParameterValue
113
146
  from metadata.generated.schema.tests.testSuite import TestSuite
114
147
  from metadata.generated.schema.type.basic import FullyQualifiedEntityName, Timestamp
115
- from metadata.generated.schema.type.entityLineage import EntitiesEdge, LineageDetails
148
+ from metadata.generated.schema.type.entityLineage import (
149
+ ColumnLineage,
150
+ EntitiesEdge,
151
+ LineageDetails,
152
+ )
116
153
  from metadata.generated.schema.type.entityReference import EntityReference
117
154
  from metadata.generated.schema.type.lifeCycle import AccessDetails, LifeCycle
118
155
  from metadata.generated.schema.type.schema import Topic as TopicSchema
@@ -123,6 +160,7 @@ from metadata.ingestion.models.data_insight import OMetaDataInsightSample
123
160
  from metadata.ingestion.models.life_cycle import OMetaLifeCycleData
124
161
  from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
125
162
  from metadata.ingestion.models.profile_data import OMetaTableProfileSampleData
163
+ from metadata.ingestion.models.table_metadata import ColumnDescription
126
164
  from metadata.ingestion.models.tests_data import (
127
165
  OMetaLogicalTestSuiteSample,
128
166
  OMetaTestCaseResolutionStatus,
@@ -150,6 +188,17 @@ COLUMN_NAME = "Column"
150
188
  KEY_TYPE = "Key type"
151
189
  DATA_TYPE = "Data type"
152
190
  COL_DESCRIPTION = "Description"
191
+ NUM_SERVICES = 1
192
+ DATABASES_PER_SERVICE = 5
193
+ SCHEMAS_PER_DATABASE = 5
194
+ TABLES_PER_SCHEMA = 10
195
+ COLUMNS_PER_TABLE = 50
196
+ NUM_THREADS = 10
197
+ BATCH_SIZE = 10
198
+ COLUMNS = [
199
+ Column(name=f"column_{i}", dataType=DataType.STRING)
200
+ for i in range(COLUMNS_PER_TABLE)
201
+ ]
153
202
  TableKey = namedtuple("TableKey", ["schema", "table_name"])
154
203
 
155
204
 
@@ -629,6 +678,106 @@ class SampleDataSource(
629
678
  encoding=UTF_8,
630
679
  )
631
680
  )
681
+ self.domain = json.load(
682
+ open(
683
+ sample_data_folder + "/domains/domain.json",
684
+ "r",
685
+ encoding=UTF_8,
686
+ )
687
+ )
688
+
689
+ # Load data contracts sample data
690
+ try:
691
+ self.data_contracts = json.load(
692
+ open(
693
+ sample_data_folder + "/dataContracts/dataContracts.json",
694
+ "r",
695
+ encoding=UTF_8,
696
+ )
697
+ )
698
+ self.data_contract_results = json.load(
699
+ open(
700
+ sample_data_folder + "/dataContracts/dataContractResults.json",
701
+ "r",
702
+ encoding=UTF_8,
703
+ )
704
+ )
705
+ except FileNotFoundError:
706
+ logger.warning("Data contracts sample data not found, skipping...")
707
+ self.data_contracts = {"dataContracts": []}
708
+ self.data_contract_results = {"dataContractResults": []}
709
+
710
+ # Load drive sample data
711
+ try:
712
+ logger.info(f"Loading drive sample data from {sample_data_folder}/drives/")
713
+ self.drive_service_json = json.load(
714
+ open( # pylint: disable=consider-using-with
715
+ sample_data_folder + "/drives/service.json",
716
+ "r",
717
+ encoding=UTF_8,
718
+ )
719
+ )
720
+ logger.info(f"Drive service JSON: {self.drive_service_json}")
721
+ logger.info("Creating drive service...")
722
+
723
+ # Check if service already exists
724
+ try:
725
+ self.drive_service = self.metadata.get_by_name(
726
+ entity=DriveService, fqn=self.drive_service_json["name"]
727
+ )
728
+ logger.info(f"Drive service already exists: {self.drive_service.name}")
729
+ except Exception:
730
+ # Create the service using direct API call
731
+ drive_service_request = CreateDriveServiceRequest(
732
+ **self.drive_service_json
733
+ )
734
+
735
+ # Use the direct API endpoint
736
+ resp = self.metadata.client.put(
737
+ path="/services/driveServices",
738
+ data=drive_service_request.model_dump_json(),
739
+ )
740
+
741
+ self.drive_service = DriveService(**resp)
742
+ logger.info(f"Created drive service: {self.drive_service.name}")
743
+ self.directories = json.load(
744
+ open( # pylint: disable=consider-using-with
745
+ sample_data_folder + "/drives/directories.json",
746
+ "r",
747
+ encoding=UTF_8,
748
+ )
749
+ )
750
+ self.files = json.load(
751
+ open( # pylint: disable=consider-using-with
752
+ sample_data_folder + "/drives/files.json",
753
+ "r",
754
+ encoding=UTF_8,
755
+ )
756
+ )
757
+ self.spreadsheets = json.load(
758
+ open( # pylint: disable=consider-using-with
759
+ sample_data_folder + "/drives/spreadsheets.json",
760
+ "r",
761
+ encoding=UTF_8,
762
+ )
763
+ )
764
+ self.worksheets = json.load(
765
+ open( # pylint: disable=consider-using-with
766
+ sample_data_folder + "/drives/worksheets.json",
767
+ "r",
768
+ encoding=UTF_8,
769
+ )
770
+ )
771
+ self.has_drive_data = True
772
+ logger.info(
773
+ f"Successfully loaded drive data: {len(self.directories)} directories, {len(self.files)} files, {len(self.spreadsheets)} spreadsheets, {len(self.worksheets)} worksheets"
774
+ )
775
+ except Exception as exc:
776
+ import traceback
777
+
778
+ logger.warning(f"Drive sample data not found: {exc}")
779
+ logger.debug(f"Traceback: {traceback.format_exc()}")
780
+ self.has_drive_data = False
632
781
 
633
782
  @classmethod
634
783
  def create(
@@ -647,8 +796,10 @@ class SampleDataSource(
647
796
  """Nothing to prepare"""
648
797
 
649
798
  def _iter(self, *_, **__) -> Iterable[Entity]:
799
+ yield from self.ingest_domains()
650
800
  yield from self.ingest_teams()
651
801
  yield from self.ingest_users()
802
+ yield from self.ingest_drives()
652
803
  yield from self.ingest_tables()
653
804
  yield from self.ingest_glue()
654
805
  yield from self.ingest_mysql()
@@ -674,6 +825,183 @@ class SampleDataSource(
674
825
  yield from self.ingest_life_cycle()
675
826
  yield from self.ingest_api_service()
676
827
  yield from self.ingest_ometa_api_service()
828
+ self.modify_column_descriptions()
829
+ yield from self.process_service_batch()
830
+ yield from self.ingest_data_contracts()
831
+
832
+ def ingest_domains(self):
833
+
834
+ domain_request = CreateDomainRequest(**self.domain)
835
+ yield Either(right=domain_request)
836
+
837
+ def ingest_data_contracts(self) -> Iterable[Either[CreateDataContractRequest]]:
838
+ """
839
+ Ingest sample data contracts and their results
840
+ """
841
+ try:
842
+ for contract_data in self.data_contracts.get("dataContracts", []):
843
+ try:
844
+ # Create the data contract request
845
+ table_fqn = contract_data.pop("tableFQN", None)
846
+ contract_data["entity"] = {
847
+ "id": self.metadata.get_by_name(
848
+ entity=Table, fqn=table_fqn
849
+ ).id.root,
850
+ "type": "table",
851
+ }
852
+ quality_expectations = contract_data.pop(
853
+ "qualityExpectations", None
854
+ )
855
+ if quality_expectations:
856
+ contract_data["qualityExpectations"] = [
857
+ {
858
+ "id": self.metadata.get_by_name(
859
+ entity=TestCase, fqn=expectation, fields=["*"]
860
+ ).id.root,
861
+ "type": "testCase",
862
+ }
863
+ for expectation in quality_expectations
864
+ ]
865
+ data_contract_request = CreateDataContractRequest(**contract_data)
866
+ yield Either(right=data_contract_request)
867
+
868
+ # Ingest associated results
869
+ yield from self._ingest_data_contract_results(table_fqn)
870
+
871
+ except ValidationError as err:
872
+ logger.warning(
873
+ f"Failed to create data contract {contract_data.get('name', 'unknown')}: {err}"
874
+ )
875
+ yield Either(
876
+ left=StackTraceError(
877
+ name="DataContract",
878
+ error=f"Failed to create data contract: {err}",
879
+ stackTrace=traceback.format_exc(),
880
+ )
881
+ )
882
+ except Exception as err:
883
+ logger.warning(
884
+ f"Unexpected error creating data contract {contract_data.get('name', 'unknown')}: {err}"
885
+ )
886
+ yield Either(
887
+ left=StackTraceError(
888
+ name="DataContract",
889
+ error=f"Unexpected error: {err}",
890
+ stackTrace=traceback.format_exc(),
891
+ )
892
+ )
893
+
894
+ except Exception as err:
895
+ logger.warning(f"Failed to ingest data contracts: {err}")
896
+ yield Either(
897
+ left=StackTraceError(
898
+ name="DataContract",
899
+ error=f"Failed to ingest data contracts: {err}",
900
+ stackTrace=traceback.format_exc(),
901
+ )
902
+ )
903
+
904
+ def _ingest_data_contract_results(self, table_fqn: str):
905
+ """
906
+ Ingest results for a specific data contract following test case results pattern
907
+ """
908
+ try:
909
+ # Find contract results by name
910
+ contract_results_data = None
911
+ for contract_result in self.data_contract_results.get(
912
+ "dataContractResults", []
913
+ ):
914
+ if contract_result.get("table_fqn") == table_fqn:
915
+ contract_results_data = contract_result
916
+ break
917
+
918
+ if not contract_results_data:
919
+ logger.debug(f"No results found for contract {table_fqn}")
920
+ return
921
+
922
+ table_fqn = contract_results_data.pop("table_fqn")
923
+ contract_fqn = contract_results_data.pop("dataContractFQN")
924
+ try:
925
+ contract = self.metadata.get_by_name(
926
+ entity=DataContract, fqn=contract_fqn
927
+ )
928
+ if not contract:
929
+ logger.warning(f"Could not find data contract {contract_fqn}")
930
+ return
931
+ except Exception as e:
932
+ logger.warning(f"Could not retrieve data contract {contract_fqn}: {e}")
933
+ return
934
+
935
+ # Create results with timestamps going back in time (similar to test case results)
936
+ for days, result_data in enumerate(
937
+ contract_results_data.get("results", [])
938
+ ):
939
+ try:
940
+ # Generate timestamp going back in days
941
+ timestamp = Timestamp(
942
+ int((datetime.now() - timedelta(days=days)).timestamp() * 1000)
943
+ )
944
+
945
+ # Create the DataContractResult with generated timestamp and contract FQN
946
+ result = DataContractResult(
947
+ dataContractFQN=contract_fqn,
948
+ timestamp=timestamp,
949
+ contractExecutionStatus=result_data["contractExecutionStatus"],
950
+ result=result_data["result"],
951
+ executionTime=result_data.get("executionTime"),
952
+ schemaValidation=result_data.get("schemaValidation"),
953
+ semanticsValidation=result_data.get("semanticsValidation"),
954
+ qualityValidation=result_data.get("qualityValidation"),
955
+ )
956
+
957
+ yield Either(right=result)
958
+
959
+ except ValidationError as err:
960
+ logger.warning(
961
+ f"Failed to create data contract result for {table_fqn}: {err}"
962
+ )
963
+ except Exception as err:
964
+ logger.warning(
965
+ f"Unexpected error creating data contract result for {table_fqn}: {err}"
966
+ )
967
+
968
+ except Exception as err:
969
+ logger.warning(f"Failed to ingest results for contract {table_fqn}: {err}")
970
+
971
+ def modify_column_descriptions(self):
972
+ """
973
+ Modify column descriptions to include the table name
974
+ """
975
+ table: Table = self.metadata.get_by_name(
976
+ entity=Table, fqn="mysql_sample.default.posts_db.Tags"
977
+ )
978
+ col_desc_list = []
979
+ for column in table.columns:
980
+ column.description = f"{table.name} - {column.name}"
981
+ col_desc_list.append(
982
+ ColumnDescription(
983
+ column_fqn=column.fullyQualifiedName.root,
984
+ description=column.description,
985
+ )
986
+ )
987
+
988
+ self.metadata.patch_column_descriptions(
989
+ table=table,
990
+ column_descriptions=col_desc_list,
991
+ )
992
+ self.metadata.patch_column_descriptions(
993
+ table=table,
994
+ column_descriptions=[
995
+ ColumnDescription(
996
+ column_fqn=column.fullyQualifiedName.root, description=None
997
+ )
998
+ for column in table.columns
999
+ ],
1000
+ )
1001
+ self.metadata.patch_column_descriptions(
1002
+ table=table,
1003
+ column_descriptions=col_desc_list,
1004
+ )
677
1005
 
678
1006
  def ingest_teams(self) -> Iterable[Either[CreateTeamRequest]]:
679
1007
  """
@@ -703,6 +1031,178 @@ class SampleDataSource(
703
1031
 
704
1032
  yield Either(right=team_to_ingest)
705
1033
 
1034
+ def ingest_drives(self) -> Iterable[Either[Entity]]:
1035
+ """Ingest Sample Drive data"""
1036
+ logger.info(
1037
+ f"Starting drive ingestion, has_drive_data: {getattr(self, 'has_drive_data', False)}"
1038
+ )
1039
+ if not getattr(self, "has_drive_data", False):
1040
+ logger.warning("No drive data to ingest")
1041
+ return
1042
+ yield # Make this a generator that yields nothing
1043
+
1044
+ # Create directories first, building references as we go
1045
+ directory_refs = {}
1046
+
1047
+ for directory_data in self.directories:
1048
+ directory_request = CreateDirectoryRequest(
1049
+ name=directory_data["name"],
1050
+ displayName=directory_data.get("displayName"),
1051
+ description=directory_data.get("description"),
1052
+ service=self.drive_service.fullyQualifiedName.root,
1053
+ path=directory_data.get("path"),
1054
+ directoryType=directory_data.get("directoryType"),
1055
+ isShared=directory_data.get("isShared", False),
1056
+ numberOfFiles=directory_data.get("numberOfFiles"),
1057
+ numberOfSubDirectories=directory_data.get("numberOfSubDirectories"),
1058
+ totalSize=directory_data.get("totalSize"),
1059
+ tags=directory_data.get("tags", []),
1060
+ owners=directory_data.get("owners", []),
1061
+ )
1062
+
1063
+ # Handle parent directory reference
1064
+ if directory_data.get("parent"):
1065
+ parent_name = directory_data["parent"]
1066
+ if parent_name in directory_refs:
1067
+ directory_request.parent = directory_refs[parent_name]
1068
+ else:
1069
+ # For nested references like "Marketing.Campaigns_2024"
1070
+ # Build parent FQN manually
1071
+ parent_path = parent_name.replace(".", "/")
1072
+ directory_request.parent = (
1073
+ f"{self.drive_service.fullyQualifiedName.root}.{parent_path}"
1074
+ )
1075
+
1076
+ # Use direct API call instead of yielding since suffix mapping is missing
1077
+ try:
1078
+ resp = self.metadata.client.put(
1079
+ path="/drives/directories", data=directory_request.model_dump_json()
1080
+ )
1081
+ logger.debug(f"Created directory: {directory_data['name']}")
1082
+ except Exception as e:
1083
+ logger.warning(
1084
+ f"Failed to create directory {directory_data['name']}: {e}"
1085
+ )
1086
+
1087
+ # Store the FQN for later reference
1088
+ # Build FQN manually since Directory FQN builder is not implemented
1089
+ if directory_data.get("parent"):
1090
+ parent_path = directory_data["parent"].replace(".", "/")
1091
+ directory_fqn = f"{self.drive_service.fullyQualifiedName.root}.{parent_path}.{directory_data['name']}"
1092
+ else:
1093
+ directory_fqn = f"{self.drive_service.fullyQualifiedName.root}.{directory_data['name']}"
1094
+ directory_refs[directory_data["name"]] = directory_fqn
1095
+
1096
+ # Create files
1097
+ for file_data in self.files:
1098
+ file_request = CreateFileRequest(
1099
+ name=file_data["name"],
1100
+ displayName=file_data.get("displayName"),
1101
+ description=file_data.get("description"),
1102
+ service=self.drive_service.fullyQualifiedName.root,
1103
+ directory=directory_refs.get(file_data["directory"])
1104
+ if file_data.get("directory")
1105
+ else None,
1106
+ fileType=file_data.get("fileType"),
1107
+ mimeType=file_data.get("mimeType"),
1108
+ fileExtension=file_data.get("fileExtension"),
1109
+ path=file_data.get("path"),
1110
+ size=file_data.get("size"),
1111
+ checksum=file_data.get("checksum"),
1112
+ webViewLink=file_data.get("webViewLink"),
1113
+ downloadLink=file_data.get("downloadLink"),
1114
+ isShared=file_data.get("isShared", False),
1115
+ fileVersion=file_data.get("fileVersion"),
1116
+ sourceUrl=file_data.get("webViewLink"),
1117
+ tags=file_data.get("tags", []),
1118
+ owners=file_data.get("owners", []),
1119
+ )
1120
+
1121
+ # Use direct API call instead of yielding since suffix mapping is missing
1122
+ try:
1123
+ resp = self.metadata.client.put(
1124
+ path="/drives/files", data=file_request.model_dump_json()
1125
+ )
1126
+ logger.debug(f"Created file: {file_data['name']}")
1127
+ except Exception as e:
1128
+ logger.warning(f"Failed to create file {file_data['name']}: {e}")
1129
+
1130
+ # Create spreadsheets
1131
+ spreadsheet_refs = {}
1132
+
1133
+ for spreadsheet_data in self.spreadsheets:
1134
+ # Build the request without parent first
1135
+ spreadsheet_request_dict = {
1136
+ "name": spreadsheet_data["name"],
1137
+ "displayName": spreadsheet_data.get("displayName"),
1138
+ "description": spreadsheet_data.get("description"),
1139
+ "service": self.drive_service.fullyQualifiedName,
1140
+ "path": spreadsheet_data.get("path"),
1141
+ "size": spreadsheet_data.get("size"),
1142
+ "sourceUrl": spreadsheet_data.get("sourceUrl"),
1143
+ "tags": spreadsheet_data.get("tags", []),
1144
+ "owners": spreadsheet_data.get("owners", []),
1145
+ }
1146
+
1147
+ # Skip parent for now as it requires entity reference
1148
+ # TODO: Add parent reference once directories are created and we can get their IDs
1149
+
1150
+ spreadsheet_request = CreateSpreadsheetRequest(**spreadsheet_request_dict)
1151
+
1152
+ # Use direct API call instead of yielding since suffix mapping is missing
1153
+ try:
1154
+ resp = self.metadata.client.put(
1155
+ path="/drives/spreadsheets",
1156
+ data=spreadsheet_request.model_dump_json(),
1157
+ )
1158
+ logger.debug(f"Created spreadsheet: {spreadsheet_data['name']}")
1159
+ except Exception as e:
1160
+ logger.warning(
1161
+ f"Failed to create spreadsheet {spreadsheet_data['name']}: {e}"
1162
+ )
1163
+
1164
+ # Store FQN for worksheet references
1165
+ # Build FQN manually - spreadsheets use simple FQN without directory path
1166
+ spreadsheet_fqn = f"{self.drive_service.fullyQualifiedName.root}.{spreadsheet_data['name']}"
1167
+ spreadsheet_refs[spreadsheet_data["name"]] = spreadsheet_fqn
1168
+ logger.debug(
1169
+ f"Stored spreadsheet ref: {spreadsheet_data['name']} -> {spreadsheet_fqn}"
1170
+ )
1171
+
1172
+ # Create worksheets
1173
+ for worksheet_data in self.worksheets:
1174
+ spreadsheet_fqn = spreadsheet_refs.get(worksheet_data["spreadsheet"])
1175
+ logger.debug(
1176
+ f"Creating worksheet {worksheet_data['name']} for spreadsheet {worksheet_data['spreadsheet']} -> {spreadsheet_fqn}"
1177
+ )
1178
+
1179
+ if not spreadsheet_fqn:
1180
+ logger.warning(
1181
+ f"Spreadsheet {worksheet_data['spreadsheet']} not found in refs"
1182
+ )
1183
+ continue
1184
+
1185
+ worksheet_request = CreateWorksheetRequest(
1186
+ name=worksheet_data["name"],
1187
+ displayName=worksheet_data.get("displayName"),
1188
+ description=worksheet_data.get("description"),
1189
+ spreadsheet=spreadsheet_fqn,
1190
+ columns=worksheet_data.get("columns", []),
1191
+ isHidden=worksheet_data.get("isHidden", False),
1192
+ tags=worksheet_data.get("tags", []),
1193
+ )
1194
+
1195
+ # Use direct API call instead of yielding since suffix mapping is missing
1196
+ try:
1197
+ resp = self.metadata.client.put(
1198
+ path="/drives/worksheets", data=worksheet_request.model_dump_json()
1199
+ )
1200
+ logger.debug(f"Created worksheet: {worksheet_data['name']}")
1201
+ except Exception as e:
1202
+ logger.warning(
1203
+ f"Failed to create worksheet {worksheet_data['name']}: {e}"
1204
+ )
1205
+
706
1206
  def ingest_mysql(self) -> Iterable[Either[Entity]]:
707
1207
  """Ingest Sample Data for mysql database source including ER diagrams metadata"""
708
1208
 
@@ -752,6 +1252,7 @@ class SampleDataSource(
752
1252
  tableConstraints=table.get("tableConstraints"),
753
1253
  tableType=table["tableType"],
754
1254
  sourceUrl=table.get("sourceUrl"),
1255
+ domains=["TestDomain"],
755
1256
  )
756
1257
  yield Either(right=table_request)
757
1258
 
@@ -1840,3 +2341,161 @@ class SampleDataSource(
1840
2341
  for endpoint in self.ometa_api_endpoint.get("endpoints"):
1841
2342
  endpoint_request = CreateAPIEndpointRequest(**endpoint)
1842
2343
  yield Either(right=endpoint_request)
2344
+
2345
+ def create_database_service(self, service_idx: int) -> None:
2346
+ """Create a database service and its databases.
2347
+
2348
+ Args:
2349
+ service_idx: Service index
2350
+ """
2351
+ service_name = f"openmetadata-{service_idx}"
2352
+
2353
+ try:
2354
+ # Create minimal Snowflake connection
2355
+ connection = DatabaseConnection(
2356
+ config=SnowflakeConnection(
2357
+ username="dummy",
2358
+ password="dummy", # This will be handled by the library
2359
+ account="dummy",
2360
+ database="dummy",
2361
+ warehouse="dummy",
2362
+ )
2363
+ )
2364
+
2365
+ # Create service with minimal required fields
2366
+ yield Either(
2367
+ right=CreateDatabaseServiceRequest(
2368
+ name=service_name,
2369
+ serviceType=DatabaseServiceType.Snowflake,
2370
+ connection=connection,
2371
+ )
2372
+ )
2373
+
2374
+ logger.info(f"Created database service {service_name} ({NUM_SERVICES})")
2375
+ tasks = []
2376
+ # Create databases sequentially
2377
+ for db_idx in range(DATABASES_PER_SERVICE):
2378
+ yield from self.create_database(service_name, db_idx)
2379
+
2380
+ except Exception as e:
2381
+ logger.error(f"Failed to create database service {service_name}: {e}")
2382
+
2383
+ def process_service_batch(self) -> None:
2384
+ """Process a batch of services.
2385
+
2386
+ Args:
2387
+ start_idx: Start index of service batch
2388
+ end_idx: End index of service batch
2389
+ """
2390
+
2391
+ services_per_thread = NUM_SERVICES // NUM_THREADS
2392
+ # Create tasks for each thread
2393
+ for service_idx in range(NUM_SERVICES):
2394
+ yield from self.create_database_service(service_idx)
2395
+
2396
+ # create table and column lineage from the snowflake sample data to Mysql Table `Tags`
2397
+ yield from self.create_table_lineage()
2398
+
2399
+ def create_table_lineage(self) -> None:
2400
+ """Create table lineage from the snowflake sample data to Mysql Table `Tags`"""
2401
+ source_table_list = list(
2402
+ self.metadata.list_entities(
2403
+ entity=Table,
2404
+ limit=5,
2405
+ params={"database": "openmetadata-0.openmetadata-db-0"},
2406
+ ).entities
2407
+ )
2408
+ destination_table = self.metadata.get_by_name(
2409
+ Table, "mysql_sample.default.posts_db.Tags"
2410
+ )
2411
+
2412
+ for source_table in source_table_list:
2413
+ yield Either(
2414
+ right=AddLineageRequest(
2415
+ edge=EntitiesEdge(
2416
+ fromEntity=EntityReference(id=source_table.id, type="table"),
2417
+ toEntity=EntityReference(id=destination_table.id, type="table"),
2418
+ lineageDetails=LineageDetails(
2419
+ columnsLineage=[
2420
+ ColumnLineage(
2421
+ fromColumns=[
2422
+ from_column.fullyQualifiedName.root
2423
+ for from_column in source_table.columns
2424
+ ][:5],
2425
+ toColumn=to_column.fullyQualifiedName.root,
2426
+ )
2427
+ for to_column in destination_table.columns
2428
+ ]
2429
+ ),
2430
+ )
2431
+ )
2432
+ )
2433
+
2434
+ def create_database(self, service_name: str, db_idx: int) -> None:
2435
+ """Create a database.
2436
+
2437
+ Args:
2438
+ service_name: Service name
2439
+ db_idx: Database index
2440
+ """
2441
+ db_name = f"openmetadata-db-{db_idx}"
2442
+
2443
+ try:
2444
+ # Create with minimal required fields
2445
+ db_request = Either(
2446
+ right=CreateDatabaseRequest(name=db_name, service=service_name)
2447
+ )
2448
+ yield db_request
2449
+ database_fqn = f"{service_name}.{db_name}"
2450
+
2451
+ # Create schemas sequentially to avoid overwhelming the API
2452
+ for schema_idx in range(SCHEMAS_PER_DATABASE):
2453
+ yield from self.create_schema(database_fqn, schema_idx)
2454
+
2455
+ except Exception as e:
2456
+ logger.error(f"Failed to create database {db_name}: {e}")
2457
+
2458
+ def create_schema(self, database_fqn: str, schema_idx: int) -> None:
2459
+ """Create a schema.
2460
+
2461
+ Args:
2462
+ database_fqn: Database FQN
2463
+ schema_idx: Schema index
2464
+ """
2465
+ schema_name = f"openmetadata-schema-{schema_idx}"
2466
+
2467
+ try:
2468
+ # Create with minimal required fields
2469
+ schema_request = Either(
2470
+ right=CreateDatabaseSchemaRequest(
2471
+ name=schema_name, database=database_fqn
2472
+ )
2473
+ )
2474
+ yield schema_request
2475
+ schema_name = f"{database_fqn}.{schema_name}"
2476
+ # Create tables sequentially to avoid overwhelming the API
2477
+ yield from self.create_table(schema_name)
2478
+
2479
+ except Exception as e:
2480
+ logger.error(f"Failed to create schema {schema_name}: {e}")
2481
+
2482
+ def create_table(self, schema_fqn: str) -> None:
2483
+ """Create a batch of tables for a schema.
2484
+
2485
+ Args:
2486
+ schema_fqn: Fully qualified schema name
2487
+ """
2488
+ # Create table requests
2489
+ for i in range(TABLES_PER_SCHEMA):
2490
+ table_name = f"openmetadata-table-{i}"
2491
+
2492
+ # Create with minimal required fields
2493
+ try:
2494
+ table_request = Either(
2495
+ right=CreateTableRequest(
2496
+ name=table_name, databaseSchema=schema_fqn, columns=COLUMNS
2497
+ )
2498
+ )
2499
+ yield table_request
2500
+ except Exception as e:
2501
+ logger.warning(f"Error creating table request: {e}")