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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (826) hide show
  1. metadata/__init__.py +2 -0
  2. metadata/data_quality/validations/models.py +2 -2
  3. metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +78 -5
  4. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +10 -63
  5. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +4 -1
  6. metadata/generated/schema/analytics/__init__.py +1 -1
  7. metadata/generated/schema/analytics/basic.py +1 -1
  8. metadata/generated/schema/analytics/reportData.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  10. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  11. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  12. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  13. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  14. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  15. metadata/generated/schema/analytics/webAnalyticEvent.py +5 -5
  16. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  17. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  18. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  19. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  20. metadata/generated/schema/api/__init__.py +1 -1
  21. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  22. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  23. metadata/generated/schema/api/analytics/__init__.py +1 -1
  24. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +6 -5
  25. metadata/generated/schema/api/automations/__init__.py +1 -1
  26. metadata/generated/schema/api/automations/createWorkflow.py +6 -5
  27. metadata/generated/schema/api/bulkAssets.py +1 -1
  28. metadata/generated/schema/api/classification/__init__.py +1 -1
  29. metadata/generated/schema/api/classification/createClassification.py +6 -5
  30. metadata/generated/schema/api/classification/createTag.py +4 -4
  31. metadata/generated/schema/api/classification/loadTags.py +1 -1
  32. metadata/generated/schema/api/createBot.py +5 -5
  33. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  34. metadata/generated/schema/api/createType.py +6 -5
  35. metadata/generated/schema/api/data/__init__.py +1 -1
  36. metadata/generated/schema/api/data/createAPICollection.py +4 -4
  37. metadata/generated/schema/api/data/createAPIEndpoint.py +4 -4
  38. metadata/generated/schema/api/data/createChart.py +12 -4
  39. metadata/generated/schema/api/data/createContainer.py +4 -4
  40. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  41. metadata/generated/schema/api/data/createDashboard.py +4 -4
  42. metadata/generated/schema/api/data/createDashboardDataModel.py +4 -4
  43. metadata/generated/schema/api/data/createDataContract.py +11 -5
  44. metadata/generated/schema/api/data/createDatabase.py +4 -4
  45. metadata/generated/schema/api/data/createDatabaseSchema.py +4 -4
  46. metadata/generated/schema/api/data/createDirectory.py +105 -0
  47. metadata/generated/schema/api/data/createFile.py +104 -0
  48. metadata/generated/schema/api/data/createGlossary.py +4 -4
  49. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  50. metadata/generated/schema/api/data/createMetric.py +4 -4
  51. metadata/generated/schema/api/data/createMlModel.py +4 -4
  52. metadata/generated/schema/api/data/createPipeline.py +4 -4
  53. metadata/generated/schema/api/data/createQuery.py +5 -4
  54. metadata/generated/schema/api/data/createQueryCostRecord.py +1 -1
  55. metadata/generated/schema/api/data/createSearchIndex.py +4 -4
  56. metadata/generated/schema/api/data/createSpreadsheet.py +111 -0
  57. metadata/generated/schema/api/data/createStoredProcedure.py +4 -4
  58. metadata/generated/schema/api/data/createTable.py +5 -4
  59. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  60. metadata/generated/schema/api/data/createTopic.py +5 -4
  61. metadata/generated/schema/api/data/createWorksheet.py +105 -0
  62. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  63. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  64. metadata/generated/schema/api/data/updateColumn.py +1 -1
  65. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  66. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +5 -4
  67. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  68. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  69. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  70. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +5 -5
  71. metadata/generated/schema/api/docStore/__init__.py +1 -1
  72. metadata/generated/schema/api/docStore/createDocument.py +6 -5
  73. metadata/generated/schema/api/domains/__init__.py +1 -1
  74. metadata/generated/schema/api/domains/createDataProduct.py +4 -4
  75. metadata/generated/schema/api/domains/createDomain.py +1 -1
  76. metadata/generated/schema/api/entityRelationship/__init__.py +3 -0
  77. metadata/generated/schema/api/entityRelationship/entityRelationshipDirection.py +12 -0
  78. metadata/generated/schema/api/entityRelationship/esEntityRelationshipData.py +57 -0
  79. metadata/generated/schema/api/entityRelationship/relationshipRef.py +32 -0
  80. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipRequest.py +47 -0
  81. metadata/generated/schema/api/entityRelationship/searchEntityRelationshipResult.py +47 -0
  82. metadata/generated/schema/api/entityRelationship/searchSchemaEntityRelationshipResult.py +20 -0
  83. metadata/generated/schema/api/feed/__init__.py +1 -1
  84. metadata/generated/schema/api/feed/closeTask.py +1 -1
  85. metadata/generated/schema/api/feed/createPost.py +1 -1
  86. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  87. metadata/generated/schema/api/feed/createThread.py +6 -2
  88. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  89. metadata/generated/schema/api/feed/threadCount.py +1 -1
  90. metadata/generated/schema/api/governance/__init__.py +1 -1
  91. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  92. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  93. metadata/generated/schema/api/lineage/__init__.py +1 -1
  94. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  95. metadata/generated/schema/api/lineage/esLineageData.py +4 -1
  96. metadata/generated/schema/api/lineage/lineageDirection.py +1 -1
  97. metadata/generated/schema/api/lineage/nodeInformation.py +5 -2
  98. metadata/generated/schema/api/lineage/searchLineageRequest.py +1 -1
  99. metadata/generated/schema/api/lineage/searchLineageResult.py +1 -1
  100. metadata/generated/schema/api/mcp/__init__.py +1 -1
  101. metadata/generated/schema/api/mcp/mcpToolDefinition.py +1 -1
  102. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  103. metadata/generated/schema/api/policies/__init__.py +1 -1
  104. metadata/generated/schema/api/policies/createPolicy.py +6 -5
  105. metadata/generated/schema/api/scim/__init__.py +1 -1
  106. metadata/generated/schema/api/scim/scimGroup.py +1 -1
  107. metadata/generated/schema/api/scim/scimPatchOp.py +1 -1
  108. metadata/generated/schema/api/scim/scimUser.py +1 -1
  109. metadata/generated/schema/api/search/__init__.py +1 -1
  110. metadata/generated/schema/api/search/previewSearchRequest.py +1 -1
  111. metadata/generated/schema/api/services/__init__.py +1 -1
  112. metadata/generated/schema/api/services/createApiService.py +4 -4
  113. metadata/generated/schema/api/services/createDashboardService.py +4 -4
  114. metadata/generated/schema/api/services/createDatabaseService.py +4 -4
  115. metadata/generated/schema/api/services/createDriveService.py +58 -0
  116. metadata/generated/schema/api/services/createMessagingService.py +4 -4
  117. metadata/generated/schema/api/services/createMetadataService.py +5 -4
  118. metadata/generated/schema/api/services/createMlModelService.py +4 -4
  119. metadata/generated/schema/api/services/createPipelineService.py +4 -4
  120. metadata/generated/schema/api/services/createSearchService.py +4 -4
  121. metadata/generated/schema/api/services/createSecurityService.py +4 -4
  122. metadata/generated/schema/api/services/createStorageService.py +4 -4
  123. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  124. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +13 -5
  125. metadata/generated/schema/api/setOwner.py +1 -1
  126. metadata/generated/schema/api/teams/__init__.py +1 -1
  127. metadata/generated/schema/api/teams/createPersona.py +12 -4
  128. metadata/generated/schema/api/teams/createRole.py +5 -4
  129. metadata/generated/schema/api/teams/createTeam.py +1 -1
  130. metadata/generated/schema/api/teams/createUser.py +1 -1
  131. metadata/generated/schema/api/tests/__init__.py +1 -1
  132. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  133. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  134. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  135. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  136. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  137. metadata/generated/schema/api/tests/createTestDefinition.py +5 -4
  138. metadata/generated/schema/api/tests/createTestSuite.py +13 -5
  139. metadata/generated/schema/api/tests/moveGlossaryTermRequest.py +27 -0
  140. metadata/generated/schema/api/validateGlossaryTagsRequest.py +1 -1
  141. metadata/generated/schema/api/voteRequest.py +1 -1
  142. metadata/generated/schema/auth/__init__.py +1 -1
  143. metadata/generated/schema/auth/basicAuth.py +1 -1
  144. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  145. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  146. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  147. metadata/generated/schema/auth/emailRequest.py +1 -1
  148. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  149. metadata/generated/schema/auth/generateToken.py +1 -1
  150. metadata/generated/schema/auth/jwtAuth.py +1 -1
  151. metadata/generated/schema/auth/loginRequest.py +1 -1
  152. metadata/generated/schema/auth/logoutRequest.py +1 -1
  153. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  154. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  155. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  156. metadata/generated/schema/auth/refreshToken.py +1 -1
  157. metadata/generated/schema/auth/registrationRequest.py +1 -1
  158. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  159. metadata/generated/schema/auth/revokeToken.py +1 -1
  160. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  161. metadata/generated/schema/auth/ssoAuth.py +1 -1
  162. metadata/generated/schema/auth/supportToken.py +1 -1
  163. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  164. metadata/generated/schema/configuration/__init__.py +1 -1
  165. metadata/generated/schema/configuration/aiPlatformConfiguration.py +58 -0
  166. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  167. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  168. metadata/generated/schema/configuration/authConfig.py +1 -1
  169. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  170. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  171. metadata/generated/schema/configuration/cacheConfiguration.py +137 -0
  172. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  173. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  174. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  175. metadata/generated/schema/configuration/entityRulesSettings.py +24 -0
  176. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  177. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  178. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  180. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  182. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  183. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  184. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  185. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  186. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  187. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  188. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  189. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  190. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  191. metadata/generated/schema/configuration/openMetadataBaseUrlConfiguration.py +1 -1
  192. metadata/generated/schema/configuration/opertionalConfiguration.py +1 -1
  193. metadata/generated/schema/configuration/opsConfig.py +1 -1
  194. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  195. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  196. metadata/generated/schema/configuration/searchSettings.py +1 -1
  197. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  198. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  199. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  200. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  201. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  202. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  203. metadata/generated/schema/dataInsight/__init__.py +1 -1
  204. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  205. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  206. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  207. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  208. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  209. metadata/generated/schema/dataInsight/custom/lineChart.py +5 -1
  210. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  211. metadata/generated/schema/dataInsight/dataInsightChart.py +5 -5
  212. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  213. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  214. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  215. metadata/generated/schema/dataInsight/kpi/kpi.py +4 -4
  216. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  217. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  218. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  219. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  220. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  221. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  222. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  223. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  224. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  225. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  226. metadata/generated/schema/email/__init__.py +1 -1
  227. metadata/generated/schema/email/emailRequest.py +1 -1
  228. metadata/generated/schema/email/emailTemplate.py +1 -1
  229. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  230. metadata/generated/schema/email/smtpSettings.py +1 -1
  231. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  232. metadata/generated/schema/entity/__init__.py +1 -1
  233. metadata/generated/schema/entity/applications/__init__.py +1 -1
  234. metadata/generated/schema/entity/applications/app.py +4 -4
  235. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  236. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/external/automator/addDataProductAction.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +5 -5
  245. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/external/automator/addTestCaseAction.py +1 -1
  248. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  249. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +4 -4
  250. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  251. metadata/generated/schema/entity/applications/configuration/external/automator/propagationStopConfig.py +2 -2
  252. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  253. metadata/generated/schema/entity/applications/configuration/external/automator/removeDataProductAction.py +1 -1
  254. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  255. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  256. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  257. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  258. metadata/generated/schema/entity/applications/configuration/external/automator/removeTestCaseAction.py +1 -1
  259. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  260. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  261. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  262. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  263. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  264. metadata/generated/schema/entity/applications/configuration/internal/autoPilotAppConfig.py +1 -1
  265. metadata/generated/schema/entity/applications/configuration/internal/collateAIQualityAgentAppConfig.py +1 -1
  266. metadata/generated/schema/entity/applications/configuration/internal/collateAITierAgentAppConfig.py +1 -1
  267. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  268. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  269. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  270. metadata/generated/schema/entity/applications/configuration/internal/helloPipelinesConfiguration.py +1 -1
  271. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  272. metadata/generated/schema/entity/applications/configuration/private/__init__.py +1 -1
  273. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  274. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  275. metadata/generated/schema/entity/applications/configuration/private/internal/__init__.py +1 -1
  276. metadata/generated/schema/entity/applications/configuration/private/internal/collateAITierAgentAppPrivateConfig.py +1 -1
  277. metadata/generated/schema/entity/applications/configuration/private/limits.py +1 -1
  278. metadata/generated/schema/entity/applications/createAppRequest.py +6 -5
  279. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  280. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  281. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  282. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +5 -11
  283. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +5 -4
  284. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  285. metadata/generated/schema/entity/automations/__init__.py +1 -1
  286. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  287. metadata/generated/schema/entity/automations/workflow.py +5 -5
  288. metadata/generated/schema/entity/bot.py +5 -5
  289. metadata/generated/schema/entity/classification/__init__.py +1 -1
  290. metadata/generated/schema/entity/classification/classification.py +5 -5
  291. metadata/generated/schema/entity/classification/tag.py +4 -4
  292. metadata/generated/schema/entity/data/__init__.py +1 -1
  293. metadata/generated/schema/entity/data/apiCollection.py +4 -4
  294. metadata/generated/schema/entity/data/apiEndpoint.py +4 -4
  295. metadata/generated/schema/entity/data/chart.py +11 -4
  296. metadata/generated/schema/entity/data/container.py +4 -4
  297. metadata/generated/schema/entity/data/dashboard.py +4 -4
  298. metadata/generated/schema/entity/data/dashboardDataModel.py +4 -4
  299. metadata/generated/schema/entity/data/dataContract.py +40 -53
  300. metadata/generated/schema/entity/data/database.py +4 -4
  301. metadata/generated/schema/entity/data/databaseSchema.py +4 -4
  302. metadata/generated/schema/entity/data/directory.py +173 -0
  303. metadata/generated/schema/entity/data/file.py +184 -0
  304. metadata/generated/schema/entity/data/glossary.py +4 -4
  305. metadata/generated/schema/entity/data/glossaryTerm.py +4 -4
  306. metadata/generated/schema/entity/data/metric.py +4 -5
  307. metadata/generated/schema/entity/data/mlmodel.py +4 -4
  308. metadata/generated/schema/entity/data/pipeline.py +4 -4
  309. metadata/generated/schema/entity/data/query.py +4 -4
  310. metadata/generated/schema/entity/data/queryCostRecord.py +1 -1
  311. metadata/generated/schema/entity/data/queryCostSearchResult.py +1 -1
  312. metadata/generated/schema/entity/data/report.py +4 -4
  313. metadata/generated/schema/entity/data/searchIndex.py +4 -4
  314. metadata/generated/schema/entity/data/spreadsheet.py +209 -0
  315. metadata/generated/schema/entity/data/storedProcedure.py +4 -4
  316. metadata/generated/schema/entity/data/table.py +50 -4
  317. metadata/generated/schema/entity/data/topic.py +4 -4
  318. metadata/generated/schema/entity/data/worksheet.py +168 -0
  319. metadata/generated/schema/entity/datacontract/__init__.py +3 -0
  320. metadata/generated/schema/entity/datacontract/dataContractResult.py +74 -0
  321. metadata/generated/schema/entity/datacontract/qualityValidation.py +31 -0
  322. metadata/generated/schema/entity/datacontract/schemaValidation.py +31 -0
  323. metadata/generated/schema/entity/datacontract/semanticsValidation.py +39 -0
  324. metadata/generated/schema/entity/datacontract/slaValidation.py +32 -0
  325. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  326. metadata/generated/schema/entity/docStore/document.py +5 -5
  327. metadata/generated/schema/entity/domains/__init__.py +1 -1
  328. metadata/generated/schema/entity/domains/dataProduct.py +5 -5
  329. metadata/generated/schema/entity/domains/domain.py +1 -1
  330. metadata/generated/schema/entity/events/__init__.py +1 -1
  331. metadata/generated/schema/entity/events/webhook.py +1 -1
  332. metadata/generated/schema/entity/feed/__init__.py +1 -1
  333. metadata/generated/schema/entity/feed/assets.py +1 -1
  334. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  335. metadata/generated/schema/entity/feed/description.py +1 -1
  336. metadata/generated/schema/entity/feed/domain.py +8 -8
  337. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  338. metadata/generated/schema/entity/feed/owner.py +1 -1
  339. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  340. metadata/generated/schema/entity/feed/tag.py +1 -1
  341. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  342. metadata/generated/schema/entity/feed/thread.py +4 -3
  343. metadata/generated/schema/entity/policies/__init__.py +1 -1
  344. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  345. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  346. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  347. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  348. metadata/generated/schema/entity/policies/filters.py +1 -1
  349. metadata/generated/schema/entity/policies/policy.py +4 -4
  350. metadata/generated/schema/entity/services/__init__.py +1 -1
  351. metadata/generated/schema/entity/services/apiService.py +4 -4
  352. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  353. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  354. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  356. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  357. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  358. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  359. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  360. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  361. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  371. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  372. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  373. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  374. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  375. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/dashboard/thoughtSpotConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  384. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/database/cassandra/__init__.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/cassandra/cloudConfig.py +1 -1
  390. metadata/generated/schema/entity/services/connections/database/cassandraConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/cockroachConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/database/epicConnection.py +80 -0
  417. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  449. metadata/generated/schema/entity/services/connections/database/ssasConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  454. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/drive/__init__.py +3 -0
  456. metadata/generated/schema/entity/services/connections/drive/customDriveConnection.py +45 -0
  457. metadata/generated/schema/entity/services/connections/drive/googleDriveConnection.py +82 -0
  458. metadata/generated/schema/entity/services/connections/drive/sharePointConnection.py +79 -0
  459. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  460. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  466. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  467. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  470. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  474. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  480. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  482. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  487. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  489. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  491. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  493. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  494. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  495. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  496. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  497. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  498. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  499. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  500. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  501. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  502. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  503. metadata/generated/schema/entity/services/connections/pipeline/ssisConnection.py +1 -1
  504. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  505. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  506. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  507. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  508. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  509. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  510. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  511. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  512. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  513. metadata/generated/schema/entity/services/connections/security/__init__.py +1 -1
  514. metadata/generated/schema/entity/services/connections/security/ranger/__init__.py +1 -1
  515. metadata/generated/schema/entity/services/connections/security/ranger/basicAuth.py +1 -1
  516. metadata/generated/schema/entity/services/connections/security/rangerConnection.py +1 -1
  517. metadata/generated/schema/entity/services/connections/serviceConnection.py +4 -1
  518. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  519. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  520. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  521. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  522. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  523. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +5 -5
  524. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  525. metadata/generated/schema/entity/services/dashboardService.py +4 -4
  526. metadata/generated/schema/entity/services/databaseService.py +7 -4
  527. metadata/generated/schema/entity/services/driveService.py +143 -0
  528. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  529. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +11 -4
  530. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  531. metadata/generated/schema/entity/services/ingestionPipelines/reverseIngestionResponse.py +1 -1
  532. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  533. metadata/generated/schema/entity/services/messagingService.py +4 -4
  534. metadata/generated/schema/entity/services/metadataService.py +4 -4
  535. metadata/generated/schema/entity/services/mlmodelService.py +4 -4
  536. metadata/generated/schema/entity/services/pipelineService.py +4 -4
  537. metadata/generated/schema/entity/services/searchService.py +4 -4
  538. metadata/generated/schema/entity/services/securityService.py +4 -4
  539. metadata/generated/schema/entity/services/serviceType.py +2 -1
  540. metadata/generated/schema/entity/services/storageService.py +4 -4
  541. metadata/generated/schema/entity/teams/__init__.py +1 -1
  542. metadata/generated/schema/entity/teams/persona.py +11 -4
  543. metadata/generated/schema/entity/teams/role.py +5 -5
  544. metadata/generated/schema/entity/teams/team.py +1 -1
  545. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  546. metadata/generated/schema/entity/teams/user.py +21 -3
  547. metadata/generated/schema/entity/type.py +5 -11
  548. metadata/generated/schema/entity/utils/__init__.py +1 -1
  549. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  550. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  551. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  552. metadata/generated/schema/events/__init__.py +1 -1
  553. metadata/generated/schema/events/alertMetrics.py +1 -1
  554. metadata/generated/schema/events/api/__init__.py +1 -1
  555. metadata/generated/schema/events/api/createEventSubscription.py +5 -4
  556. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  557. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  558. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  559. metadata/generated/schema/events/api/typedEvent.py +1 -1
  560. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  561. metadata/generated/schema/events/eventFilterRule.py +1 -1
  562. metadata/generated/schema/events/eventSubscription.py +5 -5
  563. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  564. metadata/generated/schema/events/failedEvent.py +1 -1
  565. metadata/generated/schema/events/failedEventResponse.py +1 -1
  566. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  567. metadata/generated/schema/events/statusContext.py +1 -1
  568. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  569. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  570. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  571. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  572. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  573. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  574. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  575. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  576. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  577. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  578. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  579. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/createAndRunIngestionPipelineTask.py +1 -1
  580. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/runAppTask.py +1 -1
  581. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  582. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  583. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  584. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  585. metadata/generated/schema/governance/workflows/elements/nodes/gateway/__init__.py +1 -1
  586. metadata/generated/schema/governance/workflows/elements/nodes/gateway/parallelGateway.py +1 -1
  587. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  588. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  589. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  590. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  591. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  592. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +9 -1
  593. metadata/generated/schema/governance/workflows/elements/triggers/noOpTrigger.py +1 -1
  594. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  595. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  596. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  597. metadata/generated/schema/governance/workflows/workflowInstanceState.py +5 -1
  598. metadata/generated/schema/jobs/__init__.py +1 -1
  599. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  600. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  601. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  602. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  603. metadata/generated/schema/metadataIngestion/application.py +1 -1
  604. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  605. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  606. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  607. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  608. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  609. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +25 -3
  610. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  611. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  612. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  613. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  614. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  615. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  616. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  617. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  618. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  619. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  620. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  621. metadata/generated/schema/metadataIngestion/driveServiceMetadataPipeline.py +165 -0
  622. metadata/generated/schema/metadataIngestion/engine/__init__.py +3 -0
  623. metadata/generated/schema/metadataIngestion/engine/nativeEngineConfig.py +23 -0
  624. metadata/generated/schema/metadataIngestion/engine/sparkEngineConfig.py +43 -0
  625. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  626. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  627. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  628. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  629. metadata/generated/schema/metadataIngestion/reverseIngestionPipeline.py +1 -1
  630. metadata/generated/schema/metadataIngestion/reverseingestionconfig/__init__.py +1 -1
  631. metadata/generated/schema/metadataIngestion/reverseingestionconfig/descriptionConfig.py +1 -1
  632. metadata/generated/schema/metadataIngestion/reverseingestionconfig/ownerConfig.py +1 -1
  633. metadata/generated/schema/metadataIngestion/reverseingestionconfig/tagsConfig.py +1 -1
  634. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  635. metadata/generated/schema/metadataIngestion/securityServiceMetadataPipeline.py +1 -1
  636. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  637. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  638. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  639. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  640. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  641. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  642. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  643. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  644. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  645. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  646. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  647. metadata/generated/schema/metadataIngestion/workflow.py +3 -1
  648. metadata/generated/schema/monitoring/__init__.py +1 -1
  649. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  650. metadata/generated/schema/scim/__init__.py +1 -1
  651. metadata/generated/schema/scim/scimConfiguration.py +1 -1
  652. metadata/generated/schema/search/__init__.py +1 -1
  653. metadata/generated/schema/search/aggregationRequest.py +1 -1
  654. metadata/generated/schema/search/searchRequest.py +1 -1
  655. metadata/generated/schema/security/__init__.py +1 -1
  656. metadata/generated/schema/security/client/__init__.py +1 -1
  657. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  658. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  659. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  660. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  661. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  662. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  663. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  664. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  665. metadata/generated/schema/security/credentials/__init__.py +1 -1
  666. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  667. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  668. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  669. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  670. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  671. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  672. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  673. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  674. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  675. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  676. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  677. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  678. metadata/generated/schema/security/credentials/kubernetesCredentials.py +40 -0
  679. metadata/generated/schema/security/sasl/__init__.py +1 -1
  680. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  681. metadata/generated/schema/security/secrets/__init__.py +1 -1
  682. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  683. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  684. metadata/generated/schema/security/secrets/secretsManagerProvider.py +2 -1
  685. metadata/generated/schema/security/securityConfiguration.py +1 -1
  686. metadata/generated/schema/security/ssl/__init__.py +1 -1
  687. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  688. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  689. metadata/generated/schema/settings/__init__.py +1 -1
  690. metadata/generated/schema/settings/settings.py +4 -1
  691. metadata/generated/schema/system/__init__.py +1 -1
  692. metadata/generated/schema/system/entityError.py +1 -1
  693. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  694. metadata/generated/schema/system/indexingError.py +1 -1
  695. metadata/generated/schema/system/limitsResponse.py +1 -1
  696. metadata/generated/schema/system/ui/__init__.py +1 -1
  697. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  698. metadata/generated/schema/system/ui/navigationItem.py +1 -1
  699. metadata/generated/schema/system/ui/page.py +5 -4
  700. metadata/generated/schema/system/ui/tab.py +1 -1
  701. metadata/generated/schema/system/ui/uiCustomization.py +9 -2
  702. metadata/generated/schema/system/validationResponse.py +1 -1
  703. metadata/generated/schema/tests/__init__.py +1 -1
  704. metadata/generated/schema/tests/assigned.py +1 -1
  705. metadata/generated/schema/tests/basic.py +1 -1
  706. metadata/generated/schema/tests/customMetric.py +1 -1
  707. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  708. metadata/generated/schema/tests/resolved.py +1 -1
  709. metadata/generated/schema/tests/testCase.py +4 -4
  710. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  711. metadata/generated/schema/tests/testDefinition.py +5 -5
  712. metadata/generated/schema/tests/testSuite.py +11 -4
  713. metadata/generated/schema/type/__init__.py +1 -1
  714. metadata/generated/schema/type/apiSchema.py +1 -1
  715. metadata/generated/schema/type/assetCertification.py +1 -1
  716. metadata/generated/schema/type/auditLog.py +1 -1
  717. metadata/generated/schema/type/basic.py +43 -1
  718. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  719. metadata/generated/schema/type/changeEvent.py +5 -7
  720. metadata/generated/schema/type/changeEventType.py +1 -1
  721. metadata/generated/schema/type/changeSummaryMap.py +1 -1
  722. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  723. metadata/generated/schema/type/contractExecutionStatus.py +16 -0
  724. metadata/generated/schema/type/csvDocumentation.py +1 -1
  725. metadata/generated/schema/type/csvErrorType.py +1 -1
  726. metadata/generated/schema/type/csvFile.py +1 -1
  727. metadata/generated/schema/type/csvImportResult.py +1 -1
  728. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  729. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  730. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  731. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  732. metadata/generated/schema/type/customProperty.py +1 -1
  733. metadata/generated/schema/type/dailyCount.py +1 -1
  734. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  735. metadata/generated/schema/type/entityHierarchy.py +1 -1
  736. metadata/generated/schema/type/entityHistory.py +1 -1
  737. metadata/generated/schema/type/entityLineage.py +1 -1
  738. metadata/generated/schema/type/entityReference.py +1 -1
  739. metadata/generated/schema/type/entityReferenceList.py +1 -1
  740. metadata/generated/schema/type/{entityRelationship.py → entityRelationship/__init__.py} +2 -2
  741. metadata/generated/schema/type/entityRelationship/nodeInformation.py +25 -0
  742. metadata/generated/schema/type/entityUsage.py +1 -1
  743. metadata/generated/schema/type/filterPattern.py +1 -1
  744. metadata/generated/schema/type/function.py +1 -1
  745. metadata/generated/schema/type/include.py +1 -1
  746. metadata/generated/schema/type/jdbcConnection.py +1 -1
  747. metadata/generated/schema/type/layerPaging.py +24 -0
  748. metadata/generated/schema/type/lifeCycle.py +1 -1
  749. metadata/generated/schema/type/paging.py +1 -1
  750. metadata/generated/schema/type/personaPreferences.py +48 -0
  751. metadata/generated/schema/type/profile.py +1 -1
  752. metadata/generated/schema/type/queryParserData.py +1 -1
  753. metadata/generated/schema/type/reaction.py +1 -1
  754. metadata/generated/schema/type/schedule.py +1 -1
  755. metadata/generated/schema/type/schema.py +1 -1
  756. metadata/generated/schema/type/tableQuery.py +1 -1
  757. metadata/generated/schema/type/tableUsageCount.py +1 -1
  758. metadata/generated/schema/type/tagLabel.py +1 -1
  759. metadata/generated/schema/type/usageDetails.py +1 -1
  760. metadata/generated/schema/type/usageRequest.py +1 -1
  761. metadata/generated/schema/type/votes.py +1 -1
  762. metadata/ingestion/api/parser.py +13 -0
  763. metadata/ingestion/connections/connection.py +18 -1
  764. metadata/ingestion/lineage/sql_lineage.py +21 -0
  765. metadata/ingestion/models/custom_properties.py +3 -3
  766. metadata/ingestion/models/patch_request.py +36 -4
  767. metadata/ingestion/ometa/mixins/data_contract_mixin.py +205 -0
  768. metadata/ingestion/ometa/mixins/patch_mixin.py +131 -55
  769. metadata/ingestion/ometa/ometa_api.py +4 -1
  770. metadata/ingestion/ometa/routes.py +32 -0
  771. metadata/ingestion/sink/metadata_rest.py +51 -0
  772. metadata/ingestion/source/api/rest/metadata.py +1 -0
  773. metadata/ingestion/source/connections.py +1 -1
  774. metadata/ingestion/source/dashboard/superset/connection.py +5 -7
  775. metadata/ingestion/source/dashboard/tableau/client.py +4 -4
  776. metadata/ingestion/source/dashboard/tableau/metadata.py +1 -0
  777. metadata/ingestion/source/database/datalake/connection.py +51 -73
  778. metadata/ingestion/source/database/datalake/metadata.py +3 -4
  779. metadata/ingestion/source/database/datalake/service_spec.py +2 -0
  780. metadata/ingestion/source/database/dbt/constants.py +17 -1
  781. metadata/ingestion/source/database/dbt/dbt_service.py +30 -1
  782. metadata/ingestion/source/database/dbt/metadata.py +135 -0
  783. metadata/ingestion/source/database/deltalake/clients/pyspark.py +1 -1
  784. metadata/ingestion/source/database/exasol/connection.py +14 -3
  785. metadata/ingestion/source/database/exasol/queries.py +13 -0
  786. metadata/ingestion/source/database/mysql/connection.py +13 -19
  787. metadata/ingestion/source/database/oracle/metadata.py +1 -1
  788. metadata/ingestion/source/database/oracle/utils.py +19 -0
  789. metadata/ingestion/source/database/postgres/connection.py +51 -48
  790. metadata/ingestion/source/database/postgres/service_spec.py +2 -0
  791. metadata/ingestion/source/database/sample_data.py +661 -2
  792. metadata/ingestion/source/database/snowflake/connection.py +196 -162
  793. metadata/ingestion/source/database/snowflake/service_spec.py +2 -0
  794. metadata/ingestion/source/database/trino/connection.py +279 -125
  795. metadata/ingestion/source/database/trino/service_spec.py +2 -0
  796. metadata/ingestion/source/database/unitycatalog/connection.py +20 -3
  797. metadata/ingestion/source/database/unitycatalog/queries.py +37 -1
  798. metadata/ingestion/source/database/unitycatalog/query_parser.py +4 -0
  799. metadata/ingestion/source/database/unitycatalog/usage.py +21 -35
  800. metadata/ingestion/source/drive/drive_service.py +648 -0
  801. metadata/ingestion/source/drives/__init__.py +13 -0
  802. metadata/ingestion/source/pipeline/airflow/metadata.py +33 -10
  803. metadata/ingestion/source/pipeline/fivetran/metadata.py +2 -2
  804. metadata/profiler/processor/processor.py +18 -3
  805. metadata/profiler/source/database/base/profiler_resolver.py +5 -2
  806. metadata/profiler/source/database/base/profiler_source.py +8 -1
  807. metadata/profiler/source/profiler_source_interface.py +11 -2
  808. metadata/sampler/pandas/sampler.py +1 -1
  809. metadata/sampler/processor.py +19 -3
  810. metadata/sampler/sampler_interface.py +7 -0
  811. metadata/utils/credentials.py +35 -0
  812. metadata/utils/db_utils.py +4 -0
  813. metadata/utils/filters.py +60 -0
  814. metadata/utils/fqn.py +79 -0
  815. metadata/utils/logger.py +9 -0
  816. metadata/utils/metadata_service_helper.py +1 -1
  817. metadata/utils/secrets/kubernetes_secrets_manager.py +176 -0
  818. metadata/utils/secrets/secrets_manager_factory.py +3 -0
  819. metadata/workflow/ingestion.py +15 -2
  820. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/METADATA +542 -535
  821. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/RECORD +825 -780
  822. metadata/ingestion/source/database/extended_sample_data.py +0 -534
  823. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/LICENSE +0 -0
  824. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/WHEEL +0 -0
  825. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/entry_points.txt +0 -0
  826. {openmetadata_ingestion-1.8.9.0.dist-info → openmetadata_ingestion-1.9.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,205 @@
1
+ # Copyright 2025 Collate
2
+ # Licensed under the Collate Community License, Version 1.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # https://github.com/open-metadata/OpenMetadata/blob/main/ingestion/LICENSE
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+ """
12
+ Mixin class containing Data Contract specific methods
13
+
14
+ To be used by OpenMetadata class
15
+ """
16
+ import traceback
17
+ from typing import Optional
18
+
19
+ from metadata.generated.schema.entity.data.dataContract import DataContract
20
+ from metadata.generated.schema.entity.datacontract.dataContractResult import (
21
+ DataContractResult,
22
+ )
23
+ from metadata.generated.schema.type.basic import Uuid
24
+ from metadata.ingestion.ometa.client import REST
25
+ from metadata.ingestion.ometa.utils import model_str
26
+ from metadata.utils.logger import ometa_logger
27
+
28
+ logger = ometa_logger()
29
+
30
+
31
+ class OMetaDataContractMixin:
32
+ """
33
+ OpenMetadata API methods related to Data Contracts.
34
+ To be inherited by OpenMetadata
35
+ """
36
+
37
+ client: REST
38
+
39
+ def put_data_contract_result(
40
+ self, data_contract_id: Uuid, result: DataContractResult
41
+ ) -> Optional[DataContractResult]:
42
+ """
43
+ Create or update a data contract execution result
44
+
45
+ Args:
46
+ data_contract_id: UUID of the data contract
47
+ result: DataContractResult object containing execution details
48
+
49
+ Returns:
50
+ DataContractResult if successful, None otherwise
51
+ """
52
+ try:
53
+ resp = self.client.put(
54
+ f"{self.get_suffix(DataContract)}/{model_str(data_contract_id)}/results",
55
+ data=result.model_dump_json(),
56
+ )
57
+ if resp:
58
+ return DataContractResult(**resp)
59
+ except Exception as err:
60
+ logger.debug(traceback.format_exc())
61
+ logger.warning(
62
+ f"Error creating data contract result for {model_str(data_contract_id)}: {err}"
63
+ )
64
+ return None
65
+
66
+ def get_data_contract_results(
67
+ self,
68
+ data_contract_id: Uuid,
69
+ limit: int = 10,
70
+ start_ts: Optional[int] = None,
71
+ end_ts: Optional[int] = None,
72
+ ) -> Optional[list]:
73
+ """
74
+ Get data contract execution results
75
+
76
+ Args:
77
+ data_contract_id: UUID of the data contract
78
+ limit: Maximum number of results to return
79
+ start_ts: Start timestamp filter
80
+ end_ts: End timestamp filter
81
+
82
+ Returns:
83
+ List of DataContractResult objects if successful, None otherwise
84
+ """
85
+ try:
86
+ # Build query parameters
87
+ query_params = [f"limit={limit}"]
88
+ if start_ts:
89
+ query_params.append(f"startTs={start_ts}")
90
+ if end_ts:
91
+ query_params.append(f"endTs={end_ts}")
92
+
93
+ query_string = "&".join(query_params)
94
+ url = f"{self.get_suffix(DataContract)}/{model_str(data_contract_id)}/results?{query_string}"
95
+
96
+ resp = self.client.get(url)
97
+ if resp:
98
+ return [DataContractResult(**result) for result in resp.get("data", [])]
99
+ except Exception as err:
100
+ logger.debug(traceback.format_exc())
101
+ logger.warning(
102
+ f"Error getting data contract results for {model_str(data_contract_id)}: {err}"
103
+ )
104
+ return None
105
+
106
+ def get_latest_data_contract_result(
107
+ self, data_contract_id: Uuid
108
+ ) -> Optional[DataContractResult]:
109
+ """
110
+ Get the latest data contract execution result
111
+
112
+ Args:
113
+ data_contract_id: UUID of the data contract
114
+
115
+ Returns:
116
+ DataContractResult if successful, None otherwise
117
+ """
118
+ try:
119
+ resp = self.client.get(
120
+ f"{self.get_suffix(DataContract)}/{model_str(data_contract_id)}/results/latest"
121
+ )
122
+ if resp:
123
+ return DataContractResult(**resp)
124
+ except Exception as err:
125
+ logger.debug(traceback.format_exc())
126
+ logger.warning(
127
+ f"Error getting latest data contract result for {model_str(data_contract_id)}: {err}"
128
+ )
129
+ return None
130
+
131
+ def get_data_contract_result_by_id(
132
+ self, data_contract_id: Uuid, result_id: Uuid
133
+ ) -> Optional[DataContractResult]:
134
+ """
135
+ Get a specific data contract execution result by ID
136
+
137
+ Args:
138
+ data_contract_id: UUID of the data contract
139
+ result_id: UUID of the specific result
140
+
141
+ Returns:
142
+ DataContractResult if successful, None otherwise
143
+ """
144
+ try:
145
+ resp = self.client.get(
146
+ f"{self.get_suffix(DataContract)}/{model_str(data_contract_id)}/results/{model_str(result_id)}"
147
+ )
148
+ if resp:
149
+ return DataContractResult(**resp)
150
+ except Exception as err:
151
+ logger.debug(traceback.format_exc())
152
+ logger.warning(
153
+ f"Error getting data contract result {model_str(result_id)} for {model_str(data_contract_id)}: {err}"
154
+ )
155
+ return None
156
+
157
+ def delete_data_contract_result(
158
+ self, data_contract_id: Uuid, timestamp: int
159
+ ) -> bool:
160
+ """
161
+ Delete a data contract result at a specific timestamp
162
+
163
+ Args:
164
+ data_contract_id: UUID of the data contract
165
+ timestamp: Timestamp of the result to delete
166
+
167
+ Returns:
168
+ True if successful, False otherwise
169
+ """
170
+ try:
171
+ self.client.delete(
172
+ f"{self.get_suffix(DataContract)}/{model_str(data_contract_id)}/results/{timestamp}"
173
+ )
174
+ return True
175
+ except Exception as err:
176
+ logger.debug(traceback.format_exc())
177
+ logger.warning(
178
+ f"Error deleting data contract result at {timestamp} for {model_str(data_contract_id)}: {err}"
179
+ )
180
+ return False
181
+
182
+ def validate_data_contract(
183
+ self, data_contract_id: Uuid
184
+ ) -> Optional[DataContractResult]:
185
+ """
186
+ Trigger on-demand validation of a data contract
187
+
188
+ Args:
189
+ data_contract_id: UUID of the data contract to validate
190
+
191
+ Returns:
192
+ DataContractResult if successful, None otherwise
193
+ """
194
+ try:
195
+ resp = self.client.post(
196
+ f"{self.get_suffix(DataContract)}/{model_str(data_contract_id)}/validate"
197
+ )
198
+ if resp:
199
+ return DataContractResult(**resp)
200
+ except Exception as err:
201
+ logger.debug(traceback.format_exc())
202
+ logger.warning(
203
+ f"Error validating data contract {model_str(data_contract_id)}: {err}"
204
+ )
205
+ return None
@@ -25,7 +25,6 @@ from metadata.generated.schema.entity.automations.workflow import (
25
25
  )
26
26
  from metadata.generated.schema.entity.automations.workflow import WorkflowStatus
27
27
  from metadata.generated.schema.entity.data.table import Column, Table, TableConstraint
28
- from metadata.generated.schema.entity.domains.domain import Domain
29
28
  from metadata.generated.schema.entity.services.connections.testConnectionResult import (
30
29
  TestConnectionResult,
31
30
  )
@@ -34,7 +33,6 @@ from metadata.generated.schema.entity.services.ingestionPipelines.reverseIngesti
34
33
  )
