openmetadata-ingestion 1.4.4.0rc1__py3-none-any.whl → 1.4.4.2__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 (572) hide show
  1. metadata/generated/schema/analytics/__init__.py +1 -1
  2. metadata/generated/schema/analytics/basic.py +1 -1
  3. metadata/generated/schema/analytics/reportData.py +1 -1
  4. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  5. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  6. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  7. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  8. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  10. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  11. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  12. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  13. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  14. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  15. metadata/generated/schema/api/__init__.py +1 -1
  16. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  17. metadata/generated/schema/api/analytics/__init__.py +1 -1
  18. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  19. metadata/generated/schema/api/automations/__init__.py +1 -1
  20. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  21. metadata/generated/schema/api/bulkAssets.py +1 -1
  22. metadata/generated/schema/api/classification/__init__.py +1 -1
  23. metadata/generated/schema/api/classification/createClassification.py +1 -1
  24. metadata/generated/schema/api/classification/createTag.py +1 -1
  25. metadata/generated/schema/api/classification/loadTags.py +1 -1
  26. metadata/generated/schema/api/createBot.py +1 -1
  27. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  28. metadata/generated/schema/api/createType.py +1 -1
  29. metadata/generated/schema/api/data/__init__.py +1 -1
  30. metadata/generated/schema/api/data/createChart.py +1 -1
  31. metadata/generated/schema/api/data/createContainer.py +1 -1
  32. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  33. metadata/generated/schema/api/data/createDashboard.py +1 -1
  34. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  35. metadata/generated/schema/api/data/createDatabase.py +1 -1
  36. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  37. metadata/generated/schema/api/data/createGlossary.py +1 -1
  38. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  39. metadata/generated/schema/api/data/createMlModel.py +1 -1
  40. metadata/generated/schema/api/data/createPipeline.py +1 -1
  41. metadata/generated/schema/api/data/createQuery.py +1 -1
  42. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  43. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  44. metadata/generated/schema/api/data/createTable.py +1 -1
  45. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  46. metadata/generated/schema/api/data/createTopic.py +1 -1
  47. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  48. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  49. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  50. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  51. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  52. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  53. metadata/generated/schema/api/docStore/__init__.py +1 -1
  54. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  55. metadata/generated/schema/api/domains/__init__.py +1 -1
  56. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  57. metadata/generated/schema/api/domains/createDomain.py +1 -1
  58. metadata/generated/schema/api/feed/__init__.py +1 -1
  59. metadata/generated/schema/api/feed/closeTask.py +1 -1
  60. metadata/generated/schema/api/feed/createPost.py +1 -1
  61. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  62. metadata/generated/schema/api/feed/createThread.py +1 -1
  63. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  64. metadata/generated/schema/api/feed/threadCount.py +1 -1
  65. metadata/generated/schema/api/lineage/__init__.py +1 -1
  66. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  67. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  68. metadata/generated/schema/api/policies/__init__.py +1 -1
  69. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  70. metadata/generated/schema/api/services/__init__.py +1 -1
  71. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  72. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  73. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  74. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  75. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  76. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  77. metadata/generated/schema/api/services/createSearchService.py +1 -1
  78. metadata/generated/schema/api/services/createStorageService.py +1 -1
  79. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  80. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  81. metadata/generated/schema/api/setOwner.py +1 -1
  82. metadata/generated/schema/api/teams/__init__.py +1 -1
  83. metadata/generated/schema/api/teams/createPersona.py +1 -1
  84. metadata/generated/schema/api/teams/createRole.py +1 -1
  85. metadata/generated/schema/api/teams/createTeam.py +1 -1
  86. metadata/generated/schema/api/teams/createUser.py +1 -1
  87. metadata/generated/schema/api/tests/__init__.py +1 -1
  88. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  89. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  90. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  91. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  92. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  93. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  94. metadata/generated/schema/api/voteRequest.py +1 -1
  95. metadata/generated/schema/auth/__init__.py +1 -1
  96. metadata/generated/schema/auth/basicAuth.py +1 -1
  97. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  98. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  99. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  100. metadata/generated/schema/auth/emailRequest.py +1 -1
  101. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  102. metadata/generated/schema/auth/generateToken.py +1 -1
  103. metadata/generated/schema/auth/jwtAuth.py +1 -1
  104. metadata/generated/schema/auth/loginRequest.py +1 -1
  105. metadata/generated/schema/auth/logoutRequest.py +1 -1
  106. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  107. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  108. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  109. metadata/generated/schema/auth/refreshToken.py +1 -1
  110. metadata/generated/schema/auth/registrationRequest.py +1 -1
  111. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  112. metadata/generated/schema/auth/revokeToken.py +1 -1
  113. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  114. metadata/generated/schema/auth/ssoAuth.py +1 -1
  115. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  116. metadata/generated/schema/configuration/__init__.py +1 -1
  117. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  118. metadata/generated/schema/configuration/authConfig.py +1 -1
  119. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  120. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  121. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  122. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  123. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  124. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  125. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  126. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  127. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  128. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  129. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  130. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  131. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  132. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  133. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  134. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  135. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  136. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  137. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  138. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  139. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  140. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  141. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  143. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  144. metadata/generated/schema/dataInsight/__init__.py +1 -1
  145. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  146. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  147. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  148. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  149. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  150. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  151. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  152. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  153. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  154. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  155. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  156. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  157. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  158. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  159. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
  160. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  161. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  162. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  163. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  164. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  165. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  166. metadata/generated/schema/email/__init__.py +1 -1
  167. metadata/generated/schema/email/emailRequest.py +1 -1
  168. metadata/generated/schema/email/smtpSettings.py +1 -1
  169. metadata/generated/schema/entity/__init__.py +1 -1
  170. metadata/generated/schema/entity/applications/__init__.py +1 -1
  171. metadata/generated/schema/entity/applications/app.py +1 -1
  172. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  173. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  174. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  175. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  176. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  177. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  178. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  179. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  180. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  181. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  182. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  183. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  184. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  185. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  186. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  187. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  188. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  189. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  190. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
  191. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  192. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  193. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  194. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  195. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  196. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  197. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  198. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  199. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  200. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  201. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  202. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  203. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  204. metadata/generated/schema/entity/automations/__init__.py +1 -1
  205. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  206. metadata/generated/schema/entity/automations/workflow.py +1 -1
  207. metadata/generated/schema/entity/bot.py +1 -1
  208. metadata/generated/schema/entity/classification/__init__.py +1 -1
  209. metadata/generated/schema/entity/classification/classification.py +1 -1
  210. metadata/generated/schema/entity/classification/tag.py +1 -1
  211. metadata/generated/schema/entity/data/__init__.py +1 -1
  212. metadata/generated/schema/entity/data/chart.py +1 -1
  213. metadata/generated/schema/entity/data/container.py +1 -1
  214. metadata/generated/schema/entity/data/dashboard.py +1 -1
  215. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  216. metadata/generated/schema/entity/data/database.py +1 -1
  217. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  218. metadata/generated/schema/entity/data/glossary.py +1 -1
  219. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  220. metadata/generated/schema/entity/data/metrics.py +1 -1
  221. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  222. metadata/generated/schema/entity/data/pipeline.py +1 -1
  223. metadata/generated/schema/entity/data/query.py +1 -1
  224. metadata/generated/schema/entity/data/report.py +1 -1
  225. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  226. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  227. metadata/generated/schema/entity/data/table.py +1 -1
  228. metadata/generated/schema/entity/data/topic.py +1 -1
  229. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  230. metadata/generated/schema/entity/docStore/document.py +1 -1
  231. metadata/generated/schema/entity/domains/__init__.py +1 -1
  232. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  233. metadata/generated/schema/entity/domains/domain.py +4 -1
  234. metadata/generated/schema/entity/events/__init__.py +1 -1
  235. metadata/generated/schema/entity/events/webhook.py +1 -1
  236. metadata/generated/schema/entity/feed/__init__.py +1 -1
  237. metadata/generated/schema/entity/feed/assets.py +1 -1
  238. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  239. metadata/generated/schema/entity/feed/description.py +1 -1
  240. metadata/generated/schema/entity/feed/domain.py +1 -1
  241. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  242. metadata/generated/schema/entity/feed/owner.py +1 -1
  243. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  244. metadata/generated/schema/entity/feed/tag.py +1 -1
  245. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  246. metadata/generated/schema/entity/feed/thread.py +1 -1
  247. metadata/generated/schema/entity/policies/__init__.py +1 -1
  248. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  249. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  250. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  251. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  252. metadata/generated/schema/entity/policies/filters.py +1 -1
  253. metadata/generated/schema/entity/policies/policy.py +1 -1
  254. metadata/generated/schema/entity/services/__init__.py +1 -1
  255. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  256. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  257. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  258. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  259. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  260. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  261. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  262. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  263. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  264. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  265. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  266. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  267. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  268. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  269. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  270. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  271. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  272. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  273. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  274. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  275. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  276. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  277. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  278. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  279. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  280. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  281. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  282. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  283. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  284. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  285. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  286. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  287. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  288. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  289. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  290. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  291. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  292. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  293. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  294. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  295. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  296. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  297. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  298. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  299. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  302. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  303. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  304. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  306. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  307. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  308. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  309. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  310. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  314. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  315. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  324. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  325. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  326. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  327. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  328. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  329. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  330. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  332. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  334. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +99 -0
  337. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  341. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  347. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  348. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  354. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  359. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  374. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  376. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  377. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  378. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  382. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  387. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  388. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  389. metadata/generated/schema/entity/services/databaseService.py +4 -1
  390. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  391. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  392. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  393. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  394. metadata/generated/schema/entity/services/messagingService.py +1 -1
  395. metadata/generated/schema/entity/services/metadataService.py +1 -1
  396. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  397. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  398. metadata/generated/schema/entity/services/searchService.py +1 -1
  399. metadata/generated/schema/entity/services/serviceType.py +1 -1
  400. metadata/generated/schema/entity/services/storageService.py +1 -1
  401. metadata/generated/schema/entity/teams/__init__.py +1 -1
  402. metadata/generated/schema/entity/teams/persona.py +1 -1
  403. metadata/generated/schema/entity/teams/role.py +1 -1
  404. metadata/generated/schema/entity/teams/team.py +1 -1
  405. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  406. metadata/generated/schema/entity/teams/user.py +1 -1
  407. metadata/generated/schema/entity/type.py +1 -1
  408. metadata/generated/schema/entity/utils/__init__.py +1 -1
  409. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  410. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  411. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  412. metadata/generated/schema/events/__init__.py +1 -1
  413. metadata/generated/schema/events/alertMetrics.py +1 -1
  414. metadata/generated/schema/events/api/__init__.py +1 -1
  415. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  416. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  417. metadata/generated/schema/events/eventFilterRule.py +1 -1
  418. metadata/generated/schema/events/eventSubscription.py +1 -1
  419. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  420. metadata/generated/schema/events/failedEvent.py +1 -1
  421. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  422. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  423. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  424. metadata/generated/schema/metadataIngestion/application.py +1 -1
  425. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  426. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  427. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  428. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  429. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  430. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  431. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  432. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  433. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  434. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  435. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  436. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  437. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  438. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  439. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  440. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  441. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  442. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  443. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  444. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  445. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  446. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  447. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  448. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  449. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  450. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  451. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  452. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  453. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  454. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  455. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  456. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  457. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  458. metadata/generated/schema/monitoring/__init__.py +1 -1
  459. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  460. metadata/generated/schema/security/__init__.py +1 -1
  461. metadata/generated/schema/security/client/__init__.py +1 -1
  462. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  463. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  464. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  465. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  466. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  467. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  468. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  469. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  470. metadata/generated/schema/security/credentials/__init__.py +1 -1
  471. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  472. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  473. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  474. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  475. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  476. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  477. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  478. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  479. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  480. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  481. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  482. metadata/generated/schema/security/secrets/__init__.py +1 -1
  483. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  484. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  485. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  486. metadata/generated/schema/security/securityConfiguration.py +1 -1
  487. metadata/generated/schema/security/ssl/__init__.py +1 -1
  488. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  489. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  490. metadata/generated/schema/settings/__init__.py +1 -1
  491. metadata/generated/schema/settings/settings.py +1 -1
  492. metadata/generated/schema/system/__init__.py +1 -1
  493. metadata/generated/schema/system/entityError.py +1 -1
  494. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  495. metadata/generated/schema/system/indexingError.py +1 -1
  496. metadata/generated/schema/system/ui/__init__.py +1 -1
  497. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  498. metadata/generated/schema/system/ui/page.py +1 -1
  499. metadata/generated/schema/system/validationResponse.py +1 -1
  500. metadata/generated/schema/tests/__init__.py +1 -1
  501. metadata/generated/schema/tests/assigned.py +1 -1
  502. metadata/generated/schema/tests/basic.py +1 -1
  503. metadata/generated/schema/tests/customMetric.py +1 -1
  504. metadata/generated/schema/tests/resolved.py +1 -1
  505. metadata/generated/schema/tests/testCase.py +1 -1
  506. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  507. metadata/generated/schema/tests/testDefinition.py +1 -1
  508. metadata/generated/schema/tests/testSuite.py +1 -1
  509. metadata/generated/schema/type/__init__.py +1 -1
  510. metadata/generated/schema/type/auditLog.py +1 -1
  511. metadata/generated/schema/type/basic.py +1 -1
  512. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  513. metadata/generated/schema/type/changeEvent.py +1 -1
  514. metadata/generated/schema/type/changeEventType.py +1 -1
  515. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  516. metadata/generated/schema/type/csvDocumentation.py +1 -1
  517. metadata/generated/schema/type/csvErrorType.py +1 -1
  518. metadata/generated/schema/type/csvFile.py +1 -1
  519. metadata/generated/schema/type/csvImportResult.py +1 -1
  520. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  521. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  522. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  523. metadata/generated/schema/type/customProperty.py +1 -1
  524. metadata/generated/schema/type/dailyCount.py +1 -1
  525. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  526. metadata/generated/schema/type/entityHierarchy.py +1 -1
  527. metadata/generated/schema/type/entityHistory.py +1 -1
  528. metadata/generated/schema/type/entityLineage.py +1 -1
  529. metadata/generated/schema/type/entityReference.py +1 -1
  530. metadata/generated/schema/type/entityReferenceList.py +1 -1
  531. metadata/generated/schema/type/entityRelationship.py +1 -1
  532. metadata/generated/schema/type/entityUsage.py +1 -1
  533. metadata/generated/schema/type/filterPattern.py +1 -1
  534. metadata/generated/schema/type/function.py +1 -1
  535. metadata/generated/schema/type/include.py +1 -1
  536. metadata/generated/schema/type/jdbcConnection.py +1 -1
  537. metadata/generated/schema/type/lifeCycle.py +1 -1
  538. metadata/generated/schema/type/paging.py +1 -1
  539. metadata/generated/schema/type/profile.py +1 -1
  540. metadata/generated/schema/type/queryParserData.py +1 -1
  541. metadata/generated/schema/type/reaction.py +1 -1
  542. metadata/generated/schema/type/schedule.py +1 -1
  543. metadata/generated/schema/type/schema.py +1 -1
  544. metadata/generated/schema/type/tableQuery.py +1 -1
  545. metadata/generated/schema/type/tableUsageCount.py +1 -1
  546. metadata/generated/schema/type/tagLabel.py +3 -3
  547. metadata/generated/schema/type/usageDetails.py +1 -1
  548. metadata/generated/schema/type/usageRequest.py +1 -1
  549. metadata/generated/schema/type/votes.py +1 -1
  550. metadata/ingestion/lineage/models.py +4 -0
  551. metadata/ingestion/source/dashboard/qlikcloud/client.py +27 -11
  552. metadata/ingestion/source/dashboard/qlikcloud/connection.py +1 -4
  553. metadata/ingestion/source/dashboard/qlikcloud/metadata.py +2 -2
  554. metadata/ingestion/source/dashboard/qlikcloud/models.py +11 -2
  555. metadata/ingestion/source/database/azuresql/connection.py +4 -2
  556. metadata/ingestion/source/database/column_type_parser.py +11 -0
  557. metadata/ingestion/source/database/teradata/__init__.py +0 -0
  558. metadata/ingestion/source/database/teradata/connection.py +98 -0
  559. metadata/ingestion/source/database/teradata/metadata.py +148 -0
  560. metadata/ingestion/source/database/teradata/models.py +22 -0
  561. metadata/ingestion/source/database/teradata/queries.py +77 -0
  562. metadata/ingestion/source/database/teradata/utils.py +34 -0
  563. metadata/ingestion/source/storage/s3/metadata.py +37 -0
  564. metadata/ingestion/source/storage/s3/models.py +6 -6
  565. metadata/ingestion/source/storage/storage_service.py +1 -1
  566. metadata/utils/credentials.py +10 -1
  567. {openmetadata_ingestion-1.4.4.0rc1.dist-info → openmetadata_ingestion-1.4.4.2.dist-info}/METADATA +292 -288
  568. {openmetadata_ingestion-1.4.4.0rc1.dist-info → openmetadata_ingestion-1.4.4.2.dist-info}/RECORD +572 -565
  569. {openmetadata_ingestion-1.4.4.0rc1.dist-info → openmetadata_ingestion-1.4.4.2.dist-info}/LICENSE +0 -0
  570. {openmetadata_ingestion-1.4.4.0rc1.dist-info → openmetadata_ingestion-1.4.4.2.dist-info}/WHEEL +0 -0
  571. {openmetadata_ingestion-1.4.4.0rc1.dist-info → openmetadata_ingestion-1.4.4.2.dist-info}/entry_points.txt +0 -0
  572. {openmetadata_ingestion-1.4.4.0rc1.dist-info → openmetadata_ingestion-1.4.4.2.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/usageRequest.json
3
- # timestamp: 2024-06-26T06:28:13+00:00
3
+ # timestamp: 2024-07-09T05:45:21+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/votes.json
3
- # timestamp: 2024-06-26T06:28:13+00:00
3
+ # timestamp: 2024-07-09T05:45:21+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -64,6 +64,9 @@ from metadata.generated.schema.entity.services.connections.database.snowflakeCon
64
64
  from metadata.generated.schema.entity.services.connections.database.sqliteConnection import (
65
65
  SQLiteType,
66
66
  )
67
+ from metadata.generated.schema.entity.services.connections.database.teradataConnection import (
68
+ TeradataType,
69
+ )
67
70
  from metadata.utils.singleton import Singleton
68
71
 
69
72
 
@@ -112,6 +115,7 @@ MAP_CONNECTION_TYPE_DIALECT: Dict[str, Dialect] = {
112
115
  str(SQLiteType.SQLite.value): Dialect.SQLITE,
113
116
  str(MssqlType.Mssql.value): Dialect.TSQL,
114
117
  str(AzureSQLType.AzureSQL.value): Dialect.TSQL,
118
+ str(TeradataType.Teradata.value): Dialect.TERADATA,
115
119
  }
116
120
 
117
121
 
@@ -13,7 +13,7 @@ REST Auth & Client for QlikCloud
13
13
  """
14
14
  import json
15
15
  import traceback
16
- from typing import Dict, List, Optional
16
+ from typing import Dict, Iterable, List, Optional
17
17
 
18
18
  from metadata.generated.schema.entity.services.connections.dashboard.qlikCloudConnection import (
19
19
  QlikCloudConnection,
@@ -26,7 +26,10 @@ from metadata.ingestion.source.dashboard.qlikcloud.constants import (
26
26
  GET_SHEET_LAYOUT,
27
27
  OPEN_DOC_REQ,
28
28
  )
29
- from metadata.ingestion.source.dashboard.qlikcloud.models import QlikApp, QlikAppList
29
+ from metadata.ingestion.source.dashboard.qlikcloud.models import (
30
+ QlikApp,
31
+ QlikAppResponse,
32
+ )
30
33
  from metadata.ingestion.source.dashboard.qliksense.models import (
31
34
  QlikDataModelResult,
32
35
  QlikSheet,
@@ -40,6 +43,7 @@ from metadata.utils.logger import ingestion_logger
40
43
  logger = ingestion_logger()
41
44
 
42
45
  API_VERSION = "api"
46
+ API_LIMIT = 100
43
47
 
44
48
 
45
49
  class QlikCloudClient:
@@ -53,13 +57,12 @@ class QlikCloudClient:
53
57
  ):
54
58
  self.config = config
55
59
  self.socket_connection = None
56
- self.config.token = self.config.token.get_secret_value()
57
60
 
58
61
  client_config: ClientConfig = ClientConfig(
59
62
  base_url=self.config.hostPort,
60
63
  api_version=API_VERSION,
61
64
  auth_header=AUTHORIZATION_HEADER,
62
- auth_token=lambda: (self.config.token, 0),
65
+ auth_token=lambda: (self.config.token.get_secret_value(), 0),
63
66
  )
64
67
  self.client = REST(client_config)
65
68
 
@@ -77,7 +80,7 @@ class QlikCloudClient:
77
80
  self.socket_connection = create_connection(
78
81
  f"wss://{clean_uri(self.config.hostPort.host)}/app/{dashboard_id or ''}",
79
82
  sslopt={"cert_reqs": ssl.CERT_NONE},
80
- header={"Authorization": f"Bearer {self.config.token}"},
83
+ header={"Authorization": f"Bearer {self.config.token.get_secret_value()}"},
81
84
  )
82
85
  self.socket_connection.recv()
83
86
 
@@ -117,19 +120,32 @@ class QlikCloudClient:
117
120
  logger.warning("Failed to fetch the dashboard charts")
118
121
  return []
119
122
 
120
- def get_dashboards_list(self) -> List[QlikAppList]:
123
+ def get_dashboards_list(self) -> Iterable[QlikApp]:
121
124
  """
122
125
  Get List of all apps
123
126
  """
124
127
  try:
125
- resp_apps = self.client.get("/v1/items?resourceType=app")
126
- if resp_apps:
127
- app_list = QlikAppList(apps=resp_apps.get("data", []))
128
- return app_list.apps
128
+ link = f"/v1/items?resourceType=app&limit={API_LIMIT}"
129
+ while True:
130
+ resp_apps = self.client.get(link)
131
+ if resp_apps:
132
+ resp = QlikAppResponse(**resp_apps)
133
+ yield from resp.apps
134
+ if resp.links and resp.links.next and resp.links.next.href:
135
+ link = resp.links.next.href.replace(
136
+ f"{self.config.hostPort}{API_VERSION}", ""
137
+ )
138
+ else:
139
+ break
129
140
  except Exception:
130
141
  logger.debug(traceback.format_exc())
131
142
  logger.warning("Failed to fetch the app list")
132
- return []
143
+
144
+ def get_dashboards_list_test_conn(self) -> Iterable[QlikApp]:
145
+ resp_apps = self.client.get("/v1/items?resourceType=app")
146
+ if resp_apps:
147
+ resp = QlikAppResponse(**resp_apps)
148
+ yield from resp.apps
133
149
 
134
150
  def get_dashboard_details(self, dashboard_id: str) -> Optional[QlikApp]:
135
151
  """
@@ -43,10 +43,7 @@ def test_connection(
43
43
  of a metadata workflow or during an Automation Workflow
44
44
  """
45
45
 
46
- def custom_executor():
47
- return client.get_dashboards_list()
48
-
49
- test_fn = {"GetDashboards": custom_executor}
46
+ test_fn = {"GetDashboards": client.get_dashboards_list_test_conn}
50
47
 
51
48
  test_connection_steps(
52
49
  metadata=metadata,
@@ -36,7 +36,7 @@ from metadata.ingestion.api.models import Either
36
36
  from metadata.ingestion.api.steps import InvalidSourceException
37
37
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
38
38
  from metadata.ingestion.source.dashboard.qlikcloud.client import QlikCloudClient
39
- from metadata.ingestion.source.dashboard.qlikcloud.models import QlikApp, QlikAppList
39
+ from metadata.ingestion.source.dashboard.qlikcloud.models import QlikApp
40
40
  from metadata.ingestion.source.dashboard.qliksense.metadata import QliksenseSource
41
41
  from metadata.ingestion.source.dashboard.qliksense.models import QlikTable
42
42
  from metadata.utils import fqn
@@ -74,7 +74,7 @@ class QlikcloudSource(QliksenseSource):
74
74
  metadata: OpenMetadata,
75
75
  ):
76
76
  super().__init__(config, metadata)
77
- self.collections: List[QlikAppList] = []
77
+ self.collections: List[QlikApp] = []
78
78
  self.data_models: List[QlikTable] = []
79
79
 
80
80
  def filter_draft_dashboard(self, dashboard: QlikApp) -> bool:
@@ -27,7 +27,16 @@ class QlikApp(BaseModel):
27
27
  published: Optional[bool]
28
28
 
29
29
 
30
- class QlikAppList(BaseModel):
30
+ class QlikLink(BaseModel):
31
+ href: Optional[str] = None
32
+
33
+
34
+ class QlikLinks(BaseModel):
35
+ next: Optional[QlikLink] = None
36
+
37
+
38
+ class QlikAppResponse(BaseModel):
31
39
  """QlikCloud Apps List"""
32
40
 
33
- apps: Optional[List[QlikApp]]
41
+ apps: Optional[List[QlikApp]] = Field(None, alias="data")
42
+ links: Optional[QlikLinks] = None
@@ -22,6 +22,7 @@ from metadata.generated.schema.entity.automations.workflow import (
22
22
  )
23
23
  from metadata.generated.schema.entity.services.connections.database.azureSQLConnection import (
24
24
  Authentication,
25
+ AuthenticationMode,
25
26
  AzureSQLConnection,
26
27
  )
27
28
  from metadata.generated.schema.entity.services.connections.database.mssqlConnection import (
@@ -42,7 +43,8 @@ def get_connection_url(connection: Union[AzureSQLConnection, MssqlConnection]) -
42
43
  """
43
44
 
44
45
  if (
45
- hasattr(connection.authenticationMode, "authentication")
46
+ isinstance(connection, AzureSQLConnection)
47
+ and isinstance(connection.authenticationMode, AuthenticationMode)
46
48
  and connection.authenticationMode.authentication is not None
47
49
  ):
48
50
  connection_string = f"Driver={connection.driver};Server={connection.hostPort};Database={connection.database};"
@@ -82,7 +84,7 @@ def get_connection_url(connection: Union[AzureSQLConnection, MssqlConnection]) -
82
84
  params = "&".join(
83
85
  f"{key}={quote_plus(value)}" for key, value in options.items() if value
84
86
  )
85
- url = f"{url}?{params}"
87
+ url = f"{url}&{params}"
86
88
 
87
89
  return url
88
90
 
@@ -291,6 +291,17 @@ class ColumnTypeParser:
291
291
  except ImportError:
292
292
  pass
293
293
 
294
+ try:
295
+ # pylint: disable=import-outside-toplevel
296
+ from teradatasqlalchemy import BYTE, VARBYTE
297
+
298
+ _COLUMN_TYPE_MAPPING[BYTE] = "BINARY"
299
+ _SOURCE_TYPE_TO_OM_TYPE["BYTE"] = "BINARY"
300
+ _COLUMN_TYPE_MAPPING[VARBYTE] = "VARBINARY"
301
+ _SOURCE_TYPE_TO_OM_TYPE["VARBYTE"] = "VARBINARY"
302
+ except ImportError:
303
+ pass
304
+
294
305
  @staticmethod
295
306
  def get_column_type(column_type: Any) -> str:
296
307
  for func in [
@@ -0,0 +1,98 @@
1
+ # Copyright 2021 Collate
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """
13
+ Source connection handler
14
+ """
15
+ import enum
16
+ from typing import Optional
17
+ from urllib.parse import quote_plus
18
+
19
+ from sqlalchemy.engine import Engine
20
+
21
+ from metadata.generated.schema.entity.automations.workflow import (
22
+ Workflow as AutomationWorkflow,
23
+ )
24
+ from metadata.generated.schema.entity.services.connections.database.teradataConnection import (
25
+ TeradataConnection,
26
+ )
27
+ from metadata.ingestion.connections.builders import (
28
+ create_generic_db_connection,
29
+ get_connection_args_common,
30
+ get_connection_options_dict,
31
+ )
32
+ from metadata.ingestion.connections.test_connections import test_connection_db_common
33
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
34
+ from metadata.ingestion.source.database.teradata.queries import TERADATA_GET_DATABASE
35
+
36
+
37
+ def get_connection_url(connection: TeradataConnection) -> str:
38
+ """
39
+ Create Teradtaa connection url
40
+ """
41
+ url = f"{connection.scheme.value}://{connection.hostPort}/"
42
+ url += f"?user={quote_plus(connection.username)}"
43
+ if connection.password:
44
+ url += f"&password={quote_plus(connection.password.get_secret_value())}"
45
+
46
+ # add standard options
47
+ params = "&".join(
48
+ [
49
+ f"{key}={quote_plus(str(getattr(connection, key) if not isinstance(getattr(connection, key), enum.Enum) else getattr(connection, key).value))}"
50
+ for key in ["account", "logdata", "logmech", "tmode"]
51
+ if getattr(connection, key, None)
52
+ ]
53
+ )
54
+ url = f"{url}&{params}"
55
+
56
+ # add additional options if specified
57
+ options = get_connection_options_dict(connection)
58
+ if options:
59
+ params = "&".join(
60
+ f"{key}={quote_plus(str(value if not isinstance(value, enum.Enum) else value.value))}"
61
+ for (key, value) in options.items()
62
+ if value
63
+ )
64
+ url += f"{url}&{params}"
65
+
66
+ return url
67
+
68
+
69
+ def get_connection(connection: TeradataConnection) -> Engine:
70
+ """
71
+ Create connection
72
+ """
73
+ return create_generic_db_connection(
74
+ connection=connection,
75
+ get_connection_url_fn=get_connection_url,
76
+ get_connection_args_fn=get_connection_args_common,
77
+ )
78
+
79
+
80
+ def test_connection(
81
+ metadata: OpenMetadata,
82
+ engine: Engine,
83
+ service_connection: TeradataConnection,
84
+ automation_workflow: Optional[AutomationWorkflow] = None,
85
+ ) -> None:
86
+ """
87
+ Test connection. This can be executed either as part
88
+ of a metadata workflow or during an Automation Workflow
89
+ """
90
+ queries = {"GetDatabases": TERADATA_GET_DATABASE}
91
+
92
+ test_connection_db_common(
93
+ metadata=metadata,
94
+ engine=engine,
95
+ service_connection=service_connection,
96
+ automation_workflow=automation_workflow,
97
+ queries=queries,
98
+ )
@@ -0,0 +1,148 @@
1
+ # Copyright 2021 Collate
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ """
13
+ Teradata source implementation.
14
+ """
15
+ import traceback
16
+ from typing import Iterable, Optional
17
+
18
+ from teradatasqlalchemy.dialect import TeradataDialect
19
+
20
+ from metadata.generated.schema.api.data.createStoredProcedure import (
21
+ CreateStoredProcedureRequest,
22
+ )
23
+ from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
24
+ from metadata.generated.schema.entity.data.storedProcedure import StoredProcedureCode
25
+ from metadata.generated.schema.entity.services.connections.database.teradataConnection import (
26
+ TeradataConnection,
27
+ )
28
+ from metadata.generated.schema.entity.services.ingestionPipelines.status import (
29
+ StackTraceError,
30
+ )
31
+ from metadata.generated.schema.metadataIngestion.workflow import (
32
+ Source as WorkflowSource,
33
+ )
34
+ from metadata.generated.schema.type.basic import EntityName
35
+ from metadata.ingestion.api.models import Either
36
+ from metadata.ingestion.api.steps import InvalidSourceException
37
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
38
+ from metadata.ingestion.source.database.common_db_source import CommonDbSourceService
39
+ from metadata.ingestion.source.database.teradata.models import (
40
+ STORED_PROC_LANGUAGE_MAP,
41
+ TeradataStoredProcedure,
42
+ )
43
+ from metadata.ingestion.source.database.teradata.queries import (
44
+ TERADATA_GET_STORED_PROCEDURES,
45
+ TERADATA_SHOW_STORED_PROCEDURE,
46
+ )
47
+ from metadata.ingestion.source.database.teradata.utils import get_table_comment
48
+ from metadata.utils import fqn
49
+ from metadata.utils.logger import ingestion_logger
50
+ from metadata.utils.sqlalchemy_utils import get_all_table_comments
51
+
52
+ logger = ingestion_logger()
53
+
54
+ TeradataDialect.get_table_comment = get_table_comment
55
+ TeradataDialect.get_all_table_comments = get_all_table_comments
56
+
57
+
58
+ class TeradataSource(CommonDbSourceService):
59
+ """
60
+ Implements the necessary methods to extract
61
+ Database metadata from Teradata Source
62
+ """
63
+
64
+ @classmethod
65
+ def create(
66
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
67
+ ):
68
+ config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
69
+ connection = config.serviceConnection.__root__.config
70
+ if not isinstance(connection, TeradataConnection):
71
+ raise InvalidSourceException(
72
+ f"Expected TeradataConnection, but got {connection}"
73
+ )
74
+ return cls(config, metadata)
75
+
76
+ def get_stored_procedures(self) -> Iterable[TeradataStoredProcedure]:
77
+ """List Teradata stored procedures"""
78
+ if self.source_config.includeStoredProcedures:
79
+ results = self.engine.execute(
80
+ TERADATA_GET_STORED_PROCEDURES.format(
81
+ schema_name=self.context.get().database_schema,
82
+ )
83
+ ).all()
84
+ for row in results:
85
+ try:
86
+ stored_procedure = TeradataStoredProcedure.parse_obj(dict(row))
87
+ stored_procedure.definition = self.describe_procedure_definition(
88
+ stored_procedure
89
+ )
90
+ yield stored_procedure
91
+ except Exception as exc:
92
+ logger.error()
93
+ self.status.failed(
94
+ error=StackTraceError(
95
+ name=dict(row).get("name", "UNKNOWN"),
96
+ error=f"Error parsing Stored Procedure payload: {exc}",
97
+ stackTrace=traceback.format_exc(),
98
+ )
99
+ )
100
+
101
+ def describe_procedure_definition(
102
+ self, stored_procedure: TeradataStoredProcedure
103
+ ) -> str:
104
+ """
105
+ We can only get the SP definition via SHOW PROCEDURE
106
+ """
107
+ res = self.engine.execute(
108
+ TERADATA_SHOW_STORED_PROCEDURE.format(
109
+ schema_name=stored_procedure.database_schema,
110
+ procedure_name=stored_procedure.procedure_name,
111
+ )
112
+ )
113
+ return str(res.first()[0])
114
+
115
+ def yield_stored_procedure(
116
+ self, stored_procedure: TeradataStoredProcedure
117
+ ) -> Iterable[Either[CreateStoredProcedureRequest]]:
118
+ """Prepare the stored procedure payload"""
119
+
120
+ try:
121
+ stored_procedure_request = CreateStoredProcedureRequest(
122
+ name=EntityName(__root__=stored_procedure.procedure_name),
123
+ description=None,
124
+ storedProcedureCode=StoredProcedureCode(
125
+ language=STORED_PROC_LANGUAGE_MAP.get(
126
+ stored_procedure.procedure_type
127
+ ),
128
+ code=stored_procedure.definition,
129
+ ),
130
+ databaseSchema=fqn.build(
131
+ metadata=self.metadata,
132
+ entity_type=DatabaseSchema,
133
+ service_name=self.context.get().database_service,
134
+ database_name=self.context.get().database,
135
+ schema_name=stored_procedure.database_schema,
136
+ ),
137
+ )
138
+ yield Either(right=stored_procedure_request)
139
+ self.register_record_stored_proc_request(stored_procedure_request)
140
+
141
+ except Exception as exc:
142
+ yield Either(
143
+ left=StackTraceError(
144
+ name=stored_procedure.procedure_name,
145
+ error=f"Error yielding Stored Procedure [{stored_procedure.procedure_name}] due to [{exc}]",
146
+ stackTrace=traceback.format_exc(),
147
+ )
148
+ )
@@ -0,0 +1,22 @@
1
+ """
2
+ Teradata models
3
+ """
4
+ from typing import Optional
5
+
6
+ from pydantic import BaseModel, Field
7
+
8
+ from metadata.generated.schema.entity.data.storedProcedure import Language
9
+
10
+ STORED_PROC_LANGUAGE_MAP = {
11
+ "SQL": Language.SQL,
12
+ "EXTERNAL": Language.External,
13
+ }
14
+
15
+
16
+ class TeradataStoredProcedure(BaseModel):
17
+ """Teradata stored procedure list query results"""
18
+
19
+ procedure_name: str = Field(...)
20
+ database_schema: Optional[str] = Field(None)
21
+ procedure_type: str = Field(Language.SQL)
22
+ definition: str = Field(None)
@@ -0,0 +1,77 @@
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
+ SQL Queries used during ingestion
13
+ """
14
+
15
+ TERADATA_GET_TABLE_NAMES = """
16
+ SELECT tablename, databasename from dbc.tablesvx
17
+ WHERE DataBaseName = :schema AND TableKind in ('T','V','O')
18
+ """
19
+
20
+ TERADATA_TABLE_COMMENTS = """
21
+ SELECT DataBaseName as schema,
22
+ TableName as table_name,
23
+ CommentString as table_comment
24
+ FROM dbc.tablesvx
25
+ WHERE TableKind in ('T','V','O')
26
+ ORDER BY "schema", "table_name"
27
+ """
28
+
29
+ TERADATA_GET_STORED_PROCEDURES = """
30
+ SELECT T.DatabaseName AS database_schema,
31
+ T.TableName AS procedure_name,
32
+ case T.TableKind
33
+ when 'P' then 'SQL'
34
+ when 'E' then 'EXTERNAL'
35
+ END as procedure_type
36
+ FROM DBC.TablesVX T
37
+ WHERE T.TableKind in ('P', 'E')
38
+ and T.DatabaseName = '{schema_name}'
39
+ """
40
+
41
+ TERADATA_SHOW_STORED_PROCEDURE = """
42
+ SHOW PROCEDURE {schema_name}.{procedure_name};
43
+ """
44
+
45
+ TERADATA_VIEW_DEFINITIONS = """
46
+ select dbase.DatabaseNameI,
47
+ tvm.TVMNameI,
48
+ tvm.CreateText
49
+ from dbc.tvm tvm join DBC.Dbase dbase
50
+ on tvm.DatabaseId = dbase.DatabaseId
51
+ where TableKind in ('V')
52
+ AND tvm.tvmid NOT IN ( '00C001000000'xb, '00C002000000'xb,
53
+ '00C009000000'xb, '00C010000000'xb,
54
+ '00C017000000'xb, '000000000000'xb)
55
+ AND (tvm.tvmid IN
56
+ /* IDs of Tables accessible to the USER or *PUBLIC* */
57
+ (SELECT TVMId FROM DBC.View_UserTablesExtVX)
58
+ OR
59
+ dbase.DatabaseId IN
60
+ /* IDs of databases accessible to the USER or *PUBLIC* */
61
+ (SELECT DatabaseID FROM DBC.View_UserDBsExtVX)
62
+ )
63
+ """
64
+
65
+ TERADATA_GET_DATABASE = """
66
+ select databasename from dbc.databasesvx
67
+ """
68
+
69
+
70
+ TERADATA_GET_DB_NAMES = """
71
+ select databasename from dbc.databasesvx
72
+ """
73
+
74
+ TERADATA_GET_SERVER_VERSION = """
75
+ SELECT InfoData FROM dbc.dbcinfo
76
+ where InfoKey = 'VERSION'
77
+ """
@@ -0,0 +1,34 @@
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
+ Teradata SQLAlchemy Helper Methods
13
+ """
14
+
15
+ from sqlalchemy.engine import reflection
16
+
17
+ from metadata.ingestion.source.database.teradata.queries import TERADATA_TABLE_COMMENTS
18
+ from metadata.utils.logger import ingestion_logger
19
+ from metadata.utils.sqlalchemy_utils import get_table_comment_wrapper
20
+
21
+ logger = ingestion_logger()
22
+
23
+
24
+ @reflection.cache
25
+ def get_table_comment(
26
+ self, connection, table_name, schema=None, **kw
27
+ ): # pylint: disable=unused-argument
28
+ return get_table_comment_wrapper(
29
+ self,
30
+ connection,
31
+ table_name=table_name,
32
+ schema=schema,
33
+ query=TERADATA_TABLE_COMMENTS,
34
+ )
@@ -175,6 +175,18 @@ class S3Source(StorageServiceSource):
175
175
  yield Either(right=container_request)
176
176
  self.register_record(container_request=container_request)
177
177
 
178
+ def get_size(self, bucket_name: str, file_path: str) -> Optional[float]:
179
+ """
180
+ Method to get the size of the file
181
+ """
182
+ try:
183
+ file_obj = self.s3_client.head_object(Bucket=bucket_name, Key=file_path)
184
+ return file_obj["ContentLength"]
185
+ except Exception as exc:
186
+ logger.debug(f"Failed to get size of file due to {exc}")
187
+ logger.debug(traceback.format_exc())
188
+ return None
189
+
178
190
  def _generate_container_details(
179
191
  self,
180
192
  bucket_response: S3BucketResponse,
@@ -182,6 +194,31 @@ class S3Source(StorageServiceSource):
182
194
  parent: Optional[EntityReference] = None,
183
195
  ) -> Optional[S3ContainerDetails]:
184
196
  bucket_name = bucket_response.name
197
+ object_size = self.get_size(
198
+ bucket_name=bucket_name,
199
+ file_path=metadata_entry.dataPath.strip(KEY_SEPARATOR),
200
+ )
201
+ if not metadata_entry.structureFormat and object_size:
202
+ prefix = f"{KEY_SEPARATOR}{metadata_entry.dataPath.strip(KEY_SEPARATOR)}"
203
+ return S3ContainerDetails(
204
+ name=metadata_entry.dataPath.strip(KEY_SEPARATOR),
205
+ prefix=prefix,
206
+ creation_date=bucket_response.creation_date.isoformat()
207
+ if bucket_response.creation_date
208
+ else None,
209
+ file_formats=[],
210
+ data_model=None,
211
+ parent=parent,
212
+ size=self.get_size(
213
+ bucket_name=bucket_name,
214
+ file_path=metadata_entry.dataPath.strip(KEY_SEPARATOR),
215
+ ),
216
+ fullPath=self._get_full_path(bucket_name, prefix),
217
+ sourceUrl=self._get_object_source_url(
218
+ bucket_name=bucket_name,
219
+ prefix=metadata_entry.dataPath.strip(KEY_SEPARATOR),
220
+ ),
221
+ )
185
222
  sample_key = self._get_sample_file_path(
186
223
  bucket_name=bucket_name, metadata_entry=metadata_entry
187
224
  )