openmetadata-ingestion 1.5.6.0__py3-none-any.whl → 1.5.7.1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (616) hide show
  1. metadata/data_quality/validations/base_test_handler.py +5 -23
  2. metadata/data_quality/validations/column/base/columnValuesToBeInSet.py +3 -5
  3. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +69 -25
  4. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +50 -12
  5. metadata/data_quality/validations/utils.py +56 -0
  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 +1 -1
  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/analytics/__init__.py +1 -1
  23. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  24. metadata/generated/schema/api/automations/__init__.py +1 -1
  25. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  26. metadata/generated/schema/api/bulkAssets.py +1 -1
  27. metadata/generated/schema/api/classification/__init__.py +1 -1
  28. metadata/generated/schema/api/classification/createClassification.py +1 -1
  29. metadata/generated/schema/api/classification/createTag.py +1 -1
  30. metadata/generated/schema/api/classification/loadTags.py +1 -1
  31. metadata/generated/schema/api/createBot.py +1 -1
  32. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  33. metadata/generated/schema/api/createType.py +1 -1
  34. metadata/generated/schema/api/data/__init__.py +1 -1
  35. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  36. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  37. metadata/generated/schema/api/data/createChart.py +1 -1
  38. metadata/generated/schema/api/data/createContainer.py +1 -1
  39. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  40. metadata/generated/schema/api/data/createDashboard.py +1 -1
  41. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  42. metadata/generated/schema/api/data/createDatabase.py +1 -1
  43. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  44. metadata/generated/schema/api/data/createGlossary.py +1 -1
  45. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  46. metadata/generated/schema/api/data/createMlModel.py +1 -1
  47. metadata/generated/schema/api/data/createPipeline.py +1 -1
  48. metadata/generated/schema/api/data/createQuery.py +1 -1
  49. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  50. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  51. metadata/generated/schema/api/data/createTable.py +1 -1
  52. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  53. metadata/generated/schema/api/data/createTopic.py +1 -1
  54. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  55. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  56. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  57. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  58. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  59. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  60. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  61. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  62. metadata/generated/schema/api/docStore/__init__.py +1 -1
  63. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  64. metadata/generated/schema/api/domains/__init__.py +1 -1
  65. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  66. metadata/generated/schema/api/domains/createDomain.py +1 -1
  67. metadata/generated/schema/api/feed/__init__.py +1 -1
  68. metadata/generated/schema/api/feed/closeTask.py +1 -1
  69. metadata/generated/schema/api/feed/createPost.py +1 -1
  70. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  71. metadata/generated/schema/api/feed/createThread.py +1 -1
  72. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  73. metadata/generated/schema/api/feed/threadCount.py +1 -1
  74. metadata/generated/schema/api/lineage/__init__.py +1 -1
  75. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  76. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  77. metadata/generated/schema/api/policies/__init__.py +1 -1
  78. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  79. metadata/generated/schema/api/services/__init__.py +1 -1
  80. metadata/generated/schema/api/services/createApiService.py +1 -1
  81. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  82. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  83. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  84. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  85. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  86. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  87. metadata/generated/schema/api/services/createSearchService.py +1 -1
  88. metadata/generated/schema/api/services/createStorageService.py +1 -1
  89. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  90. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  91. metadata/generated/schema/api/setOwner.py +1 -1
  92. metadata/generated/schema/api/teams/__init__.py +1 -1
  93. metadata/generated/schema/api/teams/createPersona.py +1 -1
  94. metadata/generated/schema/api/teams/createRole.py +1 -1
  95. metadata/generated/schema/api/teams/createTeam.py +1 -1
  96. metadata/generated/schema/api/teams/createUser.py +1 -1
  97. metadata/generated/schema/api/tests/__init__.py +1 -1
  98. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  99. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  100. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  101. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  102. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  103. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  104. metadata/generated/schema/api/voteRequest.py +1 -1
  105. metadata/generated/schema/auth/__init__.py +1 -1
  106. metadata/generated/schema/auth/basicAuth.py +1 -1
  107. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  108. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  109. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  110. metadata/generated/schema/auth/emailRequest.py +1 -1
  111. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  112. metadata/generated/schema/auth/generateToken.py +1 -1
  113. metadata/generated/schema/auth/jwtAuth.py +1 -1
  114. metadata/generated/schema/auth/loginRequest.py +1 -1
  115. metadata/generated/schema/auth/logoutRequest.py +1 -1
  116. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  117. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  118. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  119. metadata/generated/schema/auth/refreshToken.py +1 -1
  120. metadata/generated/schema/auth/registrationRequest.py +1 -1
  121. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  122. metadata/generated/schema/auth/revokeToken.py +1 -1
  123. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  124. metadata/generated/schema/auth/ssoAuth.py +1 -1
  125. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  126. metadata/generated/schema/configuration/__init__.py +1 -1
  127. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  128. metadata/generated/schema/configuration/authConfig.py +1 -1
  129. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  130. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  131. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  132. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  133. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  134. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  135. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  136. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  137. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  138. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  139. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  140. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  141. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  142. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  143. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  144. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  145. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  146. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  147. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  148. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  149. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  150. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  151. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  152. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  153. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  154. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  155. metadata/generated/schema/dataInsight/__init__.py +1 -1
  156. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  157. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  158. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  159. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  160. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  161. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  162. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  163. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  164. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  165. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  166. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  167. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  168. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  169. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  170. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  171. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  172. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  173. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  174. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  175. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  176. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  177. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  178. metadata/generated/schema/email/__init__.py +1 -1
  179. metadata/generated/schema/email/emailRequest.py +1 -1
  180. metadata/generated/schema/email/emailTemplate.py +1 -1
  181. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  182. metadata/generated/schema/email/smtpSettings.py +1 -1
  183. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  184. metadata/generated/schema/entity/__init__.py +1 -1
  185. metadata/generated/schema/entity/applications/__init__.py +1 -1
  186. metadata/generated/schema/entity/applications/app.py +1 -1
  187. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  188. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  189. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  190. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  191. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  192. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  193. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  194. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  195. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  196. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  197. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  198. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  199. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  200. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  201. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  202. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  203. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  204. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  205. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
  206. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  207. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  208. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  209. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  210. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  211. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  212. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  213. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  214. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  215. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  216. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  217. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  218. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  219. metadata/generated/schema/entity/automations/__init__.py +1 -1
  220. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  221. metadata/generated/schema/entity/automations/workflow.py +1 -1
  222. metadata/generated/schema/entity/bot.py +1 -1
  223. metadata/generated/schema/entity/classification/__init__.py +1 -1
  224. metadata/generated/schema/entity/classification/classification.py +1 -1
  225. metadata/generated/schema/entity/classification/tag.py +1 -1
  226. metadata/generated/schema/entity/data/__init__.py +1 -1
  227. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  228. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  229. metadata/generated/schema/entity/data/chart.py +1 -1
  230. metadata/generated/schema/entity/data/container.py +1 -1
  231. metadata/generated/schema/entity/data/dashboard.py +1 -1
  232. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  233. metadata/generated/schema/entity/data/database.py +1 -1
  234. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  235. metadata/generated/schema/entity/data/glossary.py +1 -1
  236. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  237. metadata/generated/schema/entity/data/metrics.py +1 -1
  238. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  239. metadata/generated/schema/entity/data/pipeline.py +1 -1
  240. metadata/generated/schema/entity/data/query.py +1 -1
  241. metadata/generated/schema/entity/data/report.py +1 -1
  242. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  243. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  244. metadata/generated/schema/entity/data/table.py +1 -1
  245. metadata/generated/schema/entity/data/topic.py +1 -1
  246. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  247. metadata/generated/schema/entity/docStore/document.py +1 -1
  248. metadata/generated/schema/entity/domains/__init__.py +1 -1
  249. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  250. metadata/generated/schema/entity/domains/domain.py +1 -1
  251. metadata/generated/schema/entity/events/__init__.py +1 -1
  252. metadata/generated/schema/entity/events/webhook.py +1 -1
  253. metadata/generated/schema/entity/feed/__init__.py +1 -1
  254. metadata/generated/schema/entity/feed/assets.py +1 -1
  255. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  256. metadata/generated/schema/entity/feed/description.py +1 -1
  257. metadata/generated/schema/entity/feed/domain.py +1 -1
  258. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  259. metadata/generated/schema/entity/feed/owner.py +1 -1
  260. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  261. metadata/generated/schema/entity/feed/tag.py +1 -1
  262. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  263. metadata/generated/schema/entity/feed/thread.py +1 -1
  264. metadata/generated/schema/entity/policies/__init__.py +1 -1
  265. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  266. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  267. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  268. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  269. metadata/generated/schema/entity/policies/filters.py +1 -1
  270. metadata/generated/schema/entity/policies/policy.py +1 -1
  271. metadata/generated/schema/entity/services/__init__.py +1 -1
  272. metadata/generated/schema/entity/services/apiService.py +1 -1
  273. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  274. metadata/generated/schema/entity/services/connections/apiService/__init__.py +1 -1
  275. metadata/generated/schema/entity/services/connections/apiService/restConnection.py +1 -1
  276. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  277. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  278. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  279. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  280. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  281. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  282. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  283. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  284. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  285. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  286. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  287. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  288. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  289. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  290. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  291. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  292. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  293. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  294. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  295. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  296. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  297. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  302. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  303. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  304. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  306. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  307. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  308. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  309. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  310. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  311. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  312. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  314. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  316. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  323. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  324. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  325. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  326. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  327. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  328. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  329. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  330. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  332. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  333. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  334. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  337. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  338. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  366. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  372. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  373. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  380. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  386. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  403. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  405. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  406. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  407. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  411. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  416. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  417. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  418. metadata/generated/schema/entity/services/databaseService.py +1 -1
  419. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  420. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  421. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  422. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  423. metadata/generated/schema/entity/services/messagingService.py +1 -1
  424. metadata/generated/schema/entity/services/metadataService.py +1 -1
  425. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  426. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  427. metadata/generated/schema/entity/services/searchService.py +1 -1
  428. metadata/generated/schema/entity/services/serviceType.py +1 -1
  429. metadata/generated/schema/entity/services/storageService.py +1 -1
  430. metadata/generated/schema/entity/teams/__init__.py +1 -1
  431. metadata/generated/schema/entity/teams/persona.py +1 -1
  432. metadata/generated/schema/entity/teams/role.py +1 -1
  433. metadata/generated/schema/entity/teams/team.py +1 -1
  434. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  435. metadata/generated/schema/entity/teams/user.py +1 -1
  436. metadata/generated/schema/entity/type.py +1 -1
  437. metadata/generated/schema/entity/utils/__init__.py +1 -1
  438. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  439. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  440. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  441. metadata/generated/schema/events/__init__.py +1 -1
  442. metadata/generated/schema/events/alertMetrics.py +1 -1
  443. metadata/generated/schema/events/api/__init__.py +1 -1
  444. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  445. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  446. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  447. metadata/generated/schema/events/eventFilterRule.py +1 -1
  448. metadata/generated/schema/events/eventSubscription.py +1 -1
  449. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  450. metadata/generated/schema/events/failedEvent.py +1 -1
  451. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  452. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  453. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  454. metadata/generated/schema/metadataIngestion/application.py +1 -1
  455. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  456. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  457. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  458. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  459. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  460. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  461. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  462. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  463. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  464. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  465. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  466. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  467. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  468. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  469. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  470. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  471. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  472. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  473. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  474. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  475. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  476. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  477. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  478. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  479. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  480. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  481. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  482. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  483. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  484. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  485. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  486. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  487. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  488. metadata/generated/schema/monitoring/__init__.py +1 -1
  489. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  490. metadata/generated/schema/security/__init__.py +1 -1
  491. metadata/generated/schema/security/client/__init__.py +1 -1
  492. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  493. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  494. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  495. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  496. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  497. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  498. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  499. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  500. metadata/generated/schema/security/credentials/__init__.py +1 -1
  501. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  502. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  503. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  504. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  505. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  506. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  507. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  508. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  509. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  510. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  511. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  512. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  513. metadata/generated/schema/security/sasl/__init__.py +1 -1
  514. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  515. metadata/generated/schema/security/secrets/__init__.py +1 -1
  516. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  517. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  518. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  519. metadata/generated/schema/security/securityConfiguration.py +1 -1
  520. metadata/generated/schema/security/ssl/__init__.py +1 -1
  521. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  522. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  523. metadata/generated/schema/settings/__init__.py +1 -1
  524. metadata/generated/schema/settings/settings.py +1 -1
  525. metadata/generated/schema/system/__init__.py +1 -1
  526. metadata/generated/schema/system/entityError.py +1 -1
  527. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  528. metadata/generated/schema/system/indexingError.py +1 -1
  529. metadata/generated/schema/system/limitsResponse.py +1 -1
  530. metadata/generated/schema/system/ui/__init__.py +1 -1
  531. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  532. metadata/generated/schema/system/ui/page.py +1 -1
  533. metadata/generated/schema/system/validationResponse.py +1 -1
  534. metadata/generated/schema/tests/__init__.py +1 -1
  535. metadata/generated/schema/tests/assigned.py +1 -1
  536. metadata/generated/schema/tests/basic.py +20 -20
  537. metadata/generated/schema/tests/customMetric.py +1 -1
  538. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  539. metadata/generated/schema/tests/resolved.py +1 -1
  540. metadata/generated/schema/tests/testCase.py +1 -1
  541. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  542. metadata/generated/schema/tests/testDefinition.py +1 -1
  543. metadata/generated/schema/tests/testSuite.py +1 -1
  544. metadata/generated/schema/type/__init__.py +1 -1
  545. metadata/generated/schema/type/apiSchema.py +1 -1
  546. metadata/generated/schema/type/auditLog.py +1 -1
  547. metadata/generated/schema/type/basic.py +1 -1
  548. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  549. metadata/generated/schema/type/changeEvent.py +1 -1
  550. metadata/generated/schema/type/changeEventType.py +1 -1
  551. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  552. metadata/generated/schema/type/csvDocumentation.py +1 -1
  553. metadata/generated/schema/type/csvErrorType.py +1 -1
  554. metadata/generated/schema/type/csvFile.py +1 -1
  555. metadata/generated/schema/type/csvImportResult.py +1 -1
  556. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  557. metadata/generated/schema/type/customProperties/complexTypes.py +28 -13
  558. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  559. metadata/generated/schema/type/customProperties/tableConfig.py +28 -0
  560. metadata/generated/schema/type/customProperty.py +5 -3
  561. metadata/generated/schema/type/dailyCount.py +1 -1
  562. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  563. metadata/generated/schema/type/entityHierarchy.py +1 -1
  564. metadata/generated/schema/type/entityHistory.py +1 -1
  565. metadata/generated/schema/type/entityLineage.py +1 -1
  566. metadata/generated/schema/type/entityReference.py +1 -1
  567. metadata/generated/schema/type/entityReferenceList.py +1 -1
  568. metadata/generated/schema/type/entityRelationship.py +1 -1
  569. metadata/generated/schema/type/entityUsage.py +1 -1
  570. metadata/generated/schema/type/filterPattern.py +1 -1
  571. metadata/generated/schema/type/function.py +1 -1
  572. metadata/generated/schema/type/include.py +1 -1
  573. metadata/generated/schema/type/jdbcConnection.py +1 -1
  574. metadata/generated/schema/type/lifeCycle.py +1 -1
  575. metadata/generated/schema/type/paging.py +1 -1
  576. metadata/generated/schema/type/profile.py +1 -1
  577. metadata/generated/schema/type/queryParserData.py +1 -1
  578. metadata/generated/schema/type/reaction.py +1 -1
  579. metadata/generated/schema/type/schedule.py +1 -1
  580. metadata/generated/schema/type/schema.py +1 -1
  581. metadata/generated/schema/type/tableQuery.py +1 -1
  582. metadata/generated/schema/type/tableUsageCount.py +1 -1
  583. metadata/generated/schema/type/tagLabel.py +1 -1
  584. metadata/generated/schema/type/usageDetails.py +1 -1
  585. metadata/generated/schema/type/usageRequest.py +1 -1
  586. metadata/generated/schema/type/votes.py +1 -1
  587. metadata/ingestion/source/dashboard/mstr/client.py +3 -2
  588. metadata/ingestion/source/dashboard/quicksight/metadata.py +59 -50
  589. metadata/ingestion/source/dashboard/quicksight/models.py +2 -2
  590. metadata/ingestion/source/dashboard/superset/connection.py +6 -1
  591. metadata/ingestion/source/dashboard/superset/db_source.py +7 -1
  592. metadata/ingestion/source/dashboard/superset/mixin.py +7 -1
  593. metadata/ingestion/source/database/couchbase/metadata.py +67 -14
  594. metadata/ingestion/source/database/couchbase/models.py +31 -0
  595. metadata/ingestion/source/database/couchbase/queries.py +4 -3
  596. metadata/ingestion/source/database/dbt/constants.py +55 -0
  597. metadata/ingestion/source/database/dbt/dbt_service.py +29 -45
  598. metadata/ingestion/source/database/glue/metadata.py +11 -1
  599. metadata/ingestion/source/database/glue/models.py +1 -0
  600. metadata/ingestion/source/database/pinotdb/connection.py +11 -1
  601. metadata/ingestion/source/database/pinotdb/metadata.py +41 -1
  602. metadata/ingestion/source/database/postgres/metadata.py +74 -3
  603. metadata/ingestion/source/database/postgres/models.py +25 -0
  604. metadata/ingestion/source/database/postgres/queries.py +96 -0
  605. metadata/ingestion/source/database/salesforce/metadata.py +10 -5
  606. metadata/ingestion/source/pipeline/gluepipeline/metadata.py +160 -14
  607. metadata/ingestion/source/pipeline/gluepipeline/models.py +78 -0
  608. metadata/ingestion/source/pipeline/pipeline_service.py +10 -0
  609. metadata/utils/collections.py +27 -0
  610. {openmetadata_ingestion-1.5.6.0.dist-info → openmetadata_ingestion-1.5.7.1.dist-info}/METADATA +342 -341
  611. {openmetadata_ingestion-1.5.6.0.dist-info → openmetadata_ingestion-1.5.7.1.dist-info}/RECORD +615 -610
  612. metadata/utils/test_suite.py +0 -84
  613. {openmetadata_ingestion-1.5.6.0.dist-info → openmetadata_ingestion-1.5.7.1.dist-info}/LICENSE +0 -0
  614. {openmetadata_ingestion-1.5.6.0.dist-info → openmetadata_ingestion-1.5.7.1.dist-info}/WHEEL +0 -0
  615. {openmetadata_ingestion-1.5.6.0.dist-info → openmetadata_ingestion-1.5.7.1.dist-info}/entry_points.txt +0 -0
  616. {openmetadata_ingestion-1.5.6.0.dist-info → openmetadata_ingestion-1.5.7.1.dist-info}/top_level.txt +0 -0