35
34
  from metadata.generated.schema.tests.testCase import TestCase, TestCaseParameterValue
36
35
  from metadata.generated.schema.type.basic import EntityLink, Markdown
37
- from metadata.generated.schema.type.entityReference import EntityReference
38
36
  from metadata.generated.schema.type.entityReferenceList import EntityReferenceList
39
37
  from metadata.generated.schema.type.lifeCycle import LifeCycle
40
38
  from metadata.generated.schema.type.tagLabel import TagLabel
@@ -124,6 +122,7 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
124
122
  restrict_update_fields: Optional[List] = None,
125
123
  array_entity_fields: Optional[List] = None,
126
124
  override_metadata: Optional[bool] = False,
125
+ skip_on_failure: Optional[bool] = True,
127
126
  ) -> Optional[T]:
128
127
  """
129
128
  Given an Entity type and Source entity and Destination entity,
@@ -135,6 +134,9 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
135
134
  destination: payload with changes applied to the source.
136
135
  allowed_fields: List of field names to filter from source and destination models
137
136
  restrict_update_fields: List of field names which will only support add operation
137
+ array_entity_fields: List of array fields to sort for consistent patching
138
+ override_metadata: Whether to override existing metadata fields
139
+ skip_on_failure: Whether to skip the patch operation on failure (default: True)
138
140
 
139
141
  Returns
140
142
  Updated Entity
@@ -147,6 +149,7 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
147
149
  restrict_update_fields=restrict_update_fields,
148
150
  array_entity_fields=array_entity_fields,
149
151
  override_metadata=override_metadata,
152
+ skip_on_failure=skip_on_failure,
150
153
  )
151
154
 
152
155
  if not patch:
@@ -160,9 +163,19 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
160
163
 
161
164
  except Exception as exc:
162
165
  logger.debug(traceback.format_exc())
163
- logger.warning(f"Error trying to PATCH {get_log_name(source)}: {exc}")
164
-
165
- return None
166
+ if skip_on_failure:
167
+ entity_name = get_log_name(source)
168
+ logger.warning(
169
+ f"Failed to update {entity_name}. The patch operation was skipped. "
170
+ f"Reason: {exc}"
171
+ )
172
+ return None
173
+ else:
174
+ entity_name = get_log_name(source)
175
+ raise RuntimeError(
176
+ f"Failed to update {entity_name}. The patch operation failed. "
177
+ f"Set 'skip_on_failure=True' to skip failed patches. Error: {exc}"
178
+ ) from exc
166
179
 
167
180
  def patch_description(
168
181
  self,
@@ -170,6 +183,7 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
170
183
  source: T,
171
184
  description: str,
172
185
  force: bool = False,
186
+ skip_on_failure: bool = True,
173
187
  ) -> Optional[T]:
174
188
  """
175
189
  Given an Entity type and ID, JSON PATCH the description.
@@ -180,33 +194,51 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
180
194
  description: new description to add
181
195
  force: if True, we will patch any existing description. Otherwise, we will maintain
182
196
  the existing data.
197
+ skip_on_failure: if True, return None on failure instead of raising exception
183
198
  Returns
184
199
  Updated Entity
185
200
  """
186
- if isinstance(source, TestCase):
187
- instance: Optional[T] = self._fetch_entity_if_exists(
188
- entity=entity,
189
- entity_id=source.id,
190
- fields=["testDefinition", "testSuite"],
191
- )
192
- else:
193
- instance: Optional[T] = self._fetch_entity_if_exists(
194
- entity=entity, entity_id=source.id
195
- )
201
+ try:
202
+ if isinstance(source, TestCase):
203
+ instance: Optional[T] = self._fetch_entity_if_exists(
204
+ entity=entity,
205
+ entity_id=source.id,
206
+ fields=["testDefinition", "testSuite"],
207
+ )
208
+ else:
209
+ instance: Optional[T] = self._fetch_entity_if_exists(
210
+ entity=entity, entity_id=source.id
211
+ )
196
212
 
197
- if not instance:
198
- return None
213
+ if not instance:
214
+ return None
199
215
 
200
- if instance.description and not force:
201
- # If the description is already present and force is not passed,
202
- # description will not be overridden
203
- return None
216
+ if instance.description and not force:
217
+ # If the description is already present and force is not passed,
218
+ # description will not be overridden
219
+ return None
204
220
 
205
- # https://docs.pydantic.dev/latest/usage/exporting_models/#modelcopy
206
- destination = source.model_copy(deep=True)
207
- destination.description = Markdown(description)
221
+ # https://docs.pydantic.dev/latest/usage/exporting_models/#modelcopy
222
+ destination = source.model_copy(deep=True)
223
+ destination.description = Markdown(description)
208
224
 
209
- return self.patch(entity=entity, source=source, destination=destination)
225
+ return self.patch(
226
+ entity=entity,
227
+ source=source,
228
+ destination=destination,
229
+ skip_on_failure=skip_on_failure,
230
+ )
231
+ except Exception as exc:
232
+ if skip_on_failure:
233
+ logger.debug(traceback.format_exc())
234
+ entity_name = get_log_name(source)
235
+ logger.warning(
236
+ f"Failed to patch description for {entity_name}. The patch operation was skipped. "
237
+ f"Reason: {exc}"
238
+ )
239
+ return None
240
+ else:
241
+ raise
210
242
 
211
243
  def patch_table_constraints(
212
244
  self,
@@ -275,6 +307,7 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
275
307
  operation: Union[
276
308
  PatchOperation.ADD, PatchOperation.REMOVE
277
309
  ] = PatchOperation.ADD,
310
+ skip_on_failure: bool = True,
278
311
  ) -> Optional[T]:
279
312
  """
280
313
  Given an Entity type and ID, JSON PATCH the tag.
@@ -284,29 +317,47 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
284
317
  source: Source entity object
285
318
  tag_label: TagLabel to add or remove
286
319
  operation: Patch Operation to add or remove the tag.
320
+ skip_on_failure: if True, return None on failure instead of raising exception
287
321
  Returns
288
322
  Updated Entity
289
323
  """
290
- instance: Optional[T] = self._fetch_entity_if_exists(
291
- entity=entity, entity_id=source.id, fields=["tags"]
292
- )
293
- if not instance:
294
- return None
324
+ try:
325
+ instance: Optional[T] = self._fetch_entity_if_exists(
326
+ entity=entity, entity_id=source.id, fields=["tags"]
327
+ )
328
+ if not instance:
329
+ return None
295
330
 
296
- # Initialize empty tag list or the last updated tags
297
- source.tags = instance.tags or []
298
- destination = source.model_copy(deep=True)
331
+ # Initialize empty tag list or the last updated tags
332
+ source.tags = instance.tags or []
333
+ destination = source.model_copy(deep=True)
299
334
 
300
- tag_fqns = {label.tagFQN.root for label in tag_labels}
335
+ tag_fqns = {label.tagFQN.root for label in tag_labels}
301
336
 
302
- if operation == PatchOperation.REMOVE:
303
- for tag in destination.tags:
304
- if tag.tagFQN.root in tag_fqns:
305
- destination.tags.remove(tag)
306
- else:
307
- destination.tags.extend(tag_labels)
337
+ if operation == PatchOperation.REMOVE:
338
+ for tag in destination.tags:
339
+ if tag.tagFQN.root in tag_fqns:
340
+ destination.tags.remove(tag)
341
+ else:
342
+ destination.tags.extend(tag_labels)
308
343
 
309
- return self.patch(entity=entity, source=source, destination=destination)
344
+ return self.patch(
345
+ entity=entity,
346
+ source=source,
347
+ destination=destination,
348
+ skip_on_failure=skip_on_failure,
349
+ )
350
+ except Exception as exc:
351
+ if skip_on_failure:
352
+ logger.debug(traceback.format_exc())
353
+ entity_name = get_log_name(source)
354
+ logger.warning(
355
+ f"Failed to patch tags for {entity_name}. The patch operation was skipped. "
356
+ f"Reason: {exc}"
357
+ )
358
+ return None
359
+ else:
360
+ raise
310
361
 
311
362
  def patch_tag(
312
363
  self,
@@ -316,11 +367,16 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
316
367
  operation: Union[
317
368
  PatchOperation.ADD, PatchOperation.REMOVE
318
369
  ] = PatchOperation.ADD,
370
+ skip_on_failure: bool = True,
319
371
  ) -> Optional[T]:
320
372
  """Will be deprecated in 1.3"""
321
373
  logger.warning("patch_tag will be deprecated in 1.3. Use `patch_tags` instead.")
322
374
  return self.patch_tags(
323
- entity=entity, source=source, tag_labels=[tag_label], operation=operation
375
+ entity=entity,
376
+ source=source,
377
+ tag_labels=[tag_label],
378
+ operation=operation,
379
+ skip_on_failure=skip_on_failure,
324
380
  )
325
381
 
326
382
  def patch_owner(
@@ -554,17 +610,37 @@ class OMetaPatchMixin(OMetaPatchMixinBase):
554
610
  )
555
611
  return None
556
612
 
557
- def patch_domain(self, entity: Entity, domain: Domain) -> Optional[Entity]:
558
- """Patch domain data for an Entity"""
559
- try:
560
- destination: Entity = entity.model_copy(deep=True)
561
- destination.domain = EntityReference(id=domain.id, type="domain")
562
- return self.patch(
563
- entity=type(entity), source=entity, destination=destination
564
- )
565
- except Exception as exc:
566
- logger.debug(traceback.format_exc())
567
- logger.warning(
568
- f"Error trying to Patch Domain for {entity.fullyQualifiedName.root}: {exc}"
569
- )
613
+ def patch_domain(
614
+ self,
615
+ entity: Type[T],
616
+ source: T,
617
+ domains: EntityReferenceList = None,
618
+ force: bool = False,
619
+ ) -> Optional[T]:
620
+ """
621
+ Given an Entity type and ID, JSON PATCH the owner. If not owner Entity type and
622
+ not owner ID are provided, the owner is removed.
623
+
624
+ Args
625
+ entity (T): Entity Type of the entity to be patched
626
+ entity_id: ID of the entity to be patched
627
+ owner: Entity Reference of the owner. If None, the owner will be removed
628
+ force: if True, we will patch any existing owner. Otherwise, we will maintain
629
+ the existing data.
630
+ Returns
631
+ Updated Entity
632
+ """
633
+ instance: Optional[T] = self._fetch_entity_if_exists(
634
+ entity=entity, entity_id=source.id, fields=["domains"]
635
+ )
636
+
637
+ if not instance:
570
638
  return None
639
+
640
+ if instance.domains and instance.domains.root and not force:
641
+ return None
642
+
643
+ destination = deepcopy(instance)
644
+ destination.domains = domains
645
+
646
+ return self.patch(entity=entity, source=instance, destination=destination)
@@ -37,6 +37,7 @@ from metadata.ingestion.ometa.mixins.custom_property_mixin import (
37
37
  OMetaCustomPropertyMixin,
38
38
  )
39
39
  from metadata.ingestion.ometa.mixins.dashboard_mixin import OMetaDashboardMixin
40
+ from metadata.ingestion.ometa.mixins.data_contract_mixin import OMetaDataContractMixin
40
41
  from metadata.ingestion.ometa.mixins.data_insight_mixin import DataInsightMixin
41
42
  from metadata.ingestion.ometa.mixins.domain_mixin import OMetaDomainMixin
42
43
  from metadata.ingestion.ometa.mixins.es_mixin import ESMixin
@@ -116,6 +117,7 @@ class OpenMetadata(
116
117
  ESMixin,
117
118
  OMetaServerMixin,
118
119
  OMetaDashboardMixin,
120
+ OMetaDataContractMixin,
119
121
  OMetaPatchMixin,
120
122
  OMetaTestsMixin,
121
123
  DataInsightMixin,
@@ -289,6 +291,7 @@ class OpenMetadata(
289
291
  .replace("storedprocedure", "storedProcedure")
290
292
  .replace("ingestionpipeline", "ingestionPipeline")
291
293
  .replace("dataproduct", "dataProduct")
294
+ .replace("datacontract", "dataContract")
292
295
  )
293
296
  class_path = ".".join(
294
297
  filter(
@@ -325,7 +328,7 @@ class OpenMetadata(
325
328
  resp = fn(
326
329
  # this might be a regular pydantic model so we build the context manually
327
330
  self.get_suffix(entity),
328
- data=data.model_dump_json(context={"mask_secrets": False}),
331
+ data=data.model_dump_json(context={"mask_secrets": False}, by_alias=True),
329
332
  )
330
333
  if not resp:
331
334
  raise EmptyPayloadException(
@@ -38,6 +38,11 @@ from metadata.generated.schema.api.data.createDatabase import CreateDatabaseRequ
38
38
  from metadata.generated.schema.api.data.createDatabaseSchema import (
39
39
  CreateDatabaseSchemaRequest,
40
40
  )
41
+ from metadata.generated.schema.api.data.createDataContract import (
42
+ CreateDataContractRequest,
43
+ )
44
+ from metadata.generated.schema.api.data.createDirectory import CreateDirectoryRequest
45
+ from metadata.generated.schema.api.data.createFile import CreateFileRequest
41
46
  from metadata.generated.schema.api.data.createGlossary import CreateGlossaryRequest
42
47
  from metadata.generated.schema.api.data.createGlossaryTerm import (
43
48
  CreateGlossaryTermRequest,
@@ -52,11 +57,15 @@ from metadata.generated.schema.api.data.createQueryCostRecord import (
52
57
  from metadata.generated.schema.api.data.createSearchIndex import (
53
58
  CreateSearchIndexRequest,
54
59
  )
60
+ from metadata.generated.schema.api.data.createSpreadsheet import (
61
+ CreateSpreadsheetRequest,
62
+ )
55
63
  from metadata.generated.schema.api.data.createStoredProcedure import (
56
64
  CreateStoredProcedureRequest,
57
65
  )
58
66
  from metadata.generated.schema.api.data.createTable import CreateTableRequest
59
67
  from metadata.generated.schema.api.data.createTopic import CreateTopicRequest
68
+ from metadata.generated.schema.api.data.createWorksheet import CreateWorksheetRequest
60
69
  from metadata.generated.schema.api.docStore.createDocument import CreateDocumentRequest
61
70
  from metadata.generated.schema.api.domains.createDataProduct import (
62
71
  CreateDataProductRequest,
@@ -74,6 +83,9 @@ from metadata.generated.schema.api.services.createDashboardService import (
74
83
  from metadata.generated.schema.api.services.createDatabaseService import (
75
84
  CreateDatabaseServiceRequest,
76
85
  )
86
+ from metadata.generated.schema.api.services.createDriveService import (
87
+ CreateDriveServiceRequest,
88
+ )
77
89
  from metadata.generated.schema.api.services.createMessagingService import (
78
90
  CreateMessagingServiceRequest,
79
91
  )
@@ -133,6 +145,9 @@ from metadata.generated.schema.entity.data.dashboard import Dashboard
133
145
  from metadata.generated.schema.entity.data.dashboardDataModel import DashboardDataModel
134
146
  from metadata.generated.schema.entity.data.database import Database
135
147
  from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
148
+ from metadata.generated.schema.entity.data.dataContract import DataContract
149
+ from metadata.generated.schema.entity.data.directory import Directory
150
+ from metadata.generated.schema.entity.data.file import File
136
151
  from metadata.generated.schema.entity.data.glossary import Glossary
137
152
  from metadata.generated.schema.entity.data.glossaryTerm import GlossaryTerm
138
153
  from metadata.generated.schema.entity.data.metric import Metric
@@ -142,9 +157,11 @@ from metadata.generated.schema.entity.data.query import Query
142
157
  from metadata.generated.schema.entity.data.queryCostRecord import QueryCostRecord
143
158
  from metadata.generated.schema.entity.data.report import Report
144
159
  from metadata.generated.schema.entity.data.searchIndex import SearchIndex
160
+ from metadata.generated.schema.entity.data.spreadsheet import Spreadsheet
145
161
  from metadata.generated.schema.entity.data.storedProcedure import StoredProcedure
146
162
  from metadata.generated.schema.entity.data.table import Table
147
163
  from metadata.generated.schema.entity.data.topic import Topic
164
+ from metadata.generated.schema.entity.data.worksheet import Worksheet
148
165
  from metadata.generated.schema.entity.docStore.document import Document
149
166
  from metadata.generated.schema.entity.domains.dataProduct import DataProduct
150
167
  from metadata.generated.schema.entity.domains.domain import Domain
@@ -156,6 +173,7 @@ from metadata.generated.schema.entity.services.connections.testConnectionDefinit
156
173
  )
157
174
  from metadata.generated.schema.entity.services.dashboardService import DashboardService
158
175
  from metadata.generated.schema.entity.services.databaseService import DatabaseService
176
+ from metadata.generated.schema.entity.services.driveService import DriveService
159
177
  from metadata.generated.schema.entity.services.ingestionPipelines.ingestionPipeline import (
160
178
  IngestionPipeline,
161
179
  )
@@ -213,6 +231,15 @@ ROUTES = {
213
231
  CreateAPICollectionRequest.__name__: "/apiCollections",
214
232
  Document.__name__: "/docStore",
215
233
  CreateDocumentRequest.__name__: "/docStore",
234
+ # Drive
235
+ Directory.__name__: "/drives/directories",
236
+ CreateDirectoryRequest.__name__: "/drives/directories",
237
+ Spreadsheet.__name__: "/drives/spreadsheets",
238
+ CreateSpreadsheetRequest.__name__: "/drives/spreadsheets",
239
+ File.__name__: "/drives/files",
240
+ CreateFileRequest.__name__: "/drives/files",
241
+ Worksheet.__name__: "/drives/worksheets",
242
+ CreateWorksheetRequest.__name__: "/drives/worksheets",
216
243
  # Classifications
217
244
  Tag.__name__: "/tags",
218
245
  CreateTagRequest.__name__: "/tags",
@@ -242,6 +269,8 @@ ROUTES = {
242
269
  Workflow.__name__: "/automations/workflows",
243
270
  CreateWorkflowRequest.__name__: "/automations/workflows",
244
271
  # Services
272
+ DriveService.__name__: "/services/driveServices",
273
+ CreateDriveServiceRequest.__name__: "/services/driveServices",
245
274
  ApiService.__name__: "/services/apiServices",
246
275
  CreateApiServiceRequest.__name__: "/services/apiServices",
247
276
  DatabaseService.__name__: "/services/databaseServices",
@@ -295,4 +324,7 @@ ROUTES = {
295
324
  # Query Cost
296
325
  QueryCostRecord.__name__: "/queryCostRecord",
297
326
  CreateQueryCostRecordRequest.__name__: "/queryCostRecord",
327
+ # Data Contracts
328
+ DataContract.__name__: "/dataContracts",
329
+ CreateDataContractRequest.__name__: "/dataContracts",
298
330
  }