openmetadata-ingestion 1.4.7.2__py3-none-any.whl → 1.5.0.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (1085) hide show
  1. _openmetadata_testutils/data/dvdrental.zip +0 -0
  2. _openmetadata_testutils/helpers/assumption.py +118 -0
  3. _openmetadata_testutils/helpers/docker.py +38 -0
  4. _openmetadata_testutils/helpers/markers.py +5 -0
  5. _openmetadata_testutils/kafka/load_csv_data.py +133 -0
  6. _openmetadata_testutils/kafka/schema_registry_container.py +31 -0
  7. _openmetadata_testutils/ometa.py +23 -0
  8. _openmetadata_testutils/postgres/conftest.py +75 -0
  9. _openmetadata_testutils/pydantic/test_utils.py +79 -0
  10. airflow_provider_openmetadata/lineage/callback.py +3 -3
  11. airflow_provider_openmetadata/lineage/config/loader.py +1 -1
  12. airflow_provider_openmetadata/lineage/runner.py +5 -5
  13. airflow_provider_openmetadata/lineage/status.py +2 -2
  14. metadata/automations/runner.py +1 -1
  15. metadata/cli/app.py +1 -3
  16. metadata/cli/dataquality.py +8 -8
  17. metadata/cli/ingest.py +8 -8
  18. metadata/cli/lineage.py +10 -5
  19. metadata/cli/profile.py +8 -8
  20. metadata/cli/usage.py +6 -8
  21. metadata/clients/aws_client.py +4 -4
  22. metadata/clients/azure_client.py +1 -1
  23. metadata/clients/domo_client.py +12 -18
  24. metadata/cmd.py +16 -20
  25. metadata/config/common.py +3 -4
  26. metadata/data_quality/api/models.py +2 -2
  27. metadata/data_quality/builders/i_validator_builder.py +100 -0
  28. metadata/{data_insight/producer/producer_interface.py → data_quality/builders/pandas_validator_builder.py} +12 -12
  29. metadata/data_quality/{validations/validator.py → builders/sqa_validator_builder.py} +7 -8
  30. metadata/data_quality/interface/pandas/pandas_test_suite_interface.py +9 -42
  31. metadata/data_quality/interface/sqlalchemy/sqa_test_suite_interface.py +7 -40
  32. metadata/data_quality/interface/test_suite_interface.py +84 -2
  33. metadata/data_quality/processor/test_case_runner.py +76 -40
  34. metadata/data_quality/runner/base_test_suite_source.py +1 -1
  35. metadata/data_quality/runner/core.py +2 -2
  36. metadata/data_quality/source/test_suite.py +17 -15
  37. metadata/data_quality/validations/base_test_handler.py +25 -5
  38. metadata/data_quality/validations/column/base/columnValueLengthsToBeBetween.py +2 -0
  39. metadata/data_quality/validations/column/base/columnValueMaxToBeBetween.py +2 -0
  40. metadata/data_quality/validations/column/base/columnValueMeanToBeBetween.py +2 -0
  41. metadata/data_quality/validations/column/base/columnValueMedianToBeBetween.py +2 -0
  42. metadata/data_quality/validations/column/base/columnValueMinToBeBetween.py +2 -0
  43. metadata/data_quality/validations/column/base/columnValueStdDevToBeBetween.py +2 -0
  44. metadata/data_quality/validations/column/base/columnValuesSumToBeBetween.py +2 -0
  45. metadata/data_quality/validations/column/base/columnValuesToBeBetween.py +24 -14
  46. metadata/data_quality/validations/column/base/columnValuesToBeInSet.py +13 -1
  47. metadata/data_quality/validations/column/base/columnValuesToBeNotInSet.py +1 -1
  48. metadata/data_quality/validations/column/pandas/columnValueLengthsToBeBetween.py +1 -1
  49. metadata/data_quality/validations/column/pandas/columnValueMaxToBeBetween.py +1 -1
  50. metadata/data_quality/validations/column/pandas/columnValueMeanToBeBetween.py +1 -1
  51. metadata/data_quality/validations/column/pandas/columnValueMedianToBeBetween.py +1 -1
  52. metadata/data_quality/validations/column/pandas/columnValueMinToBeBetween.py +1 -1
  53. metadata/data_quality/validations/column/pandas/columnValueStdDevToBeBetween.py +1 -1
  54. metadata/data_quality/validations/column/pandas/columnValuesMissingCount.py +1 -1
  55. metadata/data_quality/validations/column/pandas/columnValuesSumToBeBetween.py +1 -1
  56. metadata/data_quality/validations/column/pandas/columnValuesToBeBetween.py +1 -1
  57. metadata/data_quality/validations/column/pandas/columnValuesToBeInSet.py +1 -1
  58. metadata/data_quality/validations/column/pandas/columnValuesToBeNotInSet.py +1 -1
  59. metadata/data_quality/validations/column/pandas/columnValuesToBeNotNull.py +1 -1
  60. metadata/data_quality/validations/column/pandas/columnValuesToBeUnique.py +1 -1
  61. metadata/data_quality/validations/column/pandas/columnValuesToMatchRegex.py +1 -1
  62. metadata/data_quality/validations/column/pandas/columnValuesToNotMatchRegex.py +1 -1
  63. metadata/data_quality/validations/column/sqlalchemy/columnValueLengthsToBeBetween.py +8 -7
  64. metadata/data_quality/validations/column/sqlalchemy/columnValueMaxToBeBetween.py +1 -1
  65. metadata/data_quality/validations/column/sqlalchemy/columnValueMeanToBeBetween.py +1 -1
  66. metadata/data_quality/validations/column/sqlalchemy/columnValueMedianToBeBetween.py +1 -1
  67. metadata/data_quality/validations/column/sqlalchemy/columnValueMinToBeBetween.py +1 -1
  68. metadata/data_quality/validations/column/sqlalchemy/columnValueStdDevToBeBetween.py +1 -1
  69. metadata/data_quality/validations/column/sqlalchemy/columnValuesMissingCount.py +1 -1
  70. metadata/data_quality/validations/column/sqlalchemy/columnValuesSumToBeBetween.py +1 -1
  71. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeBetween.py +8 -3
  72. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeInSet.py +1 -1
  73. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeNotInSet.py +1 -1
  74. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeNotNull.py +1 -1
  75. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeUnique.py +1 -1
  76. metadata/data_quality/validations/column/sqlalchemy/columnValuesToMatchRegex.py +1 -1
  77. metadata/data_quality/validations/column/sqlalchemy/columnValuesToNotMatchRegex.py +1 -1
  78. metadata/data_quality/validations/models.py +21 -0
  79. metadata/data_quality/validations/runtime_param_setter/param_setter.py +42 -0
  80. metadata/data_quality/validations/runtime_param_setter/param_setter_factory.py +54 -0
  81. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +190 -0
  82. metadata/data_quality/validations/table/base/tableRowCountToBeBetween.py +4 -13
  83. metadata/data_quality/validations/table/pandas/tableRowInsertedCountToBeBetween.py +2 -2
  84. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +434 -0
  85. metadata/examples/workflows/alationsink.yaml +34 -0
  86. metadata/examples/workflows/bigquery_profiler.yaml +1 -1
  87. metadata/examples/workflows/dbtcloud.yaml +26 -0
  88. metadata/examples/workflows/deltalake.yaml +6 -5
  89. metadata/examples/workflows/flink.yaml +33 -0
  90. metadata/examples/workflows/saperp.yaml +24 -0
  91. metadata/examples/workflows/synapse.yaml +24 -0
  92. metadata/generated/antlr/EntityLinkLexer.py +380 -352
  93. metadata/generated/schema/analytics/__init__.py +1 -1
  94. metadata/generated/schema/analytics/basic.py +19 -16
  95. metadata/generated/schema/analytics/reportData.py +26 -18
  96. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  97. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +64 -43
  98. metadata/generated/schema/analytics/reportDataType/entityReportData.py +35 -24
  99. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +18 -11
  100. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +24 -16
  101. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +23 -12
  102. metadata/generated/schema/analytics/webAnalyticEvent.py +75 -42
  103. metadata/generated/schema/analytics/webAnalyticEventData.py +17 -12
  104. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  105. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +24 -16
  106. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +31 -21
  107. metadata/generated/schema/api/__init__.py +1 -1
  108. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +28 -18
  109. metadata/generated/schema/api/analytics/__init__.py +1 -1
  110. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +33 -20
  111. metadata/generated/schema/api/automations/__init__.py +1 -1
  112. metadata/generated/schema/api/automations/createWorkflow.py +46 -27
  113. metadata/generated/schema/api/bulkAssets.py +14 -8
  114. metadata/generated/schema/api/classification/__init__.py +1 -1
  115. metadata/generated/schema/api/classification/createClassification.py +28 -15
  116. metadata/generated/schema/api/classification/createTag.py +43 -24
  117. metadata/generated/schema/api/classification/loadTags.py +11 -6
  118. metadata/generated/schema/api/createBot.py +30 -14
  119. metadata/generated/schema/api/createEventPublisherJob.py +42 -26
  120. metadata/generated/schema/api/createType.py +33 -21
  121. metadata/generated/schema/api/data/__init__.py +1 -1
  122. metadata/generated/schema/api/data/createAPICollection.py +97 -0
  123. metadata/generated/schema/api/data/createAPIEndpoint.py +107 -0
  124. metadata/generated/schema/api/data/createChart.py +71 -39
  125. metadata/generated/schema/api/data/createContainer.py +105 -68
  126. metadata/generated/schema/api/data/createCustomProperty.py +22 -14
  127. metadata/generated/schema/api/data/createDashboard.py +95 -58
  128. metadata/generated/schema/api/data/createDashboardDataModel.py +88 -51
  129. metadata/generated/schema/api/data/createDatabase.py +85 -53
  130. metadata/generated/schema/api/data/createDatabaseSchema.py +81 -50
  131. metadata/generated/schema/api/data/createGlossary.py +51 -34
  132. metadata/generated/schema/api/data/createGlossaryTerm.py +75 -48
  133. metadata/generated/schema/api/data/createMlModel.py +105 -68
  134. metadata/generated/schema/api/data/createPipeline.py +95 -58
  135. metadata/generated/schema/api/data/createQuery.py +85 -54
  136. metadata/generated/schema/api/data/createSearchIndex.py +76 -49
  137. metadata/generated/schema/api/data/createStoredProcedure.py +70 -46
  138. metadata/generated/schema/api/data/createTable.py +87 -58
  139. metadata/generated/schema/api/data/createTableProfile.py +16 -11
  140. metadata/generated/schema/api/data/createTopic.py +120 -75
  141. metadata/generated/schema/api/data/loadGlossary.py +12 -8
  142. metadata/generated/schema/api/data/restoreEntity.py +11 -7
  143. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  144. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +41 -26
  145. metadata/generated/schema/api/dataInsight/custom/__init__.py +3 -0
  146. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +53 -0
  147. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  148. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +49 -21
  149. metadata/generated/schema/api/docStore/__init__.py +1 -1
  150. metadata/generated/schema/api/docStore/createDocument.py +24 -12
  151. metadata/generated/schema/api/domains/__init__.py +1 -1
  152. metadata/generated/schema/api/domains/createDataProduct.py +50 -30
  153. metadata/generated/schema/api/domains/createDomain.py +38 -25
  154. metadata/generated/schema/api/feed/__init__.py +1 -1
  155. metadata/generated/schema/api/feed/closeTask.py +17 -10
  156. metadata/generated/schema/api/feed/createPost.py +16 -11
  157. metadata/generated/schema/api/feed/createSuggestion.py +56 -16
  158. metadata/generated/schema/api/feed/createThread.py +55 -34
  159. metadata/generated/schema/api/feed/resolveTask.py +21 -14
  160. metadata/generated/schema/api/feed/threadCount.py +29 -19
  161. metadata/generated/schema/api/lineage/__init__.py +1 -1
  162. metadata/generated/schema/api/lineage/addLineage.py +11 -6
  163. metadata/generated/schema/api/openMetadataServerVersion.py +18 -11
  164. metadata/generated/schema/api/policies/__init__.py +1 -1
  165. metadata/generated/schema/api/policies/createPolicy.py +38 -18
  166. metadata/generated/schema/api/services/__init__.py +1 -1
  167. metadata/generated/schema/api/services/createApiService.py +60 -0
  168. metadata/generated/schema/api/services/createDashboardService.py +42 -28
  169. metadata/generated/schema/api/services/createDatabaseService.py +42 -28
  170. metadata/generated/schema/api/services/createMessagingService.py +45 -29
  171. metadata/generated/schema/api/services/createMetadataService.py +34 -20
  172. metadata/generated/schema/api/services/createMlModelService.py +42 -28
  173. metadata/generated/schema/api/services/createPipelineService.py +50 -34
  174. metadata/generated/schema/api/services/createSearchService.py +45 -29
  175. metadata/generated/schema/api/services/createStorageService.py +45 -29
  176. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  177. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +45 -24
  178. metadata/generated/schema/api/setOwner.py +17 -8
  179. metadata/generated/schema/api/teams/__init__.py +1 -1
  180. metadata/generated/schema/api/teams/createPersona.py +32 -15
  181. metadata/generated/schema/api/teams/createRole.py +31 -16
  182. metadata/generated/schema/api/teams/createTeam.py +72 -46
  183. metadata/generated/schema/api/teams/createUser.py +75 -47
  184. metadata/generated/schema/api/tests/__init__.py +1 -1
  185. metadata/generated/schema/api/tests/createCustomMetric.py +38 -26
  186. metadata/generated/schema/api/tests/createLogicalTestCases.py +14 -10
  187. metadata/generated/schema/api/tests/createTestCase.py +46 -26
  188. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +25 -17
  189. metadata/generated/schema/api/tests/createTestDefinition.py +29 -15
  190. metadata/generated/schema/api/tests/createTestSuite.py +50 -27
  191. metadata/generated/schema/api/voteRequest.py +12 -6
  192. metadata/generated/schema/auth/__init__.py +1 -1
  193. metadata/generated/schema/auth/basicAuth.py +9 -6
  194. metadata/generated/schema/auth/basicLoginRequest.py +10 -7
  195. metadata/generated/schema/auth/changePasswordRequest.py +18 -13
  196. metadata/generated/schema/auth/createPersonalToken.py +9 -6
  197. metadata/generated/schema/auth/emailRequest.py +9 -6
  198. metadata/generated/schema/auth/emailVerificationToken.py +17 -13
  199. metadata/generated/schema/auth/generateToken.py +7 -5
  200. metadata/generated/schema/auth/jwtAuth.py +15 -9
  201. metadata/generated/schema/auth/loginRequest.py +10 -7
  202. metadata/generated/schema/auth/logoutRequest.py +14 -9
  203. metadata/generated/schema/auth/passwordResetRequest.py +16 -12
  204. metadata/generated/schema/auth/passwordResetToken.py +27 -18
  205. metadata/generated/schema/auth/personalAccessToken.py +21 -16
  206. metadata/generated/schema/auth/refreshToken.py +21 -16
  207. metadata/generated/schema/auth/registrationRequest.py +13 -10
  208. metadata/generated/schema/auth/revokePersonalToken.py +11 -7
  209. metadata/generated/schema/auth/revokeToken.py +7 -5
  210. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  211. metadata/generated/schema/auth/ssoAuth.py +24 -17
  212. metadata/generated/schema/auth/tokenRefreshRequest.py +11 -6
  213. metadata/generated/schema/configuration/__init__.py +1 -1
  214. metadata/generated/schema/configuration/appsPrivateConfiguration.py +23 -17
  215. metadata/generated/schema/configuration/authConfig.py +31 -22
  216. metadata/generated/schema/configuration/authenticationConfiguration.py +46 -33
  217. metadata/generated/schema/configuration/authorizerConfiguration.py +43 -37
  218. metadata/generated/schema/configuration/changeEventConfiguration.py +7 -5
  219. metadata/generated/schema/configuration/dataQualityConfiguration.py +10 -7
  220. metadata/generated/schema/configuration/elasticSearchConfiguration.py +52 -34
  221. metadata/generated/schema/configuration/eventHandlerConfiguration.py +10 -7
  222. metadata/generated/schema/configuration/fernetConfiguration.py +9 -6
  223. metadata/generated/schema/configuration/jwtTokenConfiguration.py +15 -12
  224. metadata/generated/schema/configuration/kafkaEventConfiguration.py +50 -36
  225. metadata/generated/schema/configuration/ldapConfiguration.py +72 -57
  226. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  227. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +23 -17
  228. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +13 -8
  229. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +10 -7
  230. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +11 -7
  231. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +23 -16
  232. metadata/generated/schema/configuration/limitsConfiguration.py +30 -0
  233. metadata/generated/schema/configuration/loginConfiguration.py +21 -14
  234. metadata/generated/schema/configuration/logoConfiguration.py +16 -13
  235. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +80 -49
  236. metadata/generated/schema/configuration/profilerConfiguration.py +18 -11
  237. metadata/generated/schema/configuration/slackAppConfiguration.py +27 -11
  238. metadata/generated/schema/configuration/taskNotificationConfiguration.py +11 -6
  239. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +21 -14
  240. metadata/generated/schema/configuration/themeConfiguration.py +42 -23
  241. metadata/generated/schema/configuration/uiThemePreference.py +19 -12
  242. metadata/generated/schema/dataInsight/__init__.py +1 -1
  243. metadata/generated/schema/dataInsight/custom/__init__.py +3 -0
  244. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +111 -0
  245. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +21 -0
  246. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +25 -0
  247. metadata/generated/schema/dataInsight/custom/formulaHolder.py +24 -0
  248. metadata/generated/schema/dataInsight/custom/lineChart.py +76 -0
  249. metadata/generated/schema/dataInsight/custom/summaryCard.py +49 -0
  250. metadata/generated/schema/dataInsight/dataInsightChart.py +79 -48
  251. metadata/generated/schema/dataInsight/dataInsightChartResult.py +34 -45
  252. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  253. metadata/generated/schema/dataInsight/kpi/basic.py +43 -32
  254. metadata/generated/schema/dataInsight/kpi/kpi.py +81 -52
  255. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  256. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +19 -12
  257. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +19 -12
  258. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +32 -19
  259. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +32 -18
  260. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +16 -8
  261. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +28 -19
  262. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +18 -13
  263. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +17 -9
  264. metadata/generated/schema/dataInsight/type/unusedAssets.py +17 -9
  265. metadata/generated/schema/email/__init__.py +1 -1
  266. metadata/generated/schema/email/emailRequest.py +26 -18
  267. metadata/generated/schema/email/emailTemplate.py +25 -0
  268. metadata/generated/schema/email/emailTemplatePlaceholder.py +20 -0
  269. metadata/generated/schema/email/smtpSettings.py +34 -18
  270. metadata/generated/schema/email/templateValidationReponse.py +29 -0
  271. metadata/generated/schema/entity/__init__.py +1 -1
  272. metadata/generated/schema/entity/applications/__init__.py +1 -1
  273. metadata/generated/schema/entity/applications/app.py +164 -107
  274. metadata/generated/schema/entity/applications/appRunRecord.py +42 -30
  275. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  276. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +24 -7
  277. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  278. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  279. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +28 -18
  280. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +22 -13
  281. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +23 -14
  282. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +28 -18
  283. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +20 -13
  284. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +19 -12
  285. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +11 -7
  286. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +19 -12
  287. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +11 -7
  288. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +11 -7
  289. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +20 -13
  290. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +11 -7
  291. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +68 -39
  292. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +47 -19
  293. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  294. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +65 -6
  295. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +17 -11
  296. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +34 -24
  297. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  298. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +19 -16
  299. metadata/generated/schema/entity/applications/createAppRequest.py +35 -23
  300. metadata/generated/schema/entity/applications/jobStatus.py +10 -6
  301. metadata/generated/schema/entity/applications/liveExecutionContext.py +15 -6
  302. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  303. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +144 -89
  304. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +95 -64
  305. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +8 -3
  306. metadata/generated/schema/entity/automations/__init__.py +1 -1
  307. metadata/generated/schema/entity/automations/testServiceConnection.py +47 -29
  308. metadata/generated/schema/entity/automations/workflow.py +82 -48
  309. metadata/generated/schema/entity/bot.py +64 -37
  310. metadata/generated/schema/entity/classification/__init__.py +1 -1
  311. metadata/generated/schema/entity/classification/classification.py +90 -50
  312. metadata/generated/schema/entity/classification/tag.py +104 -53
  313. metadata/generated/schema/entity/data/__init__.py +1 -1
  314. metadata/generated/schema/entity/data/apiCollection.py +145 -0
  315. metadata/generated/schema/entity/data/apiEndpoint.py +173 -0
  316. metadata/generated/schema/entity/data/chart.py +120 -72
  317. metadata/generated/schema/entity/data/container.py +178 -116
  318. metadata/generated/schema/entity/data/dashboard.py +141 -89
  319. metadata/generated/schema/entity/data/dashboardDataModel.py +129 -77
  320. metadata/generated/schema/entity/data/database.py +167 -104
  321. metadata/generated/schema/entity/data/databaseSchema.py +157 -98
  322. metadata/generated/schema/entity/data/glossary.py +118 -64
  323. metadata/generated/schema/entity/data/glossaryTerm.py +173 -105
  324. metadata/generated/schema/entity/data/metrics.py +93 -55
  325. metadata/generated/schema/entity/data/mlmodel.py +213 -148
  326. metadata/generated/schema/entity/data/pipeline.py +227 -150
  327. metadata/generated/schema/entity/data/query.py +126 -80
  328. metadata/generated/schema/entity/data/report.py +90 -49
  329. metadata/generated/schema/entity/data/searchIndex.py +171 -114
  330. metadata/generated/schema/entity/data/storedProcedure.py +140 -86
  331. metadata/generated/schema/entity/data/table.py +637 -436
  332. metadata/generated/schema/entity/data/topic.py +175 -111
  333. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  334. metadata/generated/schema/entity/docStore/document.py +52 -31
  335. metadata/generated/schema/entity/domains/__init__.py +1 -1
  336. metadata/generated/schema/entity/domains/dataProduct.py +72 -43
  337. metadata/generated/schema/entity/domains/domain.py +69 -45
  338. metadata/generated/schema/entity/events/__init__.py +1 -1
  339. metadata/generated/schema/entity/events/webhook.py +46 -25
  340. metadata/generated/schema/entity/feed/__init__.py +1 -1
  341. metadata/generated/schema/entity/feed/assets.py +7 -5
  342. metadata/generated/schema/entity/feed/customProperty.py +14 -7
  343. metadata/generated/schema/entity/feed/description.py +21 -13
  344. metadata/generated/schema/entity/feed/domain.py +15 -10
  345. metadata/generated/schema/entity/feed/entityInfo.py +14 -8
  346. metadata/generated/schema/entity/feed/owner.py +16 -11
  347. metadata/generated/schema/entity/feed/suggestion.py +112 -35
  348. metadata/generated/schema/entity/feed/tag.py +15 -10
  349. metadata/generated/schema/entity/feed/testCaseResult.py +19 -13
  350. metadata/generated/schema/entity/feed/thread.py +226 -148
  351. metadata/generated/schema/entity/policies/__init__.py +1 -1
  352. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  353. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +25 -12
  354. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +42 -28
  355. metadata/generated/schema/entity/policies/accessControl/rule.py +36 -23
  356. metadata/generated/schema/entity/policies/filters.py +14 -12
  357. metadata/generated/schema/entity/policies/policy.py +107 -67
  358. metadata/generated/schema/entity/services/__init__.py +1 -1
  359. metadata/generated/schema/entity/services/apiService.py +114 -0
  360. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  361. metadata/generated/schema/entity/services/connections/apiService/__init__.py +5 -0
  362. metadata/generated/schema/entity/services/connections/apiService/restConnection.py +38 -0
  363. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -3
  364. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +21 -13
  365. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +30 -19
  366. metadata/generated/schema/entity/services/connections/common/sslConfig.py +14 -8
  367. metadata/generated/schema/entity/services/connections/connectionBasicType.py +71 -55
  368. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  369. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +23 -15
  370. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +44 -30
  371. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +50 -36
  372. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +51 -37
  373. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +31 -24
  374. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +35 -27
  375. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +35 -27
  376. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +97 -63
  377. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +25 -18
  379. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +23 -14
  380. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +25 -18
  381. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +25 -18
  382. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +27 -19
  383. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +53 -36
  384. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +38 -23
  385. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +30 -21
  386. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +30 -22
  387. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +46 -35
  388. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +70 -52
  390. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +131 -89
  391. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +83 -56
  392. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +31 -22
  393. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +109 -72
  394. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +11 -7
  396. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +10 -8
  397. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +11 -7
  398. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +10 -8
  399. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +46 -32
  400. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +23 -15
  401. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +87 -60
  402. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +11 -7
  404. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +11 -7
  405. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +11 -7
  406. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +59 -43
  407. metadata/generated/schema/entity/services/connections/database/db2Connection.py +64 -48
  408. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +41 -85
  409. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +3 -0
  410. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +109 -0
  411. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +42 -0
  412. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +52 -33
  413. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +73 -52
  414. metadata/generated/schema/entity/services/connections/database/druidConnection.py +66 -47
  415. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +38 -27
  416. metadata/generated/schema/entity/services/connections/database/glueConnection.py +34 -24
  417. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +85 -56
  418. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +108 -75
  419. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  420. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +11 -6
  421. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +7 -5
  422. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +14 -9
  423. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +36 -25
  424. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +7 -5
  425. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +67 -46
  426. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +23 -15
  427. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +102 -67
  428. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +75 -52
  429. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +56 -38
  430. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +89 -60
  431. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +88 -60
  432. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +105 -74
  433. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +78 -54
  434. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +97 -65
  435. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +90 -61
  436. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +78 -55
  437. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +75 -47
  438. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +84 -0
  439. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +15 -9
  441. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +33 -24
  442. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +53 -38
  443. metadata/generated/schema/entity/services/connections/database/sasConnection.py +45 -31
  444. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +82 -54
  445. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +121 -80
  446. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +82 -56
  447. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +168 -0
  448. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +92 -62
  449. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +108 -72
  450. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +89 -60
  451. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +71 -50
  452. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  453. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +23 -15
  454. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +101 -61
  455. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +18 -13
  456. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +15 -10
  457. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +85 -54
  458. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  459. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  460. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +117 -74
  461. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +72 -0
  462. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +43 -28
  463. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +40 -27
  464. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +50 -40
  465. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +151 -92
  466. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  467. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +23 -15
  468. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +29 -20
  469. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +20 -13
  470. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +15 -10
  471. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  472. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +25 -18
  473. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +34 -26
  474. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +11 -7
  475. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +23 -15
  476. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +29 -20
  477. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +37 -27
  478. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +43 -0
  479. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +44 -28
  480. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +37 -27
  481. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +35 -0
  482. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +18 -13
  483. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +62 -40
  484. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +71 -45
  485. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +71 -41
  486. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +11 -7
  487. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +28 -18
  488. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  489. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +23 -15
  490. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  491. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +22 -15
  492. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +14 -11
  493. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +48 -31
  494. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +54 -35
  495. metadata/generated/schema/entity/services/connections/serviceConnection.py +38 -22
  496. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  497. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +27 -19
  498. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +23 -15
  499. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +34 -20
  500. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +32 -22
  501. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +96 -57
  502. metadata/generated/schema/entity/services/connections/testConnectionResult.py +40 -26
  503. metadata/generated/schema/entity/services/dashboardService.py +93 -62
  504. metadata/generated/schema/entity/services/databaseService.py +101 -63
  505. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  506. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +198 -122
  507. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +24 -13
  508. metadata/generated/schema/entity/services/ingestionPipelines/status.py +47 -37
  509. metadata/generated/schema/entity/services/messagingService.py +103 -69
  510. metadata/generated/schema/entity/services/metadataService.py +96 -56
  511. metadata/generated/schema/entity/services/mlmodelService.py +96 -63
  512. metadata/generated/schema/entity/services/pipelineService.py +102 -63
  513. metadata/generated/schema/entity/services/searchService.py +92 -62
  514. metadata/generated/schema/entity/services/serviceType.py +2 -1
  515. metadata/generated/schema/entity/services/storageService.py +93 -62
  516. metadata/generated/schema/entity/teams/__init__.py +1 -1
  517. metadata/generated/schema/entity/teams/persona.py +59 -35
  518. metadata/generated/schema/entity/teams/role.py +82 -51
  519. metadata/generated/schema/entity/teams/team.py +128 -82
  520. metadata/generated/schema/entity/teams/teamHierarchy.py +52 -35
  521. metadata/generated/schema/entity/teams/user.py +122 -81
  522. metadata/generated/schema/entity/type.py +94 -48
  523. metadata/generated/schema/entity/utils/__init__.py +1 -1
  524. metadata/generated/schema/entity/utils/entitiesCount.py +25 -18
  525. metadata/generated/schema/entity/utils/servicesCount.py +25 -22
  526. metadata/generated/schema/entity/utils/supersetApiConnection.py +19 -14
  527. metadata/generated/schema/events/__init__.py +1 -1
  528. metadata/generated/schema/events/alertMetrics.py +22 -14
  529. metadata/generated/schema/events/api/__init__.py +1 -1
  530. metadata/generated/schema/events/api/createEventSubscription.py +63 -35
  531. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +27 -0
  532. metadata/generated/schema/events/emailAlertConfig.py +20 -12
  533. metadata/generated/schema/events/eventFilterRule.py +40 -24
  534. metadata/generated/schema/events/eventSubscription.py +220 -142
  535. metadata/generated/schema/events/eventSubscriptionOffset.py +12 -8
  536. metadata/generated/schema/events/failedEvent.py +25 -13
  537. metadata/generated/schema/events/filterResourceDescriptor.py +24 -14
  538. metadata/generated/schema/events/subscriptionResourceDescriptor.py +20 -11
  539. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  540. metadata/generated/schema/metadataIngestion/application.py +39 -25
  541. metadata/generated/schema/metadataIngestion/applicationPipeline.py +23 -16
  542. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +125 -67
  543. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +9 -6
  544. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +182 -106
  545. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +117 -73
  546. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +75 -47
  547. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +51 -32
  548. metadata/generated/schema/metadataIngestion/dbtPipeline.py +75 -51
  549. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  550. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +37 -25
  551. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +23 -14
  552. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +36 -27
  553. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +37 -25
  554. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +31 -20
  555. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +31 -20
  556. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +37 -25
  557. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +45 -22
  558. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +65 -43
  559. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +35 -17
  560. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +99 -50
  561. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +51 -27
  562. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  563. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +60 -33
  564. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +59 -38
  565. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +22 -14
  566. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +15 -10
  567. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +15 -10
  568. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +14 -9
  569. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +14 -9
  570. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +14 -10
  571. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +57 -28
  572. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +32 -17
  573. metadata/generated/schema/metadataIngestion/workflow.py +114 -62
  574. metadata/generated/schema/monitoring/__init__.py +1 -1
  575. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  576. metadata/generated/schema/security/__init__.py +1 -1
  577. metadata/generated/schema/security/client/__init__.py +1 -1
  578. metadata/generated/schema/security/client/auth0SSOClientConfig.py +10 -9
  579. metadata/generated/schema/security/client/azureSSOClientConfig.py +12 -11
  580. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +11 -10
  581. metadata/generated/schema/security/client/googleSSOClientConfig.py +17 -12
  582. metadata/generated/schema/security/client/oidcClientConfig.py +45 -30
  583. metadata/generated/schema/security/client/oktaSSOClientConfig.py +14 -11
  584. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +9 -8
  585. metadata/generated/schema/security/client/samlSSOClientConfig.py +104 -67
  586. metadata/generated/schema/security/credentials/__init__.py +1 -1
  587. metadata/generated/schema/security/credentials/accessTokenAuth.py +17 -13
  588. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +10 -8
  589. metadata/generated/schema/security/credentials/awsCredentials.py +57 -38
  590. metadata/generated/schema/security/credentials/azureCredentials.py +47 -29
  591. metadata/generated/schema/security/credentials/basicAuth.py +13 -11
  592. metadata/generated/schema/security/credentials/bitbucketCredentials.py +22 -14
  593. metadata/generated/schema/security/credentials/gcpCredentials.py +66 -33
  594. metadata/generated/schema/security/credentials/gcpExternalAccount.py +55 -26
  595. metadata/generated/schema/security/credentials/gcpValues.py +70 -49
  596. metadata/generated/schema/security/credentials/gitCredentials.py +32 -25
  597. metadata/generated/schema/security/credentials/githubCredentials.py +13 -7
  598. metadata/generated/schema/security/credentials/gitlabCredentials.py +34 -0
  599. metadata/generated/schema/security/sasl/__init__.py +3 -0
  600. metadata/generated/schema/security/sasl/saslClientConfig.py +40 -0
  601. metadata/generated/schema/security/secrets/__init__.py +1 -1
  602. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  603. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +39 -24
  604. metadata/generated/schema/security/secrets/secretsManagerProvider.py +2 -1
  605. metadata/generated/schema/security/securityConfiguration.py +15 -9
  606. metadata/generated/schema/security/ssl/__init__.py +1 -1
  607. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +30 -20
  608. metadata/generated/schema/security/ssl/verifySSLConfig.py +16 -18
  609. metadata/generated/schema/settings/__init__.py +1 -1
  610. metadata/generated/schema/settings/settings.py +10 -5
  611. metadata/generated/schema/system/__init__.py +1 -1
  612. metadata/generated/schema/system/entityError.py +7 -5
  613. metadata/generated/schema/system/eventPublisherJob.py +58 -37
  614. metadata/generated/schema/system/indexingError.py +7 -5
  615. metadata/generated/schema/system/limitsResponse.py +20 -0
  616. metadata/generated/schema/system/ui/__init__.py +1 -1
  617. metadata/generated/schema/system/ui/knowledgePanel.py +12 -8
  618. metadata/generated/schema/system/ui/page.py +24 -18
  619. metadata/generated/schema/system/validationResponse.py +40 -28
  620. metadata/generated/schema/tests/__init__.py +1 -1
  621. metadata/generated/schema/tests/assigned.py +11 -7
  622. metadata/generated/schema/tests/basic.py +98 -55
  623. metadata/generated/schema/tests/customMetric.py +41 -29
  624. metadata/generated/schema/tests/dataQualityReport.py +40 -0
  625. metadata/generated/schema/tests/resolved.py +17 -13
  626. metadata/generated/schema/tests/testCase.py +137 -76
  627. metadata/generated/schema/tests/testCaseResolutionStatus.py +49 -33
  628. metadata/generated/schema/tests/testDefinition.py +129 -67
  629. metadata/generated/schema/tests/testSuite.py +137 -75
  630. metadata/generated/schema/type/__init__.py +1 -1
  631. metadata/generated/schema/type/apiSchema.py +27 -0
  632. metadata/generated/schema/type/auditLog.py +29 -20
  633. metadata/generated/schema/type/basic.py +177 -110
  634. metadata/generated/schema/type/bulkOperationResult.py +45 -30
  635. metadata/generated/schema/type/changeEvent.py +72 -40
  636. metadata/generated/schema/type/changeEventType.py +1 -1
  637. metadata/generated/schema/type/collectionDescriptor.py +24 -15
  638. metadata/generated/schema/type/csvDocumentation.py +11 -8
  639. metadata/generated/schema/type/csvErrorType.py +1 -1
  640. metadata/generated/schema/type/csvFile.py +25 -17
  641. metadata/generated/schema/type/csvImportResult.py +34 -21
  642. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  643. metadata/generated/schema/type/customProperties/complexTypes.py +110 -64
  644. metadata/generated/schema/type/customProperties/enumConfig.py +7 -5
  645. metadata/generated/schema/type/customProperty.py +34 -25
  646. metadata/generated/schema/type/dailyCount.py +10 -7
  647. metadata/generated/schema/type/databaseConnectionConfig.py +69 -42
  648. metadata/generated/schema/type/entityHierarchy.py +35 -26
  649. metadata/generated/schema/type/entityHistory.py +71 -45
  650. metadata/generated/schema/type/entityLineage.py +89 -57
  651. metadata/generated/schema/type/entityReference.py +51 -30
  652. metadata/generated/schema/type/entityReferenceList.py +11 -8
  653. metadata/generated/schema/type/entityRelationship.py +68 -39
  654. metadata/generated/schema/type/entityUsage.py +15 -10
  655. metadata/generated/schema/type/filterPattern.py +21 -12
  656. metadata/generated/schema/type/function.py +30 -21
  657. metadata/generated/schema/type/include.py +1 -1
  658. metadata/generated/schema/type/jdbcConnection.py +24 -19
  659. metadata/generated/schema/type/lifeCycle.py +47 -26
  660. metadata/generated/schema/type/paging.py +32 -21
  661. metadata/generated/schema/type/profile.py +13 -11
  662. metadata/generated/schema/type/queryParserData.py +47 -32
  663. metadata/generated/schema/type/reaction.py +13 -8
  664. metadata/generated/schema/type/schedule.py +18 -11
  665. metadata/generated/schema/type/schema.py +64 -44
  666. metadata/generated/schema/type/tableQuery.py +53 -40
  667. metadata/generated/schema/type/tableUsageCount.py +46 -33
  668. metadata/generated/schema/type/tagLabel.py +36 -24
  669. metadata/generated/schema/type/usageDetails.py +40 -24
  670. metadata/generated/schema/type/usageRequest.py +10 -7
  671. metadata/generated/schema/type/votes.py +21 -12
  672. metadata/great_expectations/action.py +14 -12
  673. metadata/great_expectations/utils/ometa_config_handler.py +1 -1
  674. metadata/ingestion/api/common.py +3 -4
  675. metadata/ingestion/api/delete.py +1 -1
  676. metadata/ingestion/api/models.py +6 -8
  677. metadata/ingestion/api/parser.py +13 -17
  678. metadata/ingestion/api/status.py +35 -13
  679. metadata/ingestion/api/topology_runner.py +2 -1
  680. metadata/ingestion/bulksink/metadata_usage.py +17 -14
  681. metadata/ingestion/connections/builders.py +18 -12
  682. metadata/ingestion/connections/secrets.py +8 -6
  683. metadata/ingestion/connections/test_connections.py +12 -2
  684. metadata/ingestion/lineage/models.py +9 -4
  685. metadata/ingestion/lineage/sql_lineage.py +43 -13
  686. metadata/ingestion/models/custom_properties.py +9 -9
  687. metadata/ingestion/models/custom_pydantic.py +70 -44
  688. metadata/ingestion/models/lf_tags_model.py +3 -3
  689. metadata/ingestion/models/ometa_classification.py +1 -1
  690. metadata/ingestion/models/ometa_lineage.py +24 -0
  691. metadata/ingestion/models/patch_request.py +96 -56
  692. metadata/ingestion/models/table_metadata.py +2 -2
  693. metadata/ingestion/models/topology.py +18 -12
  694. metadata/ingestion/ometa/client.py +34 -8
  695. metadata/ingestion/ometa/client_utils.py +6 -7
  696. metadata/ingestion/ometa/mixins/custom_property_mixin.py +2 -4
  697. metadata/ingestion/ometa/mixins/dashboard_mixin.py +2 -2
  698. metadata/ingestion/ometa/mixins/data_insight_mixin.py +10 -6
  699. metadata/ingestion/ometa/mixins/ingestion_pipeline_mixin.py +5 -3
  700. metadata/ingestion/ometa/mixins/lineage_mixin.py +36 -15
  701. metadata/ingestion/ometa/mixins/mlmodel_mixin.py +2 -2
  702. metadata/ingestion/ometa/mixins/patch_mixin.py +32 -30
  703. metadata/ingestion/ometa/mixins/pipeline_mixin.py +3 -3
  704. metadata/ingestion/ometa/mixins/query_mixin.py +4 -4
  705. metadata/ingestion/ometa/mixins/role_policy_mixin.py +13 -13
  706. metadata/ingestion/ometa/mixins/search_index_mixin.py +5 -5
  707. metadata/ingestion/ometa/mixins/server_mixin.py +4 -5
  708. metadata/ingestion/ometa/mixins/service_mixin.py +2 -2
  709. metadata/ingestion/ometa/mixins/suggestions_mixin.py +2 -2
  710. metadata/ingestion/ometa/mixins/table_mixin.py +20 -20
  711. metadata/ingestion/ometa/mixins/tests_mixin.py +21 -18
  712. metadata/ingestion/ometa/mixins/topic_mixin.py +2 -2
  713. metadata/ingestion/ometa/mixins/user_mixin.py +44 -23
  714. metadata/ingestion/ometa/models.py +1 -1
  715. metadata/ingestion/ometa/ometa_api.py +6 -7
  716. metadata/ingestion/ometa/routes.py +18 -0
  717. metadata/ingestion/ometa/ttl_cache.py +47 -0
  718. metadata/ingestion/ometa/utils.py +3 -3
  719. metadata/ingestion/processor/query_parser.py +3 -3
  720. metadata/ingestion/sink/file.py +2 -2
  721. metadata/ingestion/sink/metadata_rest.py +59 -29
  722. metadata/ingestion/source/connections.py +19 -0
  723. metadata/ingestion/source/dashboard/dashboard_service.py +45 -45
  724. metadata/ingestion/source/dashboard/domodashboard/metadata.py +31 -19
  725. metadata/ingestion/source/dashboard/lightdash/client.py +1 -1
  726. metadata/ingestion/source/dashboard/lightdash/metadata.py +26 -14
  727. metadata/ingestion/source/dashboard/lightdash/models.py +11 -11
  728. metadata/ingestion/source/dashboard/looker/bulk_parser.py +3 -3
  729. metadata/ingestion/source/dashboard/looker/connection.py +1 -1
  730. metadata/ingestion/source/dashboard/looker/metadata.py +67 -42
  731. metadata/ingestion/source/dashboard/looker/parser.py +3 -3
  732. metadata/ingestion/source/dashboard/looker/utils.py +8 -5
  733. metadata/ingestion/source/dashboard/metabase/client.py +19 -2
  734. metadata/ingestion/source/dashboard/metabase/metadata.py +45 -14
  735. metadata/ingestion/source/dashboard/metabase/models.py +46 -28
  736. metadata/ingestion/source/dashboard/mode/client.py +1 -1
  737. metadata/ingestion/source/dashboard/mode/metadata.py +24 -14
  738. metadata/ingestion/source/dashboard/mstr/client.py +1 -1
  739. metadata/ingestion/source/dashboard/mstr/metadata.py +18 -11
  740. metadata/ingestion/source/dashboard/mstr/models.py +4 -4
  741. metadata/ingestion/source/dashboard/powerbi/client.py +2 -3
  742. metadata/ingestion/source/dashboard/powerbi/metadata.py +52 -31
  743. metadata/ingestion/source/dashboard/powerbi/models.py +25 -22
  744. metadata/ingestion/source/dashboard/qlikcloud/client.py +2 -2
  745. metadata/ingestion/source/dashboard/qlikcloud/metadata.py +28 -16
  746. metadata/ingestion/source/dashboard/qlikcloud/models.py +4 -4
  747. metadata/ingestion/source/dashboard/qliksense/client.py +3 -3
  748. metadata/ingestion/source/dashboard/qliksense/metadata.py +35 -19
  749. metadata/ingestion/source/dashboard/qliksense/models.py +8 -8
  750. metadata/ingestion/source/dashboard/quicksight/metadata.py +26 -18
  751. metadata/ingestion/source/dashboard/quicksight/models.py +16 -16
  752. metadata/ingestion/source/dashboard/redash/client.py +1 -1
  753. metadata/ingestion/source/dashboard/redash/metadata.py +31 -19
  754. metadata/ingestion/source/dashboard/superset/api_source.py +46 -18
  755. metadata/ingestion/source/dashboard/superset/client.py +2 -2
  756. metadata/ingestion/source/dashboard/superset/db_source.py +44 -18
  757. metadata/ingestion/source/dashboard/superset/metadata.py +2 -2
  758. metadata/ingestion/source/dashboard/superset/mixin.py +12 -13
  759. metadata/ingestion/source/dashboard/superset/models.py +68 -68
  760. metadata/ingestion/source/dashboard/tableau/connection.py +2 -2
  761. metadata/ingestion/source/dashboard/tableau/metadata.py +406 -99
  762. metadata/ingestion/source/dashboard/tableau/models.py +33 -35
  763. metadata/ingestion/source/dashboard/tableau/queries.py +14 -0
  764. metadata/ingestion/source/database/athena/connection.py +34 -5
  765. metadata/ingestion/source/database/athena/metadata.py +43 -168
  766. metadata/ingestion/source/database/athena/models.py +10 -10
  767. metadata/ingestion/source/database/athena/query_parser.py +2 -2
  768. metadata/ingestion/source/database/athena/utils.py +191 -0
  769. metadata/ingestion/source/database/azuresql/metadata.py +4 -4
  770. metadata/ingestion/source/database/azuresql/query_parser.py +2 -2
  771. metadata/ingestion/source/database/bigquery/connection.py +17 -5
  772. metadata/ingestion/source/database/bigquery/helper.py +1 -1
  773. metadata/ingestion/source/database/bigquery/metadata.py +91 -52
  774. metadata/ingestion/source/database/bigquery/query_parser.py +3 -3
  775. metadata/ingestion/source/database/bigtable/connection.py +2 -2
  776. metadata/ingestion/source/database/bigtable/metadata.py +2 -2
  777. metadata/ingestion/source/database/clickhouse/connection.py +3 -3
  778. metadata/ingestion/source/database/clickhouse/metadata.py +11 -8
  779. metadata/ingestion/source/database/clickhouse/query_parser.py +4 -4
  780. metadata/ingestion/source/database/column_type_parser.py +20 -12
  781. metadata/ingestion/source/database/common_db_source.py +112 -49
  782. metadata/ingestion/source/database/common_nosql_source.py +22 -17
  783. metadata/ingestion/source/database/couchbase/connection.py +1 -1
  784. metadata/ingestion/source/database/couchbase/metadata.py +3 -3
  785. metadata/ingestion/source/database/database_service.py +30 -17
  786. metadata/ingestion/source/database/databricks/connection.py +1 -1
  787. metadata/ingestion/source/database/databricks/lineage.py +4 -3
  788. metadata/ingestion/source/database/databricks/metadata.py +125 -25
  789. metadata/ingestion/source/database/databricks/queries.py +5 -1
  790. metadata/ingestion/source/database/databricks/query_parser.py +2 -2
  791. metadata/ingestion/source/database/databricks/usage.py +4 -3
  792. metadata/ingestion/source/database/datalake/clients/azure_blob.py +72 -0
  793. metadata/ingestion/source/database/datalake/clients/base.py +47 -0
  794. metadata/ingestion/source/database/datalake/clients/gcs.py +136 -0
  795. metadata/ingestion/source/database/datalake/clients/s3.py +79 -0
  796. metadata/ingestion/source/database/datalake/connection.py +12 -70
  797. metadata/ingestion/source/database/datalake/metadata.py +75 -219
  798. metadata/ingestion/source/database/db2/metadata.py +13 -13
  799. metadata/ingestion/source/database/dbt/constants.py +1 -7
  800. metadata/ingestion/source/database/dbt/dbt_config.py +21 -21
  801. metadata/ingestion/source/database/dbt/dbt_service.py +19 -9
  802. metadata/ingestion/source/database/dbt/metadata.py +135 -86
  803. metadata/ingestion/source/database/dbt/models.py +9 -9
  804. metadata/ingestion/source/database/deltalake/clients/__init__.py +0 -0
  805. metadata/ingestion/source/database/deltalake/clients/base.py +82 -0
  806. metadata/ingestion/source/database/deltalake/clients/pyspark.py +304 -0
  807. metadata/ingestion/source/database/deltalake/clients/s3.py +200 -0
  808. metadata/ingestion/source/database/deltalake/connection.py +56 -84
  809. metadata/ingestion/source/database/deltalake/metadata.py +67 -193
  810. metadata/ingestion/source/database/domodatabase/metadata.py +83 -38
  811. metadata/ingestion/source/database/domodatabase/models.py +6 -6
  812. metadata/ingestion/source/database/doris/metadata.py +3 -3
  813. metadata/ingestion/source/database/druid/metadata.py +2 -2
  814. metadata/ingestion/source/database/dynamodb/metadata.py +5 -5
  815. metadata/ingestion/source/database/dynamodb/models.py +2 -2
  816. metadata/ingestion/source/database/extended_sample_data.py +41 -41
  817. metadata/ingestion/source/database/external_table_lineage_mixin.py +58 -3
  818. metadata/ingestion/source/database/glue/metadata.py +23 -18
  819. metadata/ingestion/source/database/glue/models.py +6 -6
  820. metadata/ingestion/source/database/greenplum/metadata.py +4 -4
  821. metadata/ingestion/source/database/hive/connection.py +2 -2
  822. metadata/ingestion/source/database/hive/metadata.py +2 -2
  823. metadata/ingestion/source/database/iceberg/catalog/hive.py +1 -1
  824. metadata/ingestion/source/database/iceberg/catalog/rest.py +1 -1
  825. metadata/ingestion/source/database/iceberg/fs/__init__.py +1 -1
  826. metadata/ingestion/source/database/iceberg/fs/s3.py +1 -1
  827. metadata/ingestion/source/database/iceberg/helper.py +4 -4
  828. metadata/ingestion/source/database/iceberg/metadata.py +28 -22
  829. metadata/ingestion/source/database/iceberg/models.py +6 -6
  830. metadata/ingestion/source/database/impala/connection.py +3 -3
  831. metadata/ingestion/source/database/impala/metadata.py +2 -2
  832. metadata/ingestion/source/database/incremental_metadata_extraction.py +1 -1
  833. metadata/ingestion/source/database/life_cycle_query_mixin.py +12 -8
  834. metadata/ingestion/source/database/lineage_source.py +25 -13
  835. metadata/ingestion/source/database/mariadb/metadata.py +2 -2
  836. metadata/ingestion/source/database/mongodb/connection.py +1 -1
  837. metadata/ingestion/source/database/mongodb/metadata.py +2 -2
  838. metadata/ingestion/source/database/mssql/constants.py +23 -0
  839. metadata/ingestion/source/database/mssql/lineage.py +25 -0
  840. metadata/ingestion/source/database/mssql/metadata.py +30 -10
  841. metadata/ingestion/source/database/mssql/queries.py +2 -0
  842. metadata/ingestion/source/database/mssql/query_parser.py +2 -2
  843. metadata/ingestion/source/database/mssql/usage.py +42 -0
  844. metadata/ingestion/source/database/mssql/utils.py +16 -1
  845. metadata/ingestion/source/database/mysql/metadata.py +2 -2
  846. metadata/ingestion/source/database/oracle/metadata.py +23 -13
  847. metadata/ingestion/source/database/oracle/models.py +1 -1
  848. metadata/ingestion/source/database/oracle/queries.py +45 -11
  849. metadata/ingestion/source/database/oracle/query_parser.py +2 -2
  850. metadata/ingestion/source/database/oracle/utils.py +33 -0
  851. metadata/ingestion/source/database/pinotdb/metadata.py +2 -2
  852. metadata/ingestion/source/database/postgres/converter_orm.py +52 -0
  853. metadata/ingestion/source/database/postgres/lineage.py +2 -1
  854. metadata/ingestion/source/database/postgres/metadata.py +34 -6
  855. metadata/ingestion/source/database/postgres/metrics.py +42 -0
  856. metadata/ingestion/source/database/postgres/pgspider/lineage.py +2 -2
  857. metadata/ingestion/source/database/postgres/queries.py +7 -0
  858. metadata/ingestion/source/database/postgres/query_parser.py +4 -4
  859. metadata/ingestion/source/database/postgres/types/money.py +37 -0
  860. metadata/ingestion/source/database/postgres/usage.py +15 -2
  861. metadata/ingestion/source/database/presto/connection.py +2 -2
  862. metadata/ingestion/source/database/presto/metadata.py +2 -2
  863. metadata/ingestion/source/database/query/lineage.py +1 -1
  864. metadata/ingestion/source/database/query/usage.py +5 -3
  865. metadata/ingestion/source/database/query_parser_source.py +1 -1
  866. metadata/ingestion/source/database/redshift/connection.py +37 -9
  867. metadata/ingestion/source/database/redshift/metadata.py +7 -7
  868. metadata/ingestion/source/database/redshift/models.py +1 -1
  869. metadata/ingestion/source/database/redshift/queries.py +30 -7
  870. metadata/ingestion/source/database/redshift/query_parser.py +2 -2
  871. metadata/ingestion/source/database/salesforce/connection.py +1 -3
  872. metadata/ingestion/source/database/salesforce/metadata.py +22 -17
  873. metadata/ingestion/source/database/sample_data.py +198 -98
  874. metadata/ingestion/source/database/sample_usage.py +5 -7
  875. metadata/ingestion/source/database/saperp/__init__.py +0 -0
  876. metadata/ingestion/source/database/saperp/client.py +170 -0
  877. metadata/ingestion/source/database/saperp/connection.py +50 -0
  878. metadata/ingestion/source/database/saperp/constants.py +27 -0
  879. metadata/ingestion/source/database/saperp/metadata.py +322 -0
  880. metadata/ingestion/source/database/saperp/models.py +100 -0
  881. metadata/ingestion/source/database/saphana/metadata.py +2 -2
  882. metadata/ingestion/source/database/sas/client.py +2 -2
  883. metadata/ingestion/source/database/sas/metadata.py +35 -44
  884. metadata/ingestion/source/database/singlestore/metadata.py +2 -2
  885. metadata/ingestion/source/database/snowflake/connection.py +3 -3
  886. metadata/ingestion/source/database/snowflake/metadata.py +39 -12
  887. metadata/ingestion/source/database/snowflake/models.py +7 -7
  888. metadata/ingestion/source/database/snowflake/query_parser.py +2 -2
  889. metadata/ingestion/source/database/sql_column_handler.py +4 -3
  890. metadata/ingestion/source/database/sqlite/metadata.py +2 -2
  891. metadata/ingestion/source/database/stored_procedures_mixin.py +10 -11
  892. metadata/ingestion/source/database/teradata/metadata.py +4 -4
  893. metadata/ingestion/source/database/trino/connection.py +5 -7
  894. metadata/ingestion/source/database/trino/metadata.py +2 -2
  895. metadata/ingestion/source/database/trino/query_parser.py +2 -2
  896. metadata/ingestion/source/database/unitycatalog/client.py +21 -0
  897. metadata/ingestion/source/database/unitycatalog/lineage.py +7 -7
  898. metadata/ingestion/source/database/unitycatalog/metadata.py +82 -42
  899. metadata/ingestion/source/database/unitycatalog/models.py +16 -16
  900. metadata/ingestion/source/database/unitycatalog/query_parser.py +2 -2
  901. metadata/ingestion/source/database/usage_source.py +51 -34
  902. metadata/ingestion/source/database/vertica/metadata.py +3 -3
  903. metadata/ingestion/source/database/vertica/query_parser.py +4 -4
  904. metadata/ingestion/source/messaging/common_broker_source.py +18 -4
  905. metadata/ingestion/source/messaging/kafka/connection.py +1 -1
  906. metadata/ingestion/source/messaging/kafka/metadata.py +7 -9
  907. metadata/ingestion/source/messaging/kinesis/metadata.py +10 -5
  908. metadata/ingestion/source/messaging/kinesis/models.py +3 -5
  909. metadata/ingestion/source/messaging/messaging_service.py +12 -7
  910. metadata/ingestion/source/messaging/redpanda/metadata.py +2 -2
  911. metadata/ingestion/source/metadata/alationsink/__init__.py +0 -0
  912. metadata/ingestion/source/metadata/alationsink/client.py +213 -0
  913. metadata/ingestion/source/metadata/alationsink/connection.py +53 -0
  914. metadata/ingestion/source/metadata/alationsink/constants.py +60 -0
  915. metadata/ingestion/source/metadata/alationsink/metadata.py +397 -0
  916. metadata/ingestion/source/metadata/alationsink/models.py +148 -0
  917. metadata/ingestion/source/metadata/amundsen/connection.py +1 -1
  918. metadata/ingestion/source/metadata/amundsen/metadata.py +14 -10
  919. metadata/ingestion/source/metadata/atlas/client.py +1 -1
  920. metadata/ingestion/source/metadata/atlas/metadata.py +11 -12
  921. metadata/ingestion/source/mlmodel/mlflow/metadata.py +12 -6
  922. metadata/ingestion/source/mlmodel/mlmodel_service.py +13 -6
  923. metadata/ingestion/source/mlmodel/sagemaker/metadata.py +34 -21
  924. metadata/ingestion/source/pipeline/airbyte/client.py +1 -1
  925. metadata/ingestion/source/pipeline/airbyte/metadata.py +15 -11
  926. metadata/ingestion/source/pipeline/airflow/lineage_parser.py +3 -4
  927. metadata/ingestion/source/pipeline/airflow/metadata.py +28 -17
  928. metadata/ingestion/source/pipeline/airflow/models.py +21 -24
  929. metadata/ingestion/source/pipeline/dagster/client.py +3 -3
  930. metadata/ingestion/source/pipeline/dagster/metadata.py +31 -17
  931. metadata/ingestion/source/pipeline/dagster/models.py +14 -14
  932. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +120 -126
  933. metadata/ingestion/source/pipeline/databrickspipeline/models.py +72 -0
  934. metadata/ingestion/source/pipeline/dbtcloud/__init__.py +0 -0
  935. metadata/ingestion/source/pipeline/dbtcloud/client.py +143 -0
  936. metadata/ingestion/source/pipeline/dbtcloud/connection.py +60 -0
  937. metadata/ingestion/source/pipeline/dbtcloud/metadata.py +345 -0
  938. metadata/ingestion/source/pipeline/dbtcloud/models.py +72 -0
  939. metadata/ingestion/source/pipeline/dbtcloud/queries.py +45 -0
  940. metadata/ingestion/source/pipeline/domopipeline/metadata.py +21 -12
  941. metadata/ingestion/source/pipeline/fivetran/client.py +20 -6
  942. metadata/ingestion/source/pipeline/fivetran/metadata.py +124 -50
  943. metadata/ingestion/source/pipeline/fivetran/models.py +20 -0
  944. metadata/ingestion/source/pipeline/flink/client.py +53 -0
  945. metadata/ingestion/source/pipeline/flink/connection.py +52 -0
  946. metadata/ingestion/source/pipeline/flink/metadata.py +188 -0
  947. metadata/ingestion/source/pipeline/flink/models.py +44 -0
  948. metadata/ingestion/source/pipeline/gluepipeline/metadata.py +23 -11
  949. metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +7 -8
  950. metadata/ingestion/source/pipeline/nifi/metadata.py +17 -8
  951. metadata/ingestion/source/pipeline/openlineage/connection.py +12 -3
  952. metadata/ingestion/source/pipeline/openlineage/metadata.py +3 -27
  953. metadata/ingestion/source/pipeline/pipeline_service.py +52 -8
  954. metadata/ingestion/source/pipeline/spline/client.py +1 -1
  955. metadata/ingestion/source/pipeline/spline/metadata.py +3 -3
  956. metadata/ingestion/source/pipeline/spline/models.py +12 -12
  957. metadata/ingestion/source/search/elasticsearch/connection.py +2 -2
  958. metadata/ingestion/source/search/elasticsearch/metadata.py +5 -4
  959. metadata/ingestion/source/search/search_service.py +13 -6
  960. metadata/ingestion/source/storage/gcs/client.py +58 -0
  961. metadata/ingestion/source/storage/gcs/connection.py +159 -0
  962. metadata/ingestion/source/storage/gcs/metadata.py +465 -0
  963. metadata/ingestion/source/storage/gcs/models.py +86 -0
  964. metadata/ingestion/source/storage/s3/metadata.py +268 -18
  965. metadata/ingestion/source/storage/s3/models.py +30 -11
  966. metadata/ingestion/source/storage/storage_service.py +43 -7
  967. metadata/ingestion/stage/table_usage.py +3 -3
  968. metadata/mixins/pandas/pandas_mixin.py +2 -2
  969. metadata/mixins/sqalchemy/sqa_mixin.py +1 -1
  970. metadata/parsers/avro_parser.py +12 -10
  971. metadata/parsers/json_schema_parser.py +4 -4
  972. metadata/parsers/protobuf_parser.py +4 -5
  973. metadata/pii/processor.py +4 -6
  974. metadata/profiler/adaptors/dynamodb.py +2 -2
  975. metadata/profiler/adaptors/mongodb.py +5 -17
  976. metadata/profiler/api/models.py +9 -9
  977. metadata/profiler/interface/nosql/profiler_interface.py +5 -8
  978. metadata/profiler/interface/pandas/profiler_interface.py +8 -10
  979. metadata/profiler/interface/profiler_interface.py +3 -3
  980. metadata/profiler/interface/profiler_interface_factory.py +46 -51
  981. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +28 -17
  982. metadata/profiler/interface/sqlalchemy/profiler_interface.py +26 -6
  983. metadata/profiler/metrics/composed/null_ratio.py +5 -8
  984. metadata/profiler/metrics/hybrid/histogram.py +9 -3
  985. metadata/profiler/metrics/static/mean.py +16 -8
  986. metadata/profiler/metrics/static/null_count.py +4 -2
  987. metadata/profiler/metrics/system/queries/snowflake.py +1 -1
  988. metadata/profiler/metrics/window/percentille_mixin.py +1 -1
  989. metadata/profiler/orm/converter/base.py +21 -13
  990. metadata/profiler/orm/converter/common.py +3 -4
  991. metadata/profiler/orm/functions/datetime.py +1 -1
  992. metadata/profiler/orm/functions/median.py +11 -4
  993. metadata/profiler/orm/functions/sum.py +8 -1
  994. metadata/profiler/orm/functions/table_metric_computer.py +6 -7
  995. metadata/profiler/orm/registry.py +19 -1
  996. metadata/profiler/orm/types/custom_hex_byte_string.py +5 -3
  997. metadata/profiler/orm/types/undetermined_type.py +38 -0
  998. metadata/profiler/processor/core.py +19 -13
  999. metadata/profiler/processor/default.py +4 -1
  1000. metadata/profiler/processor/processor.py +4 -4
  1001. metadata/profiler/processor/sample_data_handler.py +5 -5
  1002. metadata/profiler/processor/sampler/nosql/sampler.py +9 -4
  1003. metadata/profiler/processor/sampler/sampler_factory.py +36 -6
  1004. metadata/profiler/processor/sampler/sqlalchemy/azuresql/sampler.py +40 -0
  1005. metadata/profiler/processor/sampler/sqlalchemy/sampler.py +33 -62
  1006. metadata/profiler/processor/sampler/sqlalchemy/snowflake/sampler.py +60 -0
  1007. metadata/profiler/source/base/profiler_source.py +12 -14
  1008. metadata/profiler/source/bigquery/profiler_source.py +2 -2
  1009. metadata/profiler/source/bigquery/type_mapper.py +2 -2
  1010. metadata/profiler/source/metadata.py +14 -16
  1011. metadata/profiler/source/metadata_ext.py +3 -3
  1012. metadata/readers/dataframe/avro.py +1 -3
  1013. metadata/readers/dataframe/models.py +29 -12
  1014. metadata/readers/dataframe/parquet.py +3 -3
  1015. metadata/readers/dataframe/reader_factory.py +6 -0
  1016. metadata/readers/file/api_reader.py +5 -2
  1017. metadata/readers/file/bitbucket.py +4 -4
  1018. metadata/readers/file/credentials.py +5 -5
  1019. metadata/readers/file/github.py +6 -6
  1020. metadata/readers/file/gitlab.py +172 -0
  1021. metadata/utils/class_helper.py +3 -5
  1022. metadata/utils/credentials.py +2 -2
  1023. metadata/utils/datalake/datalake_utils.py +4 -2
  1024. metadata/utils/entity_link.py +8 -0
  1025. metadata/utils/execution_time_tracker.py +2 -2
  1026. metadata/utils/filters.py +25 -17
  1027. metadata/utils/fqn.py +59 -14
  1028. metadata/utils/helpers.py +15 -12
  1029. metadata/utils/importer.py +29 -2
  1030. metadata/utils/life_cycle_utils.py +3 -3
  1031. metadata/utils/logger.py +9 -24
  1032. metadata/utils/lru_cache.py +3 -0
  1033. metadata/utils/metadata_service_helper.py +3 -1
  1034. metadata/utils/secrets/gcp_secrets_manager.py +128 -0
  1035. metadata/utils/secrets/secrets_manager_factory.py +3 -0
  1036. metadata/utils/source_hash.py +1 -1
  1037. metadata/utils/ssl_manager.py +20 -26
  1038. metadata/utils/ssl_registry.py +5 -1
  1039. metadata/utils/storage_metadata_config.py +6 -5
  1040. metadata/utils/tag_utils.py +21 -13
  1041. metadata/utils/time_utils.py +45 -5
  1042. metadata/workflow/application.py +4 -4
  1043. metadata/workflow/application_output_handler.py +6 -19
  1044. metadata/workflow/base.py +42 -5
  1045. metadata/workflow/data_quality.py +5 -5
  1046. metadata/workflow/ingestion.py +4 -6
  1047. metadata/workflow/metadata.py +4 -4
  1048. metadata/workflow/output_handler.py +35 -214
  1049. metadata/workflow/profiler.py +5 -5
  1050. metadata/workflow/usage.py +8 -6
  1051. metadata/workflow/workflow_init_error_handler.py +154 -0
  1052. metadata/workflow/workflow_output_handler.py +189 -98
  1053. metadata/workflow/workflow_status_mixin.py +20 -11
  1054. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/METADATA +388 -313
  1055. openmetadata_ingestion-1.5.0.0.dist-info/RECORD +1595 -0
  1056. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/top_level.txt +1 -0
  1057. metadata/cli/insight.py +0 -51
  1058. metadata/data_insight/processor/kpi/kpi_runner.py +0 -156
  1059. metadata/data_insight/processor/kpi/run_result_registry.py +0 -162
  1060. metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +0 -253
  1061. metadata/data_insight/processor/reports/data_processor.py +0 -72
  1062. metadata/data_insight/processor/reports/entity_report_data_processor.py +0 -262
  1063. metadata/data_insight/processor/reports/web_analytic_report_data_processor.py +0 -384
  1064. metadata/data_insight/producer/cost_analysis_producer.py +0 -126
  1065. metadata/data_insight/producer/entity_producer.py +0 -63
  1066. metadata/data_insight/producer/producer_factory.py +0 -53
  1067. metadata/data_insight/producer/web_analytics_producer.py +0 -84
  1068. metadata/data_insight/source/metadata.py +0 -175
  1069. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +0 -30
  1070. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +0 -30
  1071. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +0 -30
  1072. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +0 -30
  1073. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +0 -27
  1074. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +0 -27
  1075. metadata/workflow/data_insight.py +0 -78
  1076. openmetadata_ingestion-1.4.7.2.dist-info/RECORD +0 -1509
  1077. {metadata/cli → _openmetadata_testutils}/__init__.py +0 -0
  1078. {metadata/data_insight/processor → _openmetadata_testutils/helpers}/__init__.py +0 -0
  1079. {metadata/data_insight/processor/kpi → _openmetadata_testutils/kafka}/__init__.py +0 -0
  1080. {metadata/data_insight/processor/reports → _openmetadata_testutils/postgres}/__init__.py +0 -0
  1081. {metadata/data_insight/producer → _openmetadata_testutils/pydantic}/__init__.py +0 -0
  1082. /metadata/{data_insight/source → ingestion/source/database/datalake/clients}/__init__.py +0 -0
  1083. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/LICENSE +0 -0
  1084. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/WHEEL +0 -0
  1085. {openmetadata_ingestion-1.4.7.2.dist-info → openmetadata_ingestion-1.5.0.0.dist-info}/entry_points.txt +0 -0
@@ -1,126 +0,0 @@
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
- Producer class for data insight entity reports
13
- """
14
-
15
- import traceback
16
- from typing import Dict, Iterable, Optional
17
-
18
- from pydantic import BaseModel
19
-
20
- from metadata.data_insight.producer.producer_interface import ProducerInterface
21
- from metadata.generated.schema.entity.data.table import Table
22
- from metadata.generated.schema.entity.services.databaseService import DatabaseService
23
- from metadata.generated.schema.type.lifeCycle import LifeCycle
24
- from metadata.ingestion.api.models import Entity
25
- from metadata.ingestion.ometa.utils import model_str
26
- from metadata.utils.logger import data_insight_logger
27
-
28
- logger = data_insight_logger()
29
-
30
-
31
- class CostAnalysisReportData(BaseModel):
32
- """
33
- Query executed get life cycle
34
- """
35
-
36
- entity: Entity
37
- life_cycle: Optional[LifeCycle]
38
- size: Optional[float]
39
-
40
-
41
- class CostAnalysisProducer(ProducerInterface):
42
- """entity producer class"""
43
-
44
- def _check_profiler_and_usage_support(
45
- self, database_service: DatabaseService
46
- ) -> bool:
47
- return (
48
- hasattr(database_service.connection.config, "supportsUsageExtraction")
49
- and database_service.connection.config.supportsUsageExtraction.__root__
50
- and hasattr(database_service.connection.config, "supportsProfiler")
51
- and database_service.connection.config.supportsProfiler.__root__
52
- )
53
-
54
- def _check_life_cycle_and_size_data(
55
- self, table: Table
56
- ) -> Optional[CostAnalysisReportData]:
57
- """
58
- Method to check if the valid life cycle and table size data is present for the table
59
- """
60
- cost_analysis_report_data = CostAnalysisReportData(entity=table)
61
- if table.lifeCycle and table.lifeCycle.accessed:
62
- cost_analysis_report_data.life_cycle = table.lifeCycle
63
-
64
- table_profile = self.metadata.get_latest_table_profile(
65
- fqn=table.fullyQualifiedName
66
- )
67
- if table_profile.profile:
68
- cost_analysis_report_data.size = table_profile.profile.sizeInByte
69
-
70
- if cost_analysis_report_data.life_cycle or cost_analysis_report_data.size:
71
- return cost_analysis_report_data
72
- return None
73
-
74
- def life_cycle_data_dict(
75
- self, entities_cache: Optional[Dict], database_service_fqn: str
76
- ) -> Iterable[Dict]:
77
- """
78
- Cache the required lifecycle data to be used by the processors and return the dict
79
- """
80
- if entities_cache.get(database_service_fqn):
81
- yield entities_cache[database_service_fqn]
82
- else:
83
- tables = self.metadata.list_all_entities(
84
- Table,
85
- limit=100,
86
- skip_on_failure=True,
87
- params={"database": database_service_fqn},
88
- )
89
- entities_cache[database_service_fqn] = {}
90
-
91
- for table in tables:
92
- try:
93
- cost_analysis_data = self._check_life_cycle_and_size_data(
94
- table=table
95
- )
96
- if cost_analysis_data:
97
- entities_cache[database_service_fqn][
98
- model_str(table.fullyQualifiedName)
99
- ] = cost_analysis_data
100
- except Exception as err:
101
- logger.error(
102
- f"Error trying to fetch cost analysis data for [{model_str(table.fullyQualifiedName)}] -- {err}"
103
- )
104
- logger.debug(traceback.format_exc())
105
-
106
- yield entities_cache[database_service_fqn]
107
-
108
- # pylint: disable=dangerous-default-value
109
- def fetch_data(
110
- self, limit=100, fields=["*"], entities_cache=None
111
- ) -> Optional[Iterable[Dict]]:
112
- database_services = self.metadata.list_all_entities(
113
- DatabaseService, limit=limit, fields=fields, skip_on_failure=True
114
- )
115
- for database_service in database_services or []:
116
- try:
117
- if self._check_profiler_and_usage_support(database_service):
118
- yield from self.life_cycle_data_dict(
119
- entities_cache=entities_cache,
120
- database_service_fqn=model_str(
121
- database_service.fullyQualifiedName
122
- ),
123
- )
124
- except Exception as err:
125
- logger.error(f"Error trying to fetch entities -- {err}")
126
- logger.debug(traceback.format_exc())
@@ -1,63 +0,0 @@
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
- Producer class for data insight entity reports
13
- """
14
-
15
- import traceback
16
- from typing import Iterable
17
-
18
- from metadata.data_insight.producer.producer_interface import ProducerInterface
19
- from metadata.generated.schema.entity.data import (
20
- chart,
21
- container,
22
- dashboard,
23
- database,
24
- databaseSchema,
25
- mlmodel,
26
- pipeline,
27
- searchIndex,
28
- storedProcedure,
29
- table,
30
- topic,
31
- )
32
- from metadata.utils.logger import data_insight_logger
33
-
34
- logger = data_insight_logger()
35
-
36
-
37
- class EntityProducer(ProducerInterface):
38
- """entity producer class"""
39
-
40
- entities = [
41
- chart.Chart,
42
- dashboard.Dashboard,
43
- database.Database,
44
- databaseSchema.DatabaseSchema,
45
- mlmodel.MlModel,
46
- pipeline.Pipeline,
47
- table.Table,
48
- topic.Topic,
49
- container.Container,
50
- storedProcedure.StoredProcedure,
51
- searchIndex.SearchIndex,
52
- ]
53
-
54
- # pylint: disable=dangerous-default-value
55
- def fetch_data(self, limit=100, fields=["*"], entities_cache=None) -> Iterable:
56
- for entity in self.entities:
57
- try:
58
- yield from self.metadata.list_all_entities(
59
- entity, limit=limit, fields=fields, skip_on_failure=True
60
- )
61
- except Exception as err:
62
- logger.error(f"Error trying to fetch entity -- {err}")
63
- logger.debug(traceback.format_exc())
@@ -1,53 +0,0 @@
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
- OpenMetadata producer factory
13
- """
14
-
15
- from typing import Type
16
-
17
- from metadata.data_insight.producer.cost_analysis_producer import CostAnalysisProducer
18
- from metadata.data_insight.producer.entity_producer import EntityProducer
19
- from metadata.data_insight.producer.producer_interface import ProducerInterface
20
- from metadata.data_insight.producer.web_analytics_producer import WebAnalyticsProducer
21
- from metadata.generated.schema.analytics.reportData import ReportDataType
22
-
23
-
24
- class ProducerFactory:
25
- def __init__(self):
26
- self._producer_type = {}
27
-
28
- def register(self, producer_type: str, producer_class: Type[ProducerInterface]):
29
- """register a new producer"""
30
- self._producer_type[producer_type] = producer_class
31
-
32
- def create(self, producer_type: str, *args, **kwargs) -> ProducerInterface:
33
- """create producer object based on producer type"""
34
- producer_class = self._producer_type.get(producer_type)
35
- if not producer_class:
36
- raise RuntimeError(f"Producer type {producer_type} not found")
37
- return producer_class(*args, **kwargs)
38
-
39
-
40
- producer_factory = ProducerFactory()
41
- producer_factory.register(ReportDataType.entityReportData.value, EntityProducer)
42
- producer_factory.register(
43
- ReportDataType.rawCostAnalysisReportData.value, CostAnalysisProducer
44
- )
45
- producer_factory.register(
46
- ReportDataType.aggregatedCostAnalysisReportData.value, CostAnalysisProducer
47
- )
48
- producer_factory.register(
49
- ReportDataType.webAnalyticEntityViewReportData.value, WebAnalyticsProducer
50
- )
51
- producer_factory.register(
52
- ReportDataType.webAnalyticUserActivityReportData.value, WebAnalyticsProducer
53
- )
@@ -1,84 +0,0 @@
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
- Producer class for data insight web analytics reports
13
- """
14
-
15
-
16
- from typing import Dict, Optional
17
-
18
- from metadata.data_insight.producer.producer_interface import ProducerInterface
19
- from metadata.generated.schema.analytics.webAnalyticEventData import (
20
- WebAnalyticEventData,
21
- )
22
- from metadata.ingestion.ometa.models import EntityList
23
- from metadata.utils.time_utils import (
24
- get_beginning_of_day_timestamp_mill,
25
- get_end_of_day_timestamp_mill,
26
- )
27
-
28
- # We'll get web analytics data for the previous day
29
- START_TS = str(get_beginning_of_day_timestamp_mill(days=1))
30
- END_TS = str(get_end_of_day_timestamp_mill(days=1))
31
-
32
- # we'll cache events to avoid fetching them multiple times
33
- # the key will be the entity pagination after value
34
- CACHED_EVENTS: Dict[str, EntityList[WebAnalyticEventData]] = {}
35
-
36
-
37
- class WebAnalyticsProducer(ProducerInterface):
38
- """web analytics producer class"""
39
-
40
- entity_type = WebAnalyticEventData
41
- params = {
42
- "startTs": START_TS,
43
- "endTs": END_TS,
44
- "eventType": "PageView",
45
- }
46
- clear_cache = False
47
-
48
- @staticmethod
49
- def _cache_events(
50
- key: Optional[str], value: EntityList[WebAnalyticEventData]
51
- ) -> None:
52
- """cache events"""
53
- CACHED_EVENTS[str(key)] = value
54
-
55
- # pylint: disable=dangerous-default-value
56
- def _get_events(
57
- self, after: Optional[str], limit=100, fields=["*"]
58
- ) -> EntityList[WebAnalyticEventData]:
59
- """Try to retrieve events from catch otherwise retrieve them from DB"""
60
- events = CACHED_EVENTS.get(str(after))
61
- if not events:
62
- events: EntityList[WebAnalyticEventData] = self.metadata.list_entities(
63
- entity=self.entity_type,
64
- params=self.params,
65
- after=after,
66
- limit=limit,
67
- fields=fields,
68
- skip_on_failure=True,
69
- ) # type: ignore
70
- self._cache_events(after, events)
71
- return events
72
-
73
- def _clear_cache(self):
74
- """clear cache"""
75
- CACHED_EVENTS.clear()
76
-
77
- def fetch_data(
78
- self, limit=100, fields=["*"], entities_cache=None
79
- ): # pylint: disable=dangerous-default-value
80
- """fetch data for web analytics event"""
81
- events = self._get_events(None, limit, fields)
82
-
83
- for entity in events.entities:
84
- yield entity
@@ -1,175 +0,0 @@
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
- OpenMetadata source for the data insight workflow
13
- """
14
-
15
- import traceback
16
- from datetime import datetime
17
- from types import MappingProxyType
18
- from typing import Dict, Iterable, Optional, Union, cast
19
-
20
- from pydantic import BaseModel
21
-
22
- from metadata.data_insight.processor.reports.cost_analysis_report_data_processor import (
23
- AggregatedCostAnalysisReportDataProcessor,
24
- RawCostAnalysisReportDataProcessor,
25
- )
26
- from metadata.data_insight.processor.reports.data_processor import DataProcessor
27
- from metadata.data_insight.processor.reports.entity_report_data_processor import (
28
- EntityReportDataProcessor,
29
- )
30
- from metadata.data_insight.processor.reports.web_analytic_report_data_processor import (
31
- WebAnalyticEntityViewReportDataProcessor,
32
- WebAnalyticUserActivityReportDataProcessor,
33
- )
34
- from metadata.data_insight.producer.producer_factory import producer_factory
35
- from metadata.generated.schema.analytics.reportData import ReportData, ReportDataType
36
- from metadata.generated.schema.entity.services.ingestionPipelines.status import (
37
- StackTraceError,
38
- )
39
- from metadata.ingestion.api.models import Either
40
- from metadata.ingestion.api.step import Step
41
- from metadata.ingestion.api.steps import Source
42
- from metadata.ingestion.ometa.ometa_api import OpenMetadata
43
- from metadata.utils.logger import profiler_logger
44
-
45
- logger = profiler_logger()
46
-
47
-
48
- class DataInsightRecord(BaseModel):
49
- """Return class for the OpenMetadata Profiler Source"""
50
-
51
- class Config:
52
- arbitrary_types_allowed = True
53
- extra = "forbid"
54
-
55
- data: ReportData
56
-
57
- def __str__(self):
58
- """Return the string representation of the entity produced"""
59
- return f"Entities: {list(self.data)}"
60
-
61
-
62
- class DataInsightSource(Source):
63
- """
64
- This source lists and filters the entities that need
65
- to be processed by the profiler workflow.
66
-
67
- Note that in order to manage the following steps we need
68
- to test the connection against the Database Service Source.
69
- We do this here as well.
70
- """
71
-
72
- def __init__(self, metadata: OpenMetadata):
73
- """Instantiate source object"""
74
- super().__init__()
75
- self.metadata = metadata
76
- self.date = datetime.utcnow().strftime("%Y-%m-%d")
77
- self.entities_cache = {}
78
-
79
- _processors = self._instantiate_processors()
80
- self._processors: Dict[
81
- str,
82
- Union[
83
- DataProcessor,
84
- EntityReportDataProcessor,
85
- WebAnalyticEntityViewReportDataProcessor,
86
- WebAnalyticUserActivityReportDataProcessor,
87
- AggregatedCostAnalysisReportDataProcessor,
88
- RawCostAnalysisReportDataProcessor,
89
- ],
90
- ] = MappingProxyType(
91
- _processors
92
- ) # make an immutable copy of the dict
93
-
94
- @property
95
- def name(self) -> str:
96
- return "OpenMetadata Insights"
97
-
98
- @property
99
- def processors(self) -> Dict[str, Optional[DataProcessor]]:
100
- """dictionary of processors"""
101
- return self._processors
102
-
103
- def _instantiate_processors(self) -> Dict[str, DataProcessor]:
104
- """Instantiate the data processors"""
105
- return {
106
- report_data_type.value: DataProcessor.create(
107
- _data_processor_type=report_data_type.value,
108
- metadata=self.metadata,
109
- )
110
- for report_data_type in ReportDataType
111
- }
112
-
113
- def prepare(self):
114
- """Nothing to prepare"""
115
-
116
- def test_connection(self) -> None:
117
- """Nothing to test as we'll be connecting to OM"""
118
-
119
- def _iter(self, *_, **__) -> Iterable[Either[DataInsightRecord]]:
120
- """Produces the data that need to be processed"""
121
-
122
- for report_data_type in ReportDataType:
123
- logger.info(f"Processing data for report type {report_data_type}")
124
- try:
125
- self.metadata.delete_report_data_at_date(report_data_type, self.date)
126
- producer = producer_factory.create(
127
- report_data_type.value, self.metadata
128
- )
129
-
130
- processor = self.processors[report_data_type.value]
131
- processor = cast(DataProcessor, processor)
132
- processor.pre_hook() if processor.pre_hook else None # pylint: disable=expression-not-assigned
133
-
134
- for data in (
135
- producer.fetch_data(
136
- fields=["owner", "tags"], entities_cache=self.entities_cache
137
- )
138
- or []
139
- ):
140
- processor.refine(data)
141
-
142
- processor.post_hook() if processor.post_hook else None # pylint: disable=expression-not-assigned
143
-
144
- if processor.clean_up_cache:
145
- self.entities_cache.clear()
146
-
147
- for data in processor.yield_refined_data():
148
- yield Either(left=None, right=DataInsightRecord(data=data))
149
- except KeyError as key_error:
150
- yield Either(
151
- left=StackTraceError(
152
- name=report_data_type.value,
153
- error=f"Error retrieving processor with exception [{key_error}]."
154
- "Available processors are {self.processors}",
155
- stackTrace=traceback.format_exc(),
156
- ),
157
- right=None,
158
- )
159
- except Exception as exc:
160
- yield Either(
161
- left=StackTraceError(
162
- name=report_data_type.value,
163
- error=f"Error listing data for report with exception [{exc}]",
164
- stackTrace=traceback.format_exc(),
165
- ),
166
- right=None,
167
- )
168
-
169
- # pylint: disable=arguments-differ
170
- @classmethod
171
- def create(cls, metadata: OpenMetadata) -> "Step":
172
- return cls(metadata)
173
-
174
- def close(self) -> None:
175
- """Nothing to close"""
@@ -1,30 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: dataInsight/type/percentageOfEntitiesWithDescriptionByType.json
3
- # timestamp: 2024-08-16T17:41:32+00:00
4
-
5
- from __future__ import annotations
6
-
7
- from typing import Optional
8
-
9
- from pydantic import BaseModel, Extra, Field, confloat
10
-
11
- from ...type import basic
12
-
13
-
14
- class PercentageOfEntitiesWithDescriptionByType(BaseModel):
15
- class Config:
16
- extra = Extra.forbid
17
-
18
- timestamp: Optional[basic.Timestamp] = Field(None, description='timestamp')
19
- entityType: Optional[str] = Field(
20
- None, description='Type of entity. Derived from the entity class.'
21
- )
22
- completedDescriptionFraction: Optional[confloat(ge=0.0, le=1.0)] = Field(
23
- None, description='decimal fraction of entity with completed description'
24
- )
25
- completedDescription: Optional[float] = Field(
26
- None, description='decimal fraction of entity with completed description'
27
- )
28
- entityCount: Optional[float] = Field(
29
- None, description='decimal fraction of entity with completed description'
30
- )
@@ -1,30 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: dataInsight/type/percentageOfEntitiesWithOwnerByType.json
3
- # timestamp: 2024-08-16T17:41:32+00:00
4
-
5
- from __future__ import annotations
6
-
7
- from typing import Optional
8
-
9
- from pydantic import BaseModel, Extra, Field, confloat
10
-
11
- from ...type import basic
12
-
13
-
14
- class PercentageOfEntitiesWithOwnerByType(BaseModel):
15
- class Config:
16
- extra = Extra.forbid
17
-
18
- timestamp: Optional[basic.Timestamp] = Field(None, description='timestamp')
19
- entityType: Optional[str] = Field(
20
- None, description='Type of entity. Derived from the entity class.'
21
- )
22
- hasOwnerFraction: Optional[confloat(ge=0.0, le=1.0)] = Field(
23
- None, description='Decimal fraction of entity with an owner.'
24
- )
25
- hasOwner: Optional[float] = Field(
26
- None, description='Decimal fraction of entity with an owner.'
27
- )
28
- entityCount: Optional[float] = Field(
29
- None, description='Decimal fraction of entity with an owner.'
30
- )
@@ -1,30 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: dataInsight/type/percentageOfServicesWithDescription.json
3
- # timestamp: 2024-08-16T17:41:32+00:00
4
-
5
- from __future__ import annotations
6
-
7
- from typing import Optional
8
-
9
- from pydantic import BaseModel, Extra, Field, confloat
10
-
11
- from ...type import basic
12
-
13
-
14
- class PercentageOfServicesWithDescription(BaseModel):
15
- class Config:
16
- extra = Extra.forbid
17
-
18
- timestamp: Optional[basic.Timestamp] = Field(None, description='timestamp')
19
- serviceName: Optional[str] = Field(
20
- None, description='Type of entity. Derived from the entity class.'
21
- )
22
- completedDescriptionFraction: Optional[confloat(ge=0.0, le=1.0)] = Field(
23
- None, description='decimal fraction of entity with completed description'
24
- )
25
- completedDescription: Optional[float] = Field(
26
- None, description='decimal fraction of entity with completed description'
27
- )
28
- entityCount: Optional[float] = Field(
29
- None, description='Decimal fraction of entity with an owner.'
30
- )
@@ -1,30 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: dataInsight/type/percentageOfServicesWithOwner.json
3
- # timestamp: 2024-08-16T17:41:32+00:00
4
-
5
- from __future__ import annotations
6
-
7
- from typing import Optional
8
-
9
- from pydantic import BaseModel, Extra, Field, confloat
10
-
11
- from ...type import basic
12
-
13
-
14
- class PercentageOfServicesWithOwner(BaseModel):
15
- class Config:
16
- extra = Extra.forbid
17
-
18
- timestamp: Optional[basic.Timestamp] = Field(None, description='timestamp')
19
- serviceName: Optional[str] = Field(
20
- None, description='Type of entity. Derived from the entity class.'
21
- )
22
- hasOwnerFraction: Optional[confloat(ge=0.0, le=1.0)] = Field(
23
- None, description='Decimal fraction of entity with an owner.'
24
- )
25
- hasOwner: Optional[float] = Field(
26
- None, description='Decimal fraction of entity with an owner.'
27
- )
28
- entityCount: Optional[float] = Field(
29
- None, description='Decimal fraction of entity with an owner.'
30
- )
@@ -1,27 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: dataInsight/type/totalEntitiesByTier.json
3
- # timestamp: 2024-08-16T17:41:32+00:00
4
-
5
- from __future__ import annotations
6
-
7
- from typing import Optional
8
-
9
- from pydantic import BaseModel, Extra, Field, confloat
10
-
11
- from ...type import basic
12
-
13
-
14
- class TotalEntitiesByTier(BaseModel):
15
- class Config:
16
- extra = Extra.forbid
17
-
18
- timestamp: Optional[basic.Timestamp] = Field(None, description='timestamp')
19
- entityTier: Optional[str] = Field(
20
- None, description='Tier of entity. Derived from tags.'
21
- )
22
- entityCountFraction: Optional[confloat(ge=0.0, le=1.0)] = Field(
23
- None, description='Total count of entity for the given entity type'
24
- )
25
- entityCount: Optional[float] = Field(
26
- None, description='Total count of entity for the given entity type'
27
- )
@@ -1,27 +0,0 @@
1
- # generated by datamodel-codegen:
2
- # filename: dataInsight/type/totalEntitiesByType.json
3
- # timestamp: 2024-08-16T17:41:32+00:00
4
-
5
- from __future__ import annotations
6
-
7
- from typing import Optional
8
-
9
- from pydantic import BaseModel, Extra, Field, confloat
10
-
11
- from ...type import basic
12
-
13
-
14
- class TotalEntitiesByType(BaseModel):
15
- class Config:
16
- extra = Extra.forbid
17
-
18
- timestamp: Optional[basic.Timestamp] = Field(None, description='timestamp')
19
- entityType: Optional[str] = Field(
20
- None, description='Type of entity. Derived from the entity class.'
21
- )
22
- entityCount: Optional[float] = Field(
23
- None, description='Total count of entity for the given entity type'
24
- )
25
- entityCountFraction: Optional[confloat(ge=0.0, le=1.0)] = Field(
26
- None, description='Total count of entity for the given entity type'
27
- )