@@ -20,6 +20,7 @@ from pydantic import BaseModel
20
20
  class GlueSchema(BaseModel):
21
21
  CatalogId: Optional[str] = None
22
22
  Name: str
23
+ Description: Optional[str] = None
23
24
 
24
25
 
25
26
  class DatabasePage(BaseModel):
@@ -12,6 +12,7 @@
12
12
  """
13
13
  Source connection handler
14
14
  """
15
+ from copy import deepcopy
15
16
  from typing import Optional
16
17
 
17
18
  from sqlalchemy.engine import Engine
@@ -26,6 +27,7 @@ from metadata.ingestion.connections.builders import (
26
27
  create_generic_db_connection,
27
28
  get_connection_args_common,
28
29
  get_connection_url_common,
30
+ init_empty_connection_arguments,
29
31
  )
30
32
  from metadata.ingestion.connections.test_connections import test_connection_db_common
31
33
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
@@ -41,8 +43,16 @@ def get_connection(connection: PinotDBConnection) -> Engine:
41
43
  """
42
44
  Create connection
43
45
  """
46
+ # TODO: Rename database field to DatabaseSchema
47
+ # Pinot does not support multi database concept
48
+ if connection.database is not None:
49
+ if not connection.connectionArguments:
50
+ connection.connectionArguments = init_empty_connection_arguments()
51
+ connection.connectionArguments.root["database"] = connection.database
52
+ connection_copy = deepcopy(connection)
53
+ connection_copy.database = None
44
54
  return create_generic_db_connection(
45
- connection=connection,
55
+ connection=connection_copy,
46
56
  get_connection_url_fn=get_connection_url,
47
57
  get_connection_args_fn=get_connection_args_common,
48
58
  )
@@ -9,7 +9,10 @@
9
9
  # See the License for the specific language governing permissions and
10
10
  # limitations under the License.
11
11
  """PinotDb source module"""
12
- from typing import Optional
12
+ from typing import Iterable, Optional
13
+
14
+ from pinotdb import sqlalchemy as pinot_sqlalchemy
15
+ from sqlalchemy import types
13
16
 
14
17
  from metadata.generated.schema.entity.services.connections.database.pinotDBConnection import (
15
18
  PinotDBConnection,
@@ -22,6 +25,31 @@ from metadata.ingestion.ometa.ometa_api import OpenMetadata
22
25
  from metadata.ingestion.source.database.common_db_source import CommonDbSourceService
23
26
 
24
27
 
28
+ def get_type_custom(data_type, field_size):
29
+ type_map = {
30
+ "int": types.BigInteger,
31
+ "long": types.BigInteger,
32
+ "float": types.Float,
33
+ "double": types.Numeric,
34
+ # BOOLEAN, is added after release 0.7.1.
35
+ # In release 0.7.1 and older releases, BOOLEAN is equivalent to STRING.
36
+ "boolean": types.Boolean,
37
+ "timestamp": types.TIMESTAMP,
38
+ "string": types.String,
39
+ "json": types.JSON,
40
+ "bytes": types.LargeBinary,
41
+ "big_decimal": types.DECIMAL,
42
+ # Complex types
43
+ "struct": types.BLOB,
44
+ "map": types.BLOB,
45
+ "array": types.ARRAY,
46
+ }
47
+ return type_map.get(data_type.lower())
48
+
49
+
50
+ pinot_sqlalchemy.get_type = get_type_custom
51
+
52
+
25
53
  class PinotdbSource(CommonDbSourceService):
26
54
  """
27
55
  Implements the necessary methods to extract
@@ -39,3 +67,15 @@ class PinotdbSource(CommonDbSourceService):
39
67
  f"Expected PinotdbConnection, but got {connection}"
40
68
  )
41
69
  return cls(config, metadata)
70
+
71
+ def get_database_names(self) -> Iterable[str]:
72
+ """
73
+ Default case with a single database.
74
+
75
+ It might come informed - or not - from the source.
76
+
77
+ Sources with multiple databases should overwrite this and
78
+ apply the necessary filters.
79
+ """
80
+ # TODO: Add databaseDisplayName field in PinotDBConnection
81
+ yield "default"
@@ -13,14 +13,19 @@ Postgres source module
13
13
  """
14
14
  import traceback
15
15
  from collections import namedtuple
16
- from typing import Iterable, Optional, Tuple
16
+ from typing import Dict, Iterable, List, Optional, Tuple
17
17
 
18
18
  from sqlalchemy import String as SqlAlchemyString
19
19
  from sqlalchemy import sql
20
20
  from sqlalchemy.dialects.postgresql.base import PGDialect, ischema_names
21
21
  from sqlalchemy.engine import Inspector
22
22
 
23
+ from metadata.generated.schema.api.data.createStoredProcedure import (
24
+ CreateStoredProcedureRequest,
25
+ )
23
26
  from metadata.generated.schema.entity.data.database import Database
27
+ from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
28
+ from metadata.generated.schema.entity.data.storedProcedure import StoredProcedureCode
24
29
  from metadata.generated.schema.entity.data.table import (
25
30
  PartitionColumnDetails,
26
31
  PartitionIntervalTypes,
@@ -36,7 +41,7 @@ from metadata.generated.schema.entity.services.ingestionPipelines.status import
36
41
  from metadata.generated.schema.metadataIngestion.workflow import (
37
42
  Source as WorkflowSource,
38
43
  )
39
- from metadata.generated.schema.type.basic import FullyQualifiedEntityName
44
+ from metadata.generated.schema.type.basic import EntityName, FullyQualifiedEntityName
40
45
  from metadata.ingestion.api.models import Either
41
46
  from metadata.ingestion.api.steps import InvalidSourceException
42
47
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
@@ -46,10 +51,13 @@ from metadata.ingestion.source.database.common_db_source import (
46
51
  CommonDbSourceService,
47
52
  TableNameAndType,
48
53
  )
54
+ from metadata.ingestion.source.database.mssql.models import STORED_PROC_LANGUAGE_MAP
49
55
  from metadata.ingestion.source.database.multi_db_source import MultiDBSource
56
+ from metadata.ingestion.source.database.postgres.models import PostgresStoredProcedure
50
57
  from metadata.ingestion.source.database.postgres.queries import (
51
58
  POSTGRES_GET_ALL_TABLE_PG_POLICY,
52
59
  POSTGRES_GET_DB_NAMES,
60
+ POSTGRES_GET_STORED_PROCEDURES,
53
61
  POSTGRES_GET_TABLE_NAMES,
54
62
  POSTGRES_PARTITION_DETAILS,
55
63
  POSTGRES_SCHEMA_COMMENTS,
@@ -63,6 +71,10 @@ from metadata.ingestion.source.database.postgres.utils import (
63
71
  get_table_owner,
64
72
  get_view_definition,
65
73
  )
74
+ from metadata.ingestion.source.database.stored_procedures_mixin import (
75
+ QueryByProcedure,
76
+ StoredProcedureMixin,
77
+ )
66
78
  from metadata.utils import fqn
67
79
  from metadata.utils.filters import filter_by_database
68
80
  from metadata.utils.importer import import_side_effects
@@ -142,7 +154,7 @@ Inspector.get_table_owner = get_etable_owner
142
154
  PGDialect.get_foreign_keys = get_foreign_keys
143
155
 
144
156
 
145
- class PostgresSource(CommonDbSourceService, MultiDBSource):
157
+ class PostgresSource(CommonDbSourceService, MultiDBSource, StoredProcedureMixin):
146
158
  """
147
159
  Implements the necessary methods to extract
148
160
  Database metadata from Postgres Source
@@ -298,3 +310,62 @@ class PostgresSource(CommonDbSourceService, MultiDBSource):
298
310
  stackTrace=traceback.format_exc(),
299
311
  )
300
312
  )
313
+
314
+ def get_stored_procedures(self) -> Iterable[PostgresStoredProcedure]:
315
+ """List stored procedures"""
316
+ if self.source_config.includeStoredProcedures:
317
+ results = self.engine.execute(POSTGRES_GET_STORED_PROCEDURES).all()
318
+ for row in results:
319
+ try:
320
+ stored_procedure = PostgresStoredProcedure.model_validate(
321
+ dict(row._mapping)
322
+ )
323
+ yield stored_procedure
324
+ except Exception as exc:
325
+ logger.error()
326
+ self.status.failed(
327
+ error=StackTraceError(
328
+ name=dict(row).get("name", "UNKNOWN"),
329
+ error=f"Error parsing Stored Procedure payload: {exc}",
330
+ stackTrace=traceback.format_exc(),
331
+ )
332
+ )
333
+
334
+ def yield_stored_procedure(
335
+ self, stored_procedure
336
+ ) -> Iterable[Either[CreateStoredProcedureRequest]]:
337
+ """Prepare the stored procedure payload"""
338
+ try:
339
+ stored_procedure_request = CreateStoredProcedureRequest(
340
+ name=EntityName(stored_procedure.name),
341
+ description=None,
342
+ storedProcedureCode=StoredProcedureCode(
343
+ language=STORED_PROC_LANGUAGE_MAP.get(stored_procedure.language),
344
+ code=stored_procedure.definition,
345
+ ),
346
+ databaseSchema=fqn.build(
347
+ metadata=self.metadata,
348
+ entity_type=DatabaseSchema,
349
+ service_name=self.context.get().database_service,
350
+ database_name=self.context.get().database,
351
+ schema_name=self.context.get().database_schema,
352
+ ),
353
+ )
354
+ yield Either(right=stored_procedure_request)
355
+ self.register_record_stored_proc_request(stored_procedure_request)
356
+
357
+ except Exception as exc:
358
+ yield Either(
359
+ left=StackTraceError(
360
+ name=stored_procedure.name,
361
+ error=f"Error yielding Stored Procedure [{stored_procedure.name}] due to [{exc}]",
362
+ stackTrace=traceback.format_exc(),
363
+ )
364
+ )
365
+
366
+ def get_stored_procedure_queries_dict(self) -> Dict[str, List[QueryByProcedure]]:
367
+ """
368
+ Return the dictionary associating stored procedures to the
369
+ queries they triggered
370
+ """
371
+ return {}
@@ -0,0 +1,25 @@
1
+ # Copyright 2024 Collate
2
+ # Licensed under the Apache License, Version 2.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
+ # http://www.apache.org/licenses/LICENSE-2.0
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
+ Postgres models
13
+ """
14
+ from typing import Optional
15
+
16
+ from pydantic import BaseModel, Field
17
+
18
+
19
+ class PostgresStoredProcedure(BaseModel):
20
+ """Postgres stored procedure list query results"""
21
+
22
+ name: str = Field(alias="procedure_name")
23
+ schema: str = Field(alias="schema_name")
24
+ definition: str
25
+ language: Optional[str] = None
@@ -211,3 +211,99 @@ POSTGRES_FETCH_FK = """
211
211
  n.oid = c.relnamespace
212
212
  ORDER BY 1
213
213
  """
214
+
215
+ POSTGRES_GET_JSON_FIELDS = """
216
+ WITH RECURSIVE json_hierarchy AS (
217
+ SELECT
218
+ key AS path,
219
+ json_typeof(value) AS type,
220
+ value,
221
+ json_build_object() AS properties,
222
+ key AS title
223
+ FROM
224
+ {table_name} tbd,
225
+ LATERAL json_each({column_name}::json)
226
+ ),
227
+ build_hierarchy AS (
228
+ SELECT
229
+ path,
230
+ type,
231
+ title,
232
+ CASE
233
+ WHEN type = 'object' THEN
234
+ json_build_object(
235
+ 'title', title,
236
+ 'type', 'object',
237
+ 'properties', (
238
+ SELECT json_object_agg(
239
+ key,
240
+ json_build_object(
241
+ 'title', key,
242
+ 'type', json_typeof(value),
243
+ 'properties', (
244
+ CASE
245
+ WHEN json_typeof(value) = 'object' THEN
246
+ (
247
+ SELECT json_object_agg(
248
+ key,
249
+ json_build_object(
250
+ 'title', key,
251
+ 'type', json_typeof(value),
252
+ 'properties',
253
+ json_build_object()
254
+ )
255
+ )
256
+ FROM json_each(value::json) AS sub_key_value
257
+ )
258
+ ELSE json_build_object()
259
+ END
260
+ )
261
+ )
262
+ )
263
+ FROM json_each(value::json) AS key_value
264
+ )
265
+ )
266
+ WHEN type = 'array' THEN
267
+ json_build_object(
268
+ 'title', title,
269
+ 'type', 'array',
270
+ 'properties', json_build_object()
271
+ )
272
+ ELSE
273
+ json_build_object(
274
+ 'title', title,
275
+ 'type', type
276
+ )
277
+ END AS hierarchy
278
+ FROM
279
+ json_hierarchy
280
+ ),
281
+ aggregate_hierarchy AS (
282
+ select
283
+ json_build_object(
284
+ 'title','{column_name}',
285
+ 'type','object',
286
+ 'properties',
287
+ json_object_agg(
288
+ path,
289
+ hierarchy
290
+ )) AS result
291
+ FROM
292
+ build_hierarchy
293
+ )
294
+ SELECT
295
+ result
296
+ FROM
297
+ aggregate_hierarchy;
298
+ """
299
+
300
+ POSTGRES_GET_STORED_PROCEDURES = """
301
+ SELECT proname AS procedure_name,
302
+ nspname AS schema_name,
303
+ proargtypes AS argument_types,
304
+ prorettype::regtype AS return_type,
305
+ prosrc AS definition
306
+ FROM pg_proc
307
+ JOIN pg_namespace ON pg_proc.pronamespace = pg_namespace.oid
308
+ WHERE prokind = 'p';
309
+ """
@@ -203,15 +203,18 @@ class SalesforceSource(DatabaseServiceSource):
203
203
  )
204
204
  )
205
205
 
206
- def get_table_description(self, table_name: str) -> Optional[str]:
206
+ def get_table_description(
207
+ self, table_name: str, object_label: Optional[str]
208
+ ) -> Optional[str]:
207
209
  """
208
210
  Method to get the table description for salesforce with Tooling API
209
211
  """
212
+ table_description = None
210
213
  try:
211
214
  result = self.client.toolingexecute(
212
215
  f"query/?q=SELECT+Description+FROM+EntityDefinition+WHERE+QualifiedApiName='{table_name}'"
213
216
  )
214
- return result["records"][0]["Description"]
217
+ table_description = result["records"][0]["Description"]
215
218
  except KeyError as err:
216
219
  logger.warning(
217
220
  f"Unable to get required key from Tooling API response for table [{table_name}]: {err}"
@@ -225,7 +228,7 @@ class SalesforceSource(DatabaseServiceSource):
225
228
  logger.warning(
226
229
  f"Unable to get description with Tooling API for table [{table_name}]: {exc}"
227
230
  )
228
- return None
231
+ return table_description if table_description else object_label
229
232
 
230
233
  def yield_table(
231
234
  self, table_name_and_type: Tuple[str, TableType]
@@ -241,11 +244,13 @@ class SalesforceSource(DatabaseServiceSource):
241
244
  f"sobjects/{table_name}/describe/",
242
245
  params=None,
243
246
  )
244
- columns = self.get_columns(salesforce_objects["fields"])
247
+ columns = self.get_columns(salesforce_objects.get("fields", []))
245
248
  table_request = CreateTableRequest(
246
249
  name=EntityName(table_name),
247
250
  tableType=table_type,
248
- description=self.get_table_description(table_name),
251
+ description=self.get_table_description(
252
+ table_name, salesforce_objects.get("label")
253
+ ),
249
254
  columns=columns,
250
255
  tableConstraints=table_constraints,
251
256
  databaseSchema=FullyQualifiedEntityName(
@@ -25,6 +25,7 @@ from metadata.generated.schema.entity.data.pipeline import (
25
25
  Task,
26
26
  TaskStatus,
27
27
  )
28
+ from metadata.generated.schema.entity.data.table import Table
28
29
  from metadata.generated.schema.entity.services.connections.pipeline.gluePipelineConnection import (
29
30
  GluePipelineConnection,
30
31
  )
@@ -40,14 +41,25 @@ from metadata.generated.schema.type.basic import (
40
41
  SourceUrl,
41
42
  Timestamp,
42
43
  )
44
+ from metadata.generated.schema.type.entityLineage import EntitiesEdge, LineageDetails
45
+ from metadata.generated.schema.type.entityLineage import Source as LineageSource
46
+ from metadata.generated.schema.type.entityReference import EntityReference
43
47
  from metadata.ingestion.api.models import Either
44
48
  from metadata.ingestion.api.steps import InvalidSourceException
45
49
  from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
46
50
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
51
+ from metadata.ingestion.source.pipeline.gluepipeline.models import (
52
+ AmazonRedshift,
53
+ CatalogSource,
54
+ JDBCSource,
55
+ JobNodeResponse,
56
+ S3Source,
57
+ S3Target,
58
+ )
47
59
  from metadata.ingestion.source.pipeline.pipeline_service import PipelineServiceSource
48
60
  from metadata.utils import fqn
49
61
  from metadata.utils.logger import ingestion_logger
50
- from metadata.utils.time_utils import convert_timestamp_to_milliseconds
62
+ from metadata.utils.time_utils import datetime_to_timestamp
51
63
 
52
64
  logger = ingestion_logger()
53
65
 
@@ -63,6 +75,28 @@ STATUS_MAP = {
63
75
  "incomplete": StatusType.Failed,
64
76
  "pending": StatusType.Pending,
65
77
  }
78
+ TABLE_MODEL_MAP = {
79
+ "AmazonRedshiftSource": AmazonRedshift,
80
+ "AmazonRedshiftTarget": AmazonRedshift,
81
+ "AthenaConnectorSource": JDBCSource,
82
+ "JDBCConnectorSource": JDBCSource,
83
+ "JDBCConnectorTarget": JDBCSource,
84
+ "DirectJDBCSource": CatalogSource,
85
+ "RedshiftSource": CatalogSource,
86
+ "RedshiftTarget": CatalogSource,
87
+ "DirectJDBC": CatalogSource,
88
+ }
89
+ STORAGE_MODEL_MAP = {
90
+ "S3CsvSource": S3Source,
91
+ "S3JsonSource": S3Source,
92
+ "S3ParquetSource": S3Source,
93
+ "S3HudiSource": S3Source,
94
+ "S3DeltaSource": S3Source,
95
+ "S3DirectTarget": S3Target,
96
+ "S3DeltaDirectTarget": S3Target,
97
+ "S3GlueParquetTarget": S3Target,
98
+ "S3HudiDirectTarget": S3Target,
99
+ }
66
100
 
67
101
 
68
102
  class GluepipelineSource(PipelineServiceSource):
@@ -145,9 +179,88 @@ class GluepipelineSource(PipelineServiceSource):
145
179
  downstream_tasks.append(self.task_id_mapping[edges["DestinationId"]])
146
180
  return downstream_tasks
147
181
 
182
+ def get_lineage_details(self, job) -> Optional[dict]:
183
+ """
184
+ Get the Lineage Details of the pipeline
185
+ """
186
+ lineage_details = {"sources": [], "targets": []}
187
+ try:
188
+ job_details = JobNodeResponse.model_validate(
189
+ self.glue.get_job(JobName=job)
190
+ ).Job
191
+ if job_details and job_details.config_nodes:
192
+ nodes = job_details.config_nodes
193
+ for _, node in nodes.items():
194
+ for key, entity in node.items():
195
+ table_model, storage_model = None, None
196
+ if key in TABLE_MODEL_MAP:
197
+ table_model = TABLE_MODEL_MAP[key].model_validate(entity)
198
+ elif "Catalog" in key:
199
+ table_model = CatalogSource.model_validate(entity)
200
+ elif key in STORAGE_MODEL_MAP:
201
+ storage_model = STORAGE_MODEL_MAP[key].model_validate(
202
+ entity
203
+ )
204
+ if table_model:
205
+ for db_service_name in self.get_db_service_names():
206
+ table_entity = self.metadata.get_entity_reference(
207
+ entity=Table,
208
+ fqn=fqn.build(
209
+ metadata=self.metadata,
210
+ entity_type=Table,
211
+ table_name=table_model.table_name,
212
+ database_name=table_model.database_name,
213
+ schema_name=table_model.schema_name,
214
+ service_name=db_service_name,
215
+ ),
216
+ )
217
+ if table_entity:
218
+ if key.endswith("Source"):
219
+ lineage_details["sources"].append(table_entity)
220
+ else:
221
+ lineage_details["targets"].append(table_entity)
222
+ break
223
+ if storage_model:
224
+ for path in storage_model.Paths or [storage_model.Path]:
225
+ container = self.metadata.es_search_container_by_path(
226
+ full_path=path
227
+ )
228
+ if container and container[0]:
229
+ storage_entity = EntityReference(
230
+ id=container[0].id,
231
+ type="container",
232
+ name=container[0].name.root,
233
+ fullyQualifiedName=container[
234
+ 0
235
+ ].fullyQualifiedName.root,
236
+ )
237
+ if storage_entity:
238
+ if key.endswith("Source"):
239
+ lineage_details["sources"].append(
240
+ storage_entity
241
+ )
242
+ else:
243
+ lineage_details["targets"].append(
244
+ storage_entity
245
+ )
246
+ break
247
+
248
+ except Exception as exc:
249
+ logger.debug(traceback.format_exc())
250
+ logger.warning(
251
+ f"Failed to get lineage details for job : {job} due to : {exc}"
252
+ )
253
+ return lineage_details
254
+
148
255
  def yield_pipeline_status(
149
256
  self, pipeline_details: Any
150
257
  ) -> Iterable[Either[OMetaPipelineStatus]]:
258
+ pipeline_fqn = fqn.build(
259
+ metadata=self.metadata,
260
+ entity_type=Pipeline,
261
+ service_name=self.context.get().pipeline_service,
262
+ pipeline_name=self.context.get().pipeline,
263
+ )
151
264
  for job in self.job_name_list:
152
265
  try:
153
266
  runs = self.glue.get_job_runs(JobName=job)
@@ -161,13 +274,13 @@ class GluepipelineSource(PipelineServiceSource):
161
274
  attempt["JobRunState"].lower(), StatusType.Pending
162
275
  ).value,
163
276
  startTime=Timestamp(
164
- convert_timestamp_to_milliseconds(
165
- attempt["StartedOn"].timestamp()
277
+ datetime_to_timestamp(
278
+ attempt["StartedOn"], milliseconds=True
166
279
  )
167
280
  ),
168
281
  endTime=Timestamp(
169
- convert_timestamp_to_milliseconds(
170
- attempt["CompletedOn"].timestamp()
282
+ datetime_to_timestamp(
283
+ attempt["CompletedOn"], milliseconds=True
171
284
  )
172
285
  ),
173
286
  )
@@ -175,20 +288,14 @@ class GluepipelineSource(PipelineServiceSource):
175
288
  pipeline_status = PipelineStatus(
176
289
  taskStatus=task_status,
177
290
  timestamp=Timestamp(
178
- convert_timestamp_to_milliseconds(
179
- attempt["StartedOn"].timestamp()
291
+ datetime_to_timestamp(
292
+ attempt["StartedOn"], milliseconds=True
180
293
  )
181
294
  ),
182
295
  executionStatus=STATUS_MAP.get(
183
296
  attempt["JobRunState"].lower(), StatusType.Pending
184
297
  ).value,
185
298
  )
186
- pipeline_fqn = fqn.build(
187
- metadata=self.metadata,
188
- entity_type=Pipeline,
189
- service_name=self.context.get().pipeline_service,
190
- pipeline_name=self.context.get().pipeline,
191
- )
192
299
  yield Either(
193
300
  right=OMetaPipelineStatus(
194
301
  pipeline_fqn=pipeline_fqn,
@@ -199,7 +306,7 @@ class GluepipelineSource(PipelineServiceSource):
199
306
  yield Either(
200
307
  left=StackTraceError(
201
308
  name=pipeline_fqn,
202
- error=f"Failed to yield pipeline status: {exc}",
309
+ error=f"Failed to yield pipeline status for job {job}: {exc}",
203
310
  stackTrace=traceback.format_exc(),
204
311
  )
205
312
  )
@@ -210,3 +317,42 @@ class GluepipelineSource(PipelineServiceSource):
210
317
  """
211
318
  Get lineage between pipeline and data sources
212
319
  """
320
+ try:
321
+ pipeline_fqn = fqn.build(
322
+ metadata=self.metadata,
323
+ entity_type=Pipeline,
324
+ service_name=self.context.get().pipeline_service,
325
+ pipeline_name=self.context.get().pipeline,
326
+ )
327
+
328
+ pipeline_entity = self.metadata.get_by_name(
329
+ entity=Pipeline, fqn=pipeline_fqn
330
+ )
331
+
332
+ lineage_details = LineageDetails(
333
+ pipeline=EntityReference(id=pipeline_entity.id.root, type="pipeline"),
334
+ source=LineageSource.PipelineLineage,
335
+ )
336
+
337
+ for job in self.job_name_list:
338
+ lineage_enities = self.get_lineage_details(job)
339
+ for source in lineage_enities.get("sources"):
340
+ for target in lineage_enities.get("targets"):
341
+ yield Either(
342
+ right=AddLineageRequest(
343
+ edge=EntitiesEdge(
344
+ fromEntity=source,
345
+ toEntity=target,
346
+ lineageDetails=lineage_details,
347
+ )
348
+ )
349
+ )
350
+
351
+ except Exception as exc:
352
+ yield Either(
353
+ left=StackTraceError(
354
+ name=pipeline_details.get(NAME),
355
+ error=f"Wild error ingesting pipeline lineage {pipeline_details} - {exc}",
356
+ stackTrace=traceback.format_exc(),
357
+ )
358
+ )