openmetadata-ingestion 1.4.0.0rc1__py3-none-any.whl → 1.4.0.0rc3__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 (612) hide show
  1. metadata/__version__.py +13 -0
  2. metadata/cli/app.py +0 -1
  3. metadata/cmd.py +0 -193
  4. metadata/data_quality/source/test_suite.py +8 -2
  5. metadata/examples/workflows/kafka_connect.yaml +30 -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/createChart.py +1 -1
  36. metadata/generated/schema/api/data/createContainer.py +1 -1
  37. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  38. metadata/generated/schema/api/data/createDashboard.py +1 -1
  39. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  40. metadata/generated/schema/api/data/createDatabase.py +1 -1
  41. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  42. metadata/generated/schema/api/data/createGlossary.py +1 -1
  43. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  44. metadata/generated/schema/api/data/createMlModel.py +1 -1
  45. metadata/generated/schema/api/data/createPipeline.py +1 -1
  46. metadata/generated/schema/api/data/createQuery.py +1 -1
  47. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  48. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  49. metadata/generated/schema/api/data/createTable.py +4 -3
  50. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  51. metadata/generated/schema/api/data/createTopic.py +1 -1
  52. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  53. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  54. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  55. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  56. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  57. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  58. metadata/generated/schema/api/docStore/__init__.py +1 -1
  59. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  60. metadata/generated/schema/api/domains/__init__.py +1 -1
  61. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  62. metadata/generated/schema/api/domains/createDomain.py +1 -1
  63. metadata/generated/schema/api/feed/__init__.py +1 -1
  64. metadata/generated/schema/api/feed/closeTask.py +1 -1
  65. metadata/generated/schema/api/feed/createPost.py +1 -1
  66. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  67. metadata/generated/schema/api/feed/createThread.py +1 -1
  68. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  69. metadata/generated/schema/api/feed/threadCount.py +1 -1
  70. metadata/generated/schema/api/lineage/__init__.py +1 -1
  71. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  72. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  73. metadata/generated/schema/api/policies/__init__.py +1 -1
  74. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  75. metadata/generated/schema/api/services/__init__.py +1 -1
  76. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  77. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  78. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  79. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  80. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  81. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  82. metadata/generated/schema/api/services/createSearchService.py +1 -1
  83. metadata/generated/schema/api/services/createStorageService.py +1 -1
  84. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  85. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  86. metadata/generated/schema/api/setOwner.py +1 -1
  87. metadata/generated/schema/api/teams/__init__.py +1 -1
  88. metadata/generated/schema/api/teams/createPersona.py +1 -1
  89. metadata/generated/schema/api/teams/createRole.py +1 -1
  90. metadata/generated/schema/api/teams/createTeam.py +1 -1
  91. metadata/generated/schema/api/teams/createUser.py +2 -2
  92. metadata/generated/schema/api/tests/__init__.py +1 -1
  93. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  94. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  95. metadata/generated/schema/api/tests/createTestCase.py +2 -2
  96. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  97. metadata/generated/schema/api/tests/createTestDefinition.py +2 -2
  98. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  99. metadata/generated/schema/api/voteRequest.py +1 -1
  100. metadata/generated/schema/auth/__init__.py +1 -1
  101. metadata/generated/schema/auth/basicAuth.py +1 -1
  102. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  103. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  104. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  105. metadata/generated/schema/auth/emailRequest.py +1 -1
  106. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  107. metadata/generated/schema/auth/generateToken.py +1 -1
  108. metadata/generated/schema/auth/jwtAuth.py +1 -1
  109. metadata/generated/schema/auth/loginRequest.py +1 -1
  110. metadata/generated/schema/auth/logoutRequest.py +1 -1
  111. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  112. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  113. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  114. metadata/generated/schema/auth/refreshToken.py +1 -1
  115. metadata/generated/schema/auth/registrationRequest.py +1 -1
  116. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  117. metadata/generated/schema/auth/revokeToken.py +1 -1
  118. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  119. metadata/generated/schema/auth/ssoAuth.py +1 -1
  120. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  121. metadata/generated/schema/configuration/__init__.py +1 -1
  122. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  123. metadata/generated/schema/configuration/authConfig.py +1 -1
  124. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  125. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  126. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  127. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  128. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  129. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  130. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  131. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  132. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  133. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  134. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  135. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  136. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  137. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  138. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  139. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  140. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  141. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  143. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  144. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  145. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  146. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  147. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  148. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  149. metadata/generated/schema/dataInsight/__init__.py +1 -1
  150. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  151. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  152. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  153. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  154. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  155. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  156. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  157. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  158. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  159. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  160. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  161. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  162. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  163. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  164. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
  165. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  166. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  167. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  168. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  169. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  170. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  171. metadata/generated/schema/email/__init__.py +1 -1
  172. metadata/generated/schema/email/emailRequest.py +1 -1
  173. metadata/generated/schema/email/smtpSettings.py +3 -3
  174. metadata/generated/schema/entity/__init__.py +1 -1
  175. metadata/generated/schema/entity/applications/__init__.py +1 -1
  176. metadata/generated/schema/entity/applications/app.py +1 -1
  177. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  178. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  179. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  180. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  181. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  182. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  183. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  184. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  185. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  186. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  187. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  188. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  189. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  190. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  191. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  192. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  193. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  194. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  195. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
  196. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  197. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  198. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  199. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  200. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  201. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  202. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  203. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  204. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  205. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  206. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  207. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  208. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  209. metadata/generated/schema/entity/automations/__init__.py +1 -1
  210. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  211. metadata/generated/schema/entity/automations/workflow.py +1 -1
  212. metadata/generated/schema/entity/bot.py +1 -1
  213. metadata/generated/schema/entity/classification/__init__.py +1 -1
  214. metadata/generated/schema/entity/classification/classification.py +1 -1
  215. metadata/generated/schema/entity/classification/tag.py +1 -1
  216. metadata/generated/schema/entity/data/__init__.py +1 -1
  217. metadata/generated/schema/entity/data/chart.py +1 -1
  218. metadata/generated/schema/entity/data/container.py +1 -1
  219. metadata/generated/schema/entity/data/dashboard.py +1 -1
  220. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  221. metadata/generated/schema/entity/data/database.py +1 -1
  222. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  223. metadata/generated/schema/entity/data/glossary.py +1 -1
  224. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  225. metadata/generated/schema/entity/data/metrics.py +1 -1
  226. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  227. metadata/generated/schema/entity/data/pipeline.py +1 -1
  228. metadata/generated/schema/entity/data/query.py +1 -1
  229. metadata/generated/schema/entity/data/report.py +1 -1
  230. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  231. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  232. metadata/generated/schema/entity/data/table.py +6 -5
  233. metadata/generated/schema/entity/data/topic.py +1 -1
  234. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  235. metadata/generated/schema/entity/docStore/document.py +1 -1
  236. metadata/generated/schema/entity/domains/__init__.py +1 -1
  237. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  238. metadata/generated/schema/entity/domains/domain.py +1 -1
  239. metadata/generated/schema/entity/events/__init__.py +1 -1
  240. metadata/generated/schema/entity/events/webhook.py +1 -1
  241. metadata/generated/schema/entity/feed/__init__.py +1 -1
  242. metadata/generated/schema/entity/feed/assets.py +1 -1
  243. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  244. metadata/generated/schema/entity/feed/description.py +1 -1
  245. metadata/generated/schema/entity/feed/domain.py +1 -1
  246. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  247. metadata/generated/schema/entity/feed/owner.py +1 -1
  248. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  249. metadata/generated/schema/entity/feed/tag.py +1 -1
  250. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  251. metadata/generated/schema/entity/feed/thread.py +15 -5
  252. metadata/generated/schema/entity/policies/__init__.py +1 -1
  253. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  254. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  255. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  256. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  257. metadata/generated/schema/entity/policies/filters.py +1 -1
  258. metadata/generated/schema/entity/policies/policy.py +1 -1
  259. metadata/generated/schema/entity/services/__init__.py +1 -1
  260. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  261. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  262. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  263. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  264. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  265. metadata/generated/schema/entity/services/connections/connectionBasicType.py +5 -1
  266. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  267. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  268. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  269. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  270. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  271. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  272. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  273. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  274. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  275. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  276. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  277. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  278. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  279. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  280. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  281. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  282. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  283. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  284. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  285. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  286. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  287. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  288. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  289. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +4 -1
  290. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  291. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +4 -1
  292. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  293. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  294. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  295. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  296. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  297. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +4 -1
  300. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  301. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  302. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  303. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  304. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  306. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +2 -2
  307. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  308. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  309. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  310. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +4 -1
  314. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  315. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  324. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  325. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +4 -1
  326. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +4 -1
  327. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +4 -1
  328. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  329. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +4 -1
  330. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +4 -1
  332. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  334. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +4 -1
  340. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +7 -3
  342. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  345. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  351. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  352. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  358. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  363. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  378. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  380. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  381. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  382. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  386. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +5 -2
  390. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  391. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  392. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  393. metadata/generated/schema/entity/services/databaseService.py +1 -1
  394. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  395. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  396. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  397. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  398. metadata/generated/schema/entity/services/messagingService.py +1 -1
  399. metadata/generated/schema/entity/services/metadataService.py +1 -1
  400. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  401. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  402. metadata/generated/schema/entity/services/searchService.py +1 -1
  403. metadata/generated/schema/entity/services/serviceType.py +1 -1
  404. metadata/generated/schema/entity/services/storageService.py +1 -1
  405. metadata/generated/schema/entity/teams/__init__.py +1 -1
  406. metadata/generated/schema/entity/teams/persona.py +1 -1
  407. metadata/generated/schema/entity/teams/role.py +1 -1
  408. metadata/generated/schema/entity/teams/team.py +1 -1
  409. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  410. metadata/generated/schema/entity/teams/user.py +2 -2
  411. metadata/generated/schema/entity/type.py +1 -1
  412. metadata/generated/schema/entity/utils/__init__.py +1 -1
  413. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  414. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  415. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  416. metadata/generated/schema/events/__init__.py +1 -1
  417. metadata/generated/schema/events/alertMetrics.py +1 -1
  418. metadata/generated/schema/events/api/__init__.py +1 -1
  419. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  420. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  421. metadata/generated/schema/events/eventFilterRule.py +1 -1
  422. metadata/generated/schema/events/eventSubscription.py +1 -1
  423. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  424. metadata/generated/schema/events/failedEvent.py +1 -1
  425. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  426. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  427. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  428. metadata/generated/schema/metadataIngestion/application.py +1 -1
  429. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  430. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  431. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  432. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +6 -1
  433. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  434. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  435. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  436. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  437. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  438. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  439. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  440. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  441. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  442. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  443. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  444. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  445. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  446. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  447. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  448. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  449. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  450. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  451. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  452. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  453. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  454. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  455. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  456. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  457. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  458. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  459. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  460. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  461. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  462. metadata/generated/schema/monitoring/__init__.py +1 -1
  463. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  464. metadata/generated/schema/security/__init__.py +1 -1
  465. metadata/generated/schema/security/client/__init__.py +1 -1
  466. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  467. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  468. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  469. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  470. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  471. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  472. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  473. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  474. metadata/generated/schema/security/credentials/__init__.py +1 -1
  475. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  476. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  477. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  478. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  479. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  480. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  481. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  482. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  483. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  484. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  485. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  486. metadata/generated/schema/security/secrets/__init__.py +1 -1
  487. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  488. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  489. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  490. metadata/generated/schema/security/securityConfiguration.py +1 -1
  491. metadata/generated/schema/security/ssl/__init__.py +1 -1
  492. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  493. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  494. metadata/generated/schema/settings/__init__.py +1 -1
  495. metadata/generated/schema/settings/settings.py +1 -1
  496. metadata/generated/schema/system/__init__.py +1 -1
  497. metadata/generated/schema/system/entityError.py +1 -1
  498. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  499. metadata/generated/schema/system/indexingError.py +1 -1
  500. metadata/generated/schema/system/ui/__init__.py +1 -1
  501. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  502. metadata/generated/schema/system/ui/page.py +1 -1
  503. metadata/generated/schema/system/validationResponse.py +1 -1
  504. metadata/generated/schema/tests/__init__.py +1 -1
  505. metadata/generated/schema/tests/assigned.py +1 -1
  506. metadata/generated/schema/tests/basic.py +19 -19
  507. metadata/generated/schema/tests/customMetric.py +1 -1
  508. metadata/generated/schema/tests/resolved.py +1 -1
  509. metadata/generated/schema/tests/testCase.py +2 -2
  510. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  511. metadata/generated/schema/tests/testDefinition.py +2 -2
  512. metadata/generated/schema/tests/testSuite.py +1 -1
  513. metadata/generated/schema/type/__init__.py +1 -1
  514. metadata/generated/schema/type/auditLog.py +1 -1
  515. metadata/generated/schema/type/basic.py +7 -1
  516. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  517. metadata/generated/schema/type/changeEvent.py +1 -1
  518. metadata/generated/schema/type/changeEventType.py +1 -1
  519. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  520. metadata/generated/schema/type/csvDocumentation.py +1 -1
  521. metadata/generated/schema/type/csvErrorType.py +1 -1
  522. metadata/generated/schema/type/csvFile.py +1 -1
  523. metadata/generated/schema/type/csvImportResult.py +1 -1
  524. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  525. metadata/generated/schema/type/customProperties/complexTypes.py +9 -10
  526. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  527. metadata/generated/schema/type/customProperty.py +1 -1
  528. metadata/generated/schema/type/dailyCount.py +1 -1
  529. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  530. metadata/generated/schema/type/entityHierarchy.py +1 -1
  531. metadata/generated/schema/type/entityHistory.py +1 -1
  532. metadata/generated/schema/type/entityLineage.py +1 -1
  533. metadata/generated/schema/type/entityReference.py +1 -1
  534. metadata/generated/schema/type/entityReferenceList.py +1 -1
  535. metadata/generated/schema/type/entityRelationship.py +1 -1
  536. metadata/generated/schema/type/entityUsage.py +1 -1
  537. metadata/generated/schema/type/filterPattern.py +1 -1
  538. metadata/generated/schema/type/function.py +1 -1
  539. metadata/generated/schema/type/include.py +1 -1
  540. metadata/generated/schema/type/jdbcConnection.py +1 -1
  541. metadata/generated/schema/type/lifeCycle.py +1 -1
  542. metadata/generated/schema/type/paging.py +1 -1
  543. metadata/generated/schema/type/profile.py +1 -1
  544. metadata/generated/schema/type/queryParserData.py +1 -1
  545. metadata/generated/schema/type/reaction.py +1 -1
  546. metadata/generated/schema/type/schedule.py +1 -1
  547. metadata/generated/schema/type/schema.py +1 -1
  548. metadata/generated/schema/type/tableQuery.py +1 -1
  549. metadata/generated/schema/type/tableUsageCount.py +1 -1
  550. metadata/generated/schema/type/tagLabel.py +1 -1
  551. metadata/generated/schema/type/usageDetails.py +1 -1
  552. metadata/generated/schema/type/usageRequest.py +1 -1
  553. metadata/generated/schema/type/votes.py +1 -1
  554. metadata/ingestion/models/custom_properties.py +2 -0
  555. metadata/ingestion/models/patch_request.py +1 -1
  556. metadata/ingestion/ometa/mixins/patch_mixin.py +4 -2
  557. metadata/ingestion/ometa/mixins/server_mixin.py +9 -12
  558. metadata/ingestion/ometa/mixins/user_mixin.py +16 -4
  559. metadata/ingestion/processor/query_parser.py +29 -25
  560. metadata/ingestion/source/dashboard/powerbi/metadata.py +27 -2
  561. metadata/ingestion/source/database/athena/client.py +1 -1
  562. metadata/ingestion/source/database/athena/lineage.py +2 -0
  563. metadata/ingestion/source/database/athena/models.py +1 -1
  564. metadata/ingestion/source/database/athena/query_parser.py +2 -0
  565. metadata/ingestion/source/database/athena/usage.py +2 -0
  566. metadata/ingestion/source/database/bigquery/metadata.py +28 -9
  567. metadata/ingestion/source/database/clickhouse/metadata.py +24 -16
  568. metadata/ingestion/source/database/common_db_source.py +25 -19
  569. metadata/ingestion/source/database/database_service.py +3 -1
  570. metadata/ingestion/source/database/databricks/metadata.py +12 -18
  571. metadata/ingestion/source/database/databricks/queries.py +1 -4
  572. metadata/ingestion/source/database/dbt/metadata.py +8 -14
  573. metadata/ingestion/source/database/deltalake/connection.py +2 -2
  574. metadata/ingestion/source/database/deltalake/metadata.py +1 -1
  575. metadata/ingestion/source/database/hive/metadata.py +23 -0
  576. metadata/ingestion/source/database/mssql/metadata.py +6 -0
  577. metadata/ingestion/source/database/mysql/metadata.py +5 -0
  578. metadata/ingestion/source/database/oracle/metadata.py +26 -12
  579. metadata/ingestion/source/database/postgres/metadata.py +4 -0
  580. metadata/ingestion/source/database/redshift/metadata.py +8 -1
  581. metadata/ingestion/source/database/sample_data.py +1 -3
  582. metadata/ingestion/source/database/snowflake/metadata.py +4 -1
  583. metadata/ingestion/source/database/snowflake/queries.py +4 -0
  584. metadata/ingestion/source/database/snowflake/utils.py +20 -0
  585. metadata/ingestion/source/database/sqlalchemy_source.py +2 -2
  586. metadata/ingestion/source/database/trino/connection.py +13 -0
  587. metadata/ingestion/source/messaging/common_broker_source.py +42 -3
  588. metadata/ingestion/source/pipeline/dagster/queries.py +53 -82
  589. metadata/ingestion/source/pipeline/kafkaconnect/__init__.py +0 -0
  590. metadata/ingestion/source/pipeline/kafkaconnect/client.py +278 -0
  591. metadata/ingestion/source/pipeline/kafkaconnect/connection.py +58 -0
  592. metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +319 -0
  593. metadata/ingestion/source/pipeline/kafkaconnect/models.py +62 -0
  594. metadata/ingestion/source/storage/s3/connection.py +10 -1
  595. metadata/ingestion/source/storage/s3/metadata.py +12 -23
  596. metadata/ingestion/source/storage/s3/models.py +4 -4
  597. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +1 -3
  598. metadata/profiler/processor/metric_filter.py +3 -1
  599. metadata/utils/elasticsearch.py +8 -0
  600. metadata/utils/messaging_utils.py +43 -0
  601. metadata/utils/sqlalchemy_utils.py +45 -1
  602. metadata/utils/tag_utils.py +2 -2
  603. {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/METADATA +288 -279
  604. {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/RECORD +608 -605
  605. metadata/applications/auto_tagger.py +0 -212
  606. metadata/cli/backup.py +0 -209
  607. metadata/cli/db_dump.py +0 -239
  608. metadata/cli/utils.py +0 -56
  609. {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/LICENSE +0 -0
  610. {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/WHEEL +0 -0
  611. {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/entry_points.txt +0 -0
  612. {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,278 @@
1
+ # Copyright 2021 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
+ Client to interact with Kafka Connect REST APIs
13
+ """
14
+
15
+ import traceback
16
+ from typing import List, Optional
17
+
18
+ from kafka_connect import KafkaConnect
19
+
20
+ from metadata.generated.schema.entity.services.connections.pipeline.kafkaConnectConnection import (
21
+ KafkaConnectConnection,
22
+ )
23
+ from metadata.ingestion.source.pipeline.kafkaconnect.models import (
24
+ KafkaConnectDatasetDetails,
25
+ KafkaConnectPipelineDetails,
26
+ KafkaConnectTasks,
27
+ KafkaConnectTopics,
28
+ )
29
+ from metadata.utils.helpers import clean_uri
30
+ from metadata.utils.logger import ometa_logger
31
+
32
+ logger = ometa_logger()
33
+
34
+ SUPPORTED_DATASETS = {
35
+ "table": [
36
+ "table",
37
+ "collection",
38
+ "snowflake.schema.name",
39
+ "table.whitelist",
40
+ "fields.whitelist",
41
+ ],
42
+ "database": ["database", "db.name", "snowflake.database.name"],
43
+ "container_name": ["s3.bucket.name"],
44
+ }
45
+
46
+
47
+ class KafkaConnectClient:
48
+ """
49
+ Wrapper on top of KafkaConnect REST API
50
+ """
51
+
52
+ def __init__(self, config: KafkaConnectConnection):
53
+ url = clean_uri(config.hostPort)
54
+ auth = None
55
+ ssl_verify = config.verifySSL
56
+ if config.KafkaConnectConfig:
57
+ auth = f"{config.KafkaConnectConfig.username}:{config.KafkaConnectConfig.password}"
58
+ self.client = KafkaConnect(url=url, auth=auth, ssl_verify=ssl_verify)
59
+
60
+ def get_cluster_info(self) -> Optional[dict]:
61
+ """
62
+ Get the version and other details of the Kafka Connect cluster.
63
+ """
64
+ try:
65
+ result = self.client.get_cluster_info()
66
+ return result
67
+
68
+ except Exception as exc:
69
+ logger.debug(traceback.format_exc())
70
+ logger.error(f"Unable to get cluster info :{exc}")
71
+
72
+ return None
73
+
74
+ def get_connectors(
75
+ self,
76
+ expand: str = None,
77
+ pattern: str = None,
78
+ state: str = None,
79
+ ) -> Optional[dict]:
80
+ """
81
+ Get the list of connectors.
82
+ Args:
83
+ expand (str): Optional parameter that retrieves additional information about the connectors.
84
+ Valid values are "status" and "info".
85
+ pattern (str): Only list connectors that match the regex pattern.
86
+ state (str): Only list connectors that match the state.
87
+ """
88
+
89
+ try:
90
+ result = self.client.list_connectors(
91
+ expand=expand, pattern=pattern, state=state
92
+ )
93
+ return result
94
+ except Exception as exc:
95
+ logger.debug(traceback.format_exc())
96
+ logger.error(f"Unable to get connectors list {exc}")
97
+
98
+ return None
99
+
100
+ def get_connector_plugins(self) -> Optional[dict]:
101
+ """
102
+ Get the list of connector plugins.
103
+ """
104
+ try:
105
+ result = self.client.list_connector_plugins()
106
+ return result
107
+ except Exception as exc:
108
+ logger.debug(traceback.format_exc())
109
+ logger.warning(f"Unable to get connector plugins {exc}")
110
+
111
+ return None
112
+
113
+ def get_connector_config(self, connector: str) -> Optional[dict]:
114
+ """
115
+ Get the details of a single connector.
116
+ Args:
117
+ connector (str): The name of the connector.
118
+ """
119
+ try:
120
+ result = self.client.get_connector(connector=connector)
121
+ if result:
122
+ return result.get("config")
123
+ except Exception as exc:
124
+ logger.debug(traceback.format_exc())
125
+ logger.error(f"Unable to get connector configuration details {exc}")
126
+
127
+ return None
128
+
129
+ def get_connector_dataset_info(self, connector: str) -> Optional[dict]:
130
+ """
131
+ Get the details of dataset of connector if there is any.
132
+ Checks in the connector configurations for dataset fields
133
+ if any related field is found returns the result
134
+ Args:
135
+ connector (str): The name of the connector.
136
+ Returns:
137
+ Optional[Dict]: A dictionary containing dataset information
138
+ (type, table, database, or bucket_name)
139
+ if a dataset is found, or None if the connector
140
+ is not found, has no dataset, or an error occurs.
141
+ """
142
+ try:
143
+ conn_config = self.get_connector_config(connector=connector)
144
+
145
+ if not conn_config:
146
+ return None
147
+
148
+ result = {}
149
+ for dataset in SUPPORTED_DATASETS or []:
150
+ for key in SUPPORTED_DATASETS[dataset] or []:
151
+ if conn_config.get(key):
152
+ result[dataset] = conn_config[key]
153
+ return KafkaConnectDatasetDetails(**result)
154
+
155
+ except Exception as exc:
156
+ logger.debug(traceback.format_exc())
157
+ logger.warning(f"Unable to get connector dataset details {exc}")
158
+
159
+ return None
160
+
161
+ def get_connector_tasks(self, connector: str) -> Optional[List[KafkaConnectTasks]]:
162
+ """
163
+ Get the list of tasks for a connector.
164
+ Args:
165
+ connector (str): The name of the connector.
166
+ Returns:
167
+ Optional[List[KafkaConnectTasks]]: A list of KafkaConnectTasks objects
168
+ representing the connector's tasks,
169
+ or None if the connector is not found
170
+ or an error occurs.
171
+ """
172
+ try:
173
+ result = self.client.get_connector_status(connector=connector)
174
+ tasks = [KafkaConnectTasks(**task) for task in result.get("tasks") or []]
175
+ return tasks
176
+ except Exception as exc:
177
+ logger.debug(traceback.format_exc())
178
+ logger.error(f"Unable to get connector tasks list {exc}")
179
+
180
+ return None
181
+
182
+ def get_connector_task_status(self, connector: str, task_id: int) -> Optional[dict]:
183
+ """
184
+ Get the status of a specific task for a connector.
185
+ Args:
186
+ connector (str): The name of the connector.
187
+ task_id (int): The ID of the task.
188
+ Returns:
189
+ Optional[Dict]: A dictionary containing the task status information,
190
+ or None if the connector or task is not found
191
+ or an error occurs.
192
+ """
193
+ try:
194
+ result = self.client.get_connector_task_status(
195
+ connector=connector, task_id=task_id
196
+ )
197
+ return result
198
+ except Exception as exc:
199
+ logger.debug(traceback.format_exc())
200
+ logger.error(f"Unable to get connector tasks status {exc}")
201
+
202
+ return None
203
+
204
+ def get_connector_topics(
205
+ self, connector: str
206
+ ) -> Optional[List[KafkaConnectTopics]]:
207
+ """
208
+ Get the list of topics for a connector.
209
+
210
+ Args:
211
+ connector (str): The name of the connector.
212
+
213
+ Returns:
214
+ Optional[List[KafkaConnectTopics]]: A list of KafkaConnectTopics objects
215
+ representing the connector's topics,
216
+ or None if the connector is not found
217
+ or an error occurs.
218
+ """
219
+ try:
220
+ result = self.client.list_connector_topics(connector=connector).get(
221
+ connector
222
+ )
223
+ if result:
224
+ topics = [
225
+ KafkaConnectTopics(name=topic)
226
+ for topic in result.get("topics") or []
227
+ ]
228
+ return topics
229
+ except Exception as exc:
230
+ logger.debug(traceback.format_exc())
231
+ logger.warning(f"Unable to get connector Topics {exc}")
232
+
233
+ return None
234
+
235
+ def get_connector_state(self, connector: str) -> Optional[str]:
236
+ """
237
+ Get the status of a single connector.
238
+ Args:
239
+ connector (str): The name of the connector.
240
+ """
241
+ try:
242
+ result = self.client.get_connector_status(connector=connector)
243
+ if result.get("connector"):
244
+ return result["connector"].get("state")
245
+ except Exception as exc:
246
+ logger.debug(traceback.format_exc())
247
+ logger.warning(f"Unable to get connector state due to {exc}")
248
+
249
+ return None
250
+
251
+ def get_connector_list(self) -> Optional[List[KafkaConnectPipelineDetails]]:
252
+ """
253
+ Get the information of a single connector.
254
+ Args:
255
+ connector (str): The name of the connector.
256
+ Returns:
257
+ Optional[KafkaConnectPipelineDetails]: A KafkaConnectPipelineDetails
258
+ object containing connector information,
259
+ or None if the connector is not found
260
+ or an error occurs.
261
+ """
262
+ try:
263
+ connectors = []
264
+ for connector in self.get_connectors() or []:
265
+ result = self.client.get_connector_status(connector=connector)
266
+ connector_details = KafkaConnectPipelineDetails(**result)
267
+ connector_details.status = self.get_connector_state(connector=connector)
268
+ connector_details.tasks = self.get_connector_tasks(connector=connector)
269
+ connector_details.topics = self.get_connector_topics(
270
+ connector=connector
271
+ )
272
+ connectors.append(connector_details)
273
+ return connectors
274
+ except Exception as exc:
275
+ logger.debug(traceback.format_exc())
276
+ logger.error(f"Unable to get connector information {exc}")
277
+
278
+ return None
@@ -0,0 +1,58 @@
1
+ # Copyright 2021 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
+ """
13
+ Source connection handler
14
+ """
15
+
16
+ from typing import Optional
17
+
18
+ from metadata.generated.schema.entity.automations.workflow import (
19
+ Workflow as AutomationWorkflow,
20
+ )
21
+ from metadata.generated.schema.entity.services.connections.pipeline.kafkaConnectConnection import (
22
+ KafkaConnectConnection,
23
+ )
24
+ from metadata.ingestion.connections.test_connections import test_connection_steps
25
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
26
+ from metadata.ingestion.source.pipeline.kafkaconnect.client import KafkaConnectClient
27
+
28
+
29
+ def get_connection(connection: KafkaConnectConnection) -> KafkaConnectClient:
30
+ """
31
+ Create connection
32
+ """
33
+ return KafkaConnectClient(connection)
34
+
35
+
36
+ def test_connection(
37
+ metadata: OpenMetadata,
38
+ client: KafkaConnectClient,
39
+ service_connection: KafkaConnectConnection,
40
+ automation_workflow: Optional[AutomationWorkflow] = None,
41
+ ) -> None:
42
+ """
43
+ Test connection. This can be executed either as part
44
+ of a metadata workflow or during an Automation Workflow
45
+ """
46
+
47
+ test_fn = {
48
+ "GetClusterInfo": client.get_cluster_info,
49
+ "GetPipelines": client.get_connectors,
50
+ "GetPlugins": client.get_connector_plugins,
51
+ }
52
+
53
+ test_connection_steps(
54
+ metadata=metadata,
55
+ test_fn=test_fn,
56
+ service_type=service_connection.type.value,
57
+ automation_workflow=automation_workflow,
58
+ )
@@ -0,0 +1,319 @@
1
+ # Copyright 2021 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
+ KafkaConnect source to extract metadata from OM UI
13
+ """
14
+ import traceback
15
+ from datetime import datetime
16
+ from typing import Iterable, Optional
17
+
18
+ from metadata.generated.schema.api.data.createPipeline import CreatePipelineRequest
19
+ from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
20
+ from metadata.generated.schema.entity.data.container import Container
21
+ from metadata.generated.schema.entity.data.pipeline import (
22
+ Pipeline,
23
+ PipelineStatus,
24
+ StatusType,
25
+ Task,
26
+ TaskStatus,
27
+ )
28
+ from metadata.generated.schema.entity.data.table import Table
29
+ from metadata.generated.schema.entity.data.topic import Topic
30
+ from metadata.generated.schema.entity.services.connections.pipeline.kafkaConnectConnection import (
31
+ KafkaConnectConnection,
32
+ )
33
+ from metadata.generated.schema.entity.services.ingestionPipelines.status import (
34
+ StackTraceError,
35
+ )
36
+ from metadata.generated.schema.metadataIngestion.workflow import (
37
+ Source as WorkflowSource,
38
+ )
39
+ from metadata.generated.schema.type.entityLineage import EntitiesEdge, LineageDetails
40
+ from metadata.generated.schema.type.entityLineage import Source as LineageSource
41
+ from metadata.generated.schema.type.entityReference import EntityReference
42
+ from metadata.ingestion.api.models import Either
43
+ from metadata.ingestion.api.steps import InvalidSourceException
44
+ from metadata.ingestion.models.pipeline_status import OMetaPipelineStatus
45
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata, T
46
+ from metadata.ingestion.source.pipeline.kafkaconnect.models import (
47
+ KafkaConnectPipelineDetails,
48
+ )
49
+ from metadata.ingestion.source.pipeline.pipeline_service import PipelineServiceSource
50
+ from metadata.utils import fqn
51
+ from metadata.utils.constants import ENTITY_REFERENCE_TYPE_MAP
52
+ from metadata.utils.helpers import clean_uri, datetime_to_ts
53
+ from metadata.utils.logger import ingestion_logger
54
+
55
+ logger = ingestion_logger()
56
+
57
+ STATUS_MAP = {
58
+ "RUNNING": StatusType.Successful.value,
59
+ "FAILED": StatusType.Failed.value,
60
+ "PAUSED": StatusType.Pending.value,
61
+ "UNASSIGNED": StatusType.Pending.value,
62
+ }
63
+
64
+
65
+ class KafkaconnectSource(PipelineServiceSource):
66
+ """
67
+ Implements the necessary methods ot extract
68
+ Pipeline metadata from Kafka Connect
69
+ """
70
+
71
+ @classmethod
72
+ def create(
73
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
74
+ ):
75
+ config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
76
+ connection: KafkaConnectConnection = config.serviceConnection.__root__.config
77
+ if not isinstance(connection, KafkaConnectConnection):
78
+ raise InvalidSourceException(
79
+ f"Expected KafkaConnectConnection, but got {connection}"
80
+ )
81
+ return cls(config, metadata)
82
+
83
+ def yield_pipeline(
84
+ self, pipeline_details: KafkaConnectPipelineDetails
85
+ ) -> Iterable[Either[CreatePipelineRequest]]:
86
+ """
87
+ Method to Get Pipeline Entity
88
+ """
89
+ try:
90
+ connection_url = f"{clean_uri(self.service_connection.hostPort)}"
91
+
92
+ pipeline_request = CreatePipelineRequest(
93
+ name=pipeline_details.name,
94
+ sourceUrl=connection_url,
95
+ tasks=[
96
+ Task(
97
+ name=task.id,
98
+ )
99
+ for task in pipeline_details.tasks or []
100
+ ],
101
+ service=self.context.get().pipeline_service,
102
+ )
103
+ yield Either(right=pipeline_request)
104
+ self.register_record(pipeline_request=pipeline_request)
105
+ except Exception as exc:
106
+ yield Either(
107
+ left=StackTraceError(
108
+ name=pipeline_details.name,
109
+ error=f"Wild error ingesting pipeline {pipeline_details} - {exc}",
110
+ stackTrace=traceback.format_exc(),
111
+ )
112
+ )
113
+
114
+ def get_dataset_entity(
115
+ self, pipeline_details: KafkaConnectPipelineDetails
116
+ ) -> Optional[T]:
117
+ """
118
+ Get lineage dataset entity
119
+ """
120
+ try:
121
+ dataset_details = self.client.get_connector_dataset_info(
122
+ connector=pipeline_details.name
123
+ )
124
+ if dataset_details:
125
+ if (
126
+ isinstance(dataset_details.dataset_type, type(Table))
127
+ and self.source_config.lineageInformation.dbServiceNames
128
+ ):
129
+ for dbservicename in (
130
+ self.source_config.lineageInformation.dbServiceNames or []
131
+ ):
132
+ dataset_entity = self.metadata.get_by_name(
133
+ entity=dataset_details.dataset_type,
134
+ fqn=fqn.build(
135
+ metadata=self.metadata,
136
+ entity_type=dataset_details.dataset_type,
137
+ table_name=dataset_details.table,
138
+ database_name=None,
139
+ schema_name=dataset_details.database,
140
+ service_name=dbservicename,
141
+ ),
142
+ )
143
+
144
+ if dataset_entity:
145
+ return dataset_entity
146
+
147
+ if (
148
+ isinstance(dataset_details.dataset_type, type(Container))
149
+ and self.source_config.lineageInformation.storageServiceNames
150
+ ):
151
+ for storageservicename in (
152
+ self.source_config.lineageInformation.storageServiceNames or []
153
+ ):
154
+ dataset_entity = self.metadata.get_by_name(
155
+ entity=dataset_details.dataset_type,
156
+ fqn=fqn.build(
157
+ metadata=self.metadata,
158
+ entity_type=dataset_details.dataset_type,
159
+ container_name=dataset_details.container_name,
160
+ service_name=storageservicename,
161
+ ),
162
+ )
163
+
164
+ if dataset_entity:
165
+ return dataset_entity
166
+
167
+ except Exception as exc:
168
+ logger.debug(traceback.format_exc())
169
+ logger.warning(f"Unable to get dataset entity {exc}")
170
+
171
+ return None
172
+
173
+ def yield_pipeline_lineage_details(
174
+ self, pipeline_details: KafkaConnectPipelineDetails
175
+ ) -> Iterable[Either[AddLineageRequest]]:
176
+ """
177
+ Get lineage between pipeline and data sources
178
+ """
179
+ try:
180
+ if not self.service_connection.messagingServiceName:
181
+ logger.debug("Kafka messagingServiceName not found")
182
+ return None
183
+
184
+ pipeline_fqn = fqn.build(
185
+ metadata=self.metadata,
186
+ entity_type=Pipeline,
187
+ service_name=self.context.get().pipeline_service,
188
+ pipeline_name=self.context.get().pipeline,
189
+ )
190
+
191
+ pipeline_entity = self.metadata.get_by_name(
192
+ entity=Pipeline, fqn=pipeline_fqn
193
+ )
194
+
195
+ lineage_details = LineageDetails(
196
+ pipeline=EntityReference(
197
+ id=pipeline_entity.id.__root__, type="pipeline"
198
+ ),
199
+ source=LineageSource.PipelineLineage,
200
+ )
201
+
202
+ dataset_entity = self.get_dataset_entity(pipeline_details=pipeline_details)
203
+
204
+ for topic in pipeline_details.topics or []:
205
+
206
+ topic_fqn = fqn.build(
207
+ metadata=self.metadata,
208
+ entity_type=Topic,
209
+ service_name=self.service_connection.messagingServiceName,
210
+ topic_name=topic.name,
211
+ )
212
+
213
+ topic_entity = self.metadata.get_by_name(entity=Topic, fqn=topic_fqn)
214
+
215
+ if topic_entity is None or dataset_entity is None:
216
+ continue
217
+
218
+ if pipeline_details.conn_type.lower() == "sink":
219
+ from_entity, to_entity = topic_entity, dataset_entity
220
+ else:
221
+ from_entity, to_entity = dataset_entity, topic_entity
222
+
223
+ yield Either(
224
+ right=AddLineageRequest(
225
+ edge=EntitiesEdge(
226
+ fromEntity=EntityReference(
227
+ id=from_entity.id,
228
+ type=ENTITY_REFERENCE_TYPE_MAP[
229
+ type(from_entity).__name__
230
+ ],
231
+ ),
232
+ toEntity=EntityReference(
233
+ id=to_entity.id,
234
+ type=ENTITY_REFERENCE_TYPE_MAP[
235
+ type(to_entity).__name__
236
+ ],
237
+ ),
238
+ lineageDetails=lineage_details,
239
+ )
240
+ )
241
+ )
242
+ except Exception as exc:
243
+ yield Either(
244
+ left=StackTraceError(
245
+ name=pipeline_details.name,
246
+ error=f"Wild error ingesting pipeline lineage {pipeline_details} - {exc}",
247
+ stackTrace=traceback.format_exc(),
248
+ )
249
+ )
250
+
251
+ return None
252
+
253
+ def get_pipelines_list(self) -> Iterable[KafkaConnectPipelineDetails]:
254
+ """
255
+ Get List of all pipelines
256
+ """
257
+ try:
258
+ yield from self.client.get_connector_list()
259
+ except Exception as exc:
260
+ logger.debug(traceback.format_exc())
261
+ logger.error(f"Failed to get pipeline list due to : {exc}")
262
+
263
+ def get_pipeline_name(self, pipeline_details: KafkaConnectPipelineDetails) -> str:
264
+ """
265
+ Get Pipeline Name
266
+ """
267
+ try:
268
+ return pipeline_details.name
269
+ except Exception as exc:
270
+ logger.debug(traceback.format_exc())
271
+ logger.error(f"Failed to get pipeline name to : {exc}")
272
+
273
+ return None
274
+
275
+ def yield_pipeline_status(
276
+ self, pipeline_details: KafkaConnectPipelineDetails
277
+ ) -> Iterable[Either[OMetaPipelineStatus]]:
278
+ """
279
+ Get Pipeline Status
280
+ """
281
+ try:
282
+ task_status = [
283
+ TaskStatus(
284
+ name=task.id,
285
+ executionStatus=STATUS_MAP.get(task.state, StatusType.Pending),
286
+ )
287
+ for task in pipeline_details.tasks or []
288
+ ]
289
+
290
+ pipeline_status = PipelineStatus(
291
+ executionStatus=STATUS_MAP.get(
292
+ pipeline_details.status, StatusType.Pending
293
+ ),
294
+ taskStatus=task_status,
295
+ timestamp=datetime_to_ts(datetime.now())
296
+ # Kafka connect doesn't provide any details with exec time
297
+ )
298
+
299
+ pipeline_fqn = fqn.build(
300
+ metadata=self.metadata,
301
+ entity_type=Pipeline,
302
+ service_name=self.context.get().pipeline_service,
303
+ pipeline_name=self.context.get().pipeline,
304
+ )
305
+ yield Either(
306
+ right=OMetaPipelineStatus(
307
+ pipeline_fqn=pipeline_fqn,
308
+ pipeline_status=pipeline_status,
309
+ )
310
+ )
311
+
312
+ except Exception as exc:
313
+ yield Either(
314
+ left=StackTraceError(
315
+ name=pipeline_details.name,
316
+ error=f"Wild error ingesting pipeline status {pipeline_details} - {exc}",
317
+ stackTrace=traceback.format_exc(),
318
+ )
319
+ )