From e1a84f462d42542dcb8cfcd858ecaf6051da0ebc Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Tue, 3 Dec 2024 00:50:30 -0800 Subject: [PATCH 1/6] Run json2ts from maven --- openmetadata-ui/pom.xml | 21 +++++++++++++++++++ .../src/main/resources/ui/package.json | 5 ++--- .../main/resources/ui/webpack.config.prod.js | 1 + 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/openmetadata-ui/pom.xml b/openmetadata-ui/pom.xml index b93d17069eae..43256fe98e7e 100644 --- a/openmetadata-ui/pom.xml +++ b/openmetadata-ui/pom.xml @@ -151,6 +151,27 @@ + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + generate-typescript-from-json-schema + generate-resources + + exec + + + bash + ${project.basedir}/src/main/resources/ui + + json2ts.sh + + + + + maven-resources-plugin diff --git a/openmetadata-ui/src/main/resources/ui/package.json b/openmetadata-ui/src/main/resources/ui/package.json index 99c44c517055..c5a18614cd41 100644 --- a/openmetadata-ui/src/main/resources/ui/package.json +++ b/openmetadata-ui/src/main/resources/ui/package.json @@ -25,11 +25,10 @@ "lint": "eslint \"./**/*.{js,jsx,ts,tsx,json}\"", "lint:fix": "eslint './**/*.{js,jsx,ts,tsx,json}' --fix", "pretty": "prettier . --config './.prettierrc.yaml' --ignore-path './.prettierignore' --write", - "build-check": "yarn run json2ts && yarn run js-antlr && yarn run parse-schema", + "build-check": "yarn run js-antlr && yarn run parse-schema", "commit-check": "yarn run pretty && yarn run build", "license-header-check": "license-check-and-add check -f .licenseheaderrc.json", "license-header-fix": "license-check-and-add add -f .licenseheaderrc.json -r $(date +%Y)", - "json2ts": "sh json2ts.sh", "parse-schema": "node parseSchemas", "js-antlr": "PWD=$(echo $PWD) antlr4 -Dlanguage=JavaScript -o src/generated/antlr \"$PWD\"/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/*.g4", "i18n": "sync-i18n --files '**/locale/languages/*.json' --primary en-us --space 2 --fn", @@ -248,4 +247,4 @@ "jsonpath-plus": "10.0.7", "cross-spawn": "7.0.5" } -} \ No newline at end of file +} diff --git a/openmetadata-ui/src/main/resources/ui/webpack.config.prod.js b/openmetadata-ui/src/main/resources/ui/webpack.config.prod.js index e7d96fa21110..19e34f9cc23e 100644 --- a/openmetadata-ui/src/main/resources/ui/webpack.config.prod.js +++ b/openmetadata-ui/src/main/resources/ui/webpack.config.prod.js @@ -54,6 +54,7 @@ module.exports = { { test: /\.(ts|tsx)$/, loader: 'ts-loader', + exclude: [/node_modules/, /dist/], options: { configFile: 'tsconfig.json', transpileOnly: true, // Speed up compilation in development mode From d312e159e0a35525c051c9f50f24ed742fa7207c Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Tue, 3 Dec 2024 15:12:45 -0800 Subject: [PATCH 2/6] remove json2ts.sh script from maven build and move it to git precommit hook --- .gitignore | 4 +- openmetadata-ui/pom.xml | 29 +- .../src/main/resources/ui/.husky/pre-commit | 11 +- .../src/main/resources/ui/babel.config.json | 5 +- .../src/main/resources/ui/package.json | 4 + .../ui/src/generated/analytics/reportData.ts | 347 ++ .../aggregatedCostAnalysisReportData.ts | 108 + .../reportDataType/entityReportData.ts | 59 + .../rawCostAnalysisReportData.ts | 128 + .../webAnalyticEntityViewReportData.ts | 51 + .../webAnalyticUserActivityReportData.ts | 47 + .../generated/analytics/webAnalyticEvent.ts | 189 + .../analytics/webAnalyticEventData.ts | 107 + .../webAnalyticEventType/customEvent.ts | 53 + .../webAnalyticEventType/pageViewEvent.ts | 56 + .../ui/src/generated/antlr/EntityLink.interp | 28 + .../ui/src/generated/antlr/EntityLink.tokens | 9 + .../generated/antlr/EntityLinkLexer.interp | 35 + .../ui/src/generated/antlr/EntityLinkLexer.js | 693 +++ .../generated/antlr/EntityLinkLexer.tokens | 9 + .../src/generated/antlr/EntityLinkListener.js | 54 + .../src/generated/antlr/EntityLinkParser.js | 527 ++ .../ui/src/generated/antlr/Fqn.interp | 23 + .../ui/src/generated/antlr/Fqn.tokens | 7 + .../ui/src/generated/antlr/FqnLexer.interp | 32 + .../ui/src/generated/antlr/FqnLexer.js | 74 + .../ui/src/generated/antlr/FqnLexer.tokens | 7 + .../ui/src/generated/antlr/FqnListener.js | 36 + .../ui/src/generated/antlr/FqnParser.js | 276 + .../ui/src/generated/antlr/JdbcUri.interp | 49 + .../ui/src/generated/antlr/JdbcUri.tokens | 22 + .../src/generated/antlr/JdbcUriLexer.interp | 65 + .../ui/src/generated/antlr/JdbcUriLexer.js | 198 + .../src/generated/antlr/JdbcUriLexer.tokens | 22 + .../ui/src/generated/antlr/JdbcUriListener.js | 63 + .../ui/src/generated/antlr/JdbcUriParser.js | 647 +++ .../api/addGlossaryToAssetsRequest.ts | 186 + .../generated/api/addTagToAssetsRequest.ts | 95 + .../api/analytics/createWebAnalyticEvent.ts | 109 + .../api/automations/createWorkflow.ts | 3573 ++++++++++++ .../ui/src/generated/api/bulkAssets.ts | 79 + .../classification/createClassification.ts | 52 + .../generated/api/classification/createTag.ts | 81 + .../generated/api/classification/loadTags.ts | 118 + .../ui/src/generated/api/createBot.ts | 51 + .../generated/api/createEventPublisherJob.ts | 80 + .../ui/src/generated/api/createType.ts | 52 + .../generated/api/data/createAPICollection.ts | 261 + .../generated/api/data/createAPIEndpoint.ts | 384 ++ .../ui/src/generated/api/data/createChart.ts | 274 + .../src/generated/api/data/createContainer.ts | 685 +++ .../api/data/createCustomProperty.ts | 115 + .../src/generated/api/data/createDashboard.ts | 278 + .../api/data/createDashboardDataModel.ts | 679 +++ .../src/generated/api/data/createDatabase.ts | 267 + .../api/data/createDatabaseSchema.ts | 261 + .../src/generated/api/data/createGlossary.ts | 211 + .../generated/api/data/createGlossaryTerm.ts | 240 + .../ui/src/generated/api/data/createMetric.ts | 291 + .../src/generated/api/data/createMlModel.ts | 398 ++ .../src/generated/api/data/createPipeline.ts | 330 ++ .../ui/src/generated/api/data/createQuery.ts | 236 + .../generated/api/data/createSearchIndex.ts | 397 ++ .../api/data/createStoredProcedure.ts | 297 + .../ui/src/generated/api/data/createTable.ts | 928 ++++ .../generated/api/data/createTableProfile.ts | 262 + .../ui/src/generated/api/data/createTopic.ts | 395 ++ .../ui/src/generated/api/data/loadGlossary.ts | 293 + .../src/generated/api/data/restoreEntity.ts | 23 + .../api/dataInsight/createDataInsightChart.ts | 160 + .../custom/createDataInsightCustomChart.ts | 213 + .../api/dataInsight/kpi/createKpiRequest.ts | 130 + .../generated/api/docStore/createDocument.ts | 41 + .../api/domains/createDataProduct.ts | 127 + .../src/generated/api/domains/createDomain.ts | 134 + .../ui/src/generated/api/feed/closeTask.ts | 27 + .../ui/src/generated/api/feed/createPost.ts | 27 + .../generated/api/feed/createSuggestion.ts | 128 + .../ui/src/generated/api/feed/createThread.ts | 173 + .../ui/src/generated/api/feed/resolveTask.ts | 44 + .../ui/src/generated/api/feed/threadCount.ts | 40 + .../governance/createWorkflowInstanceState.ts | 23 + .../src/generated/api/lineage/addLineage.ts | 162 + .../api/openMetadataServerVersion.ts | 31 + .../generated/api/policies/createPolicy.ts | 195 + .../api/services/createApiService.ts | 239 + .../api/services/createDashboardService.ts | 1226 +++++ .../api/services/createDatabaseService.ts | 2008 +++++++ .../api/services/createMessagingService.ts | 395 ++ .../api/services/createMetadataService.ts | 895 +++ .../api/services/createMlModelService.ts | 422 ++ .../api/services/createPipelineService.ts | 971 ++++ .../api/services/createSearchService.ts | 363 ++ .../api/services/createStorageService.ts | 446 ++ .../createIngestionPipeline.ts | 1566 ++++++ .../ui/src/generated/api/setOwner.ts | 27 + .../src/generated/api/teams/createPersona.ts | 36 + .../ui/src/generated/api/teams/createRole.ts | 36 + .../ui/src/generated/api/teams/createTeam.ts | 231 + .../ui/src/generated/api/teams/createUser.ts | 501 ++ .../generated/api/tests/createCustomMetric.ts | 104 + .../api/tests/createLogicalTestCases.ts | 27 + .../src/generated/api/tests/createTestCase.ts | 125 + .../tests/createTestCaseResolutionStatus.ts | 152 + .../api/tests/createTestCaseResult.ts | 94 + .../api/tests/createTestDefinition.ts | 298 + .../generated/api/tests/createTestSuite.ts | 191 + .../ui/src/generated/auth/basicAuth.ts | 23 + .../src/generated/auth/basicLoginRequest.ts | 27 + .../generated/auth/changePasswordRequest.ts | 47 + .../src/generated/auth/createPersonalToken.ts | 37 + .../ui/src/generated/auth/emailRequest.ts | 23 + .../ui/src/generated/auth/generateToken.ts | 33 + .../ui/src/generated/auth/jwtAuth.ts | 41 + .../ui/src/generated/auth/loginRequest.ts | 27 + .../ui/src/generated/auth/logoutRequest.ts | 35 + .../generated/auth/passwordResetRequest.ts | 35 + .../src/generated/auth/passwordResetToken.ts | 55 + .../src/generated/auth/personalAccessToken.ts | 55 + .../ui/src/generated/auth/refreshToken.ts | 55 + .../src/generated/auth/registrationRequest.ts | 35 + .../src/generated/auth/revokePersonalToken.ts | 23 + .../ui/src/generated/auth/revokeToken.ts | 20 + .../ui/src/generated/auth/serviceTokenEnum.ts | 22 + .../ui/src/generated/auth/ssoAuth.ts | 237 + .../src/generated/auth/tokenRefreshRequest.ts | 23 + .../configuration/appsPrivateConfiguration.ts | 42 + .../assetCertificationSettings.ts | 27 + .../src/generated/configuration/authConfig.ts | 163 + .../authenticationConfiguration.ts | 494 ++ .../configuration/authorizerConfiguration.ts | 60 + .../configuration/changeEventConfiguration.ts | 20 + .../configuration/dataQualityConfiguration.ts | 23 + .../elasticSearchConfiguration.ts | 97 + .../eventHandlerConfiguration.ts | 23 + .../configuration/fernetConfiguration.ts | 23 + .../configuration/jwtTokenConfiguration.ts | 35 + .../configuration/kafkaEventConfiguration.ts | 83 + .../configuration/ldapConfiguration.ts | 195 + .../customTrustManagerConfig.ts | 39 + .../ldapTrustStoreConfig/hostNameConfig.ts | 27 + .../ldapTrustStoreConfig/jvmDefaultConfig.ts | 23 + .../ldapTrustStoreConfig/trustAllConfig.ts | 23 + .../ldapTrustStoreConfig/truststoreConfig.ts | 95 + .../configuration/limitsConfiguration.ts | 31 + .../configuration/lineageSettings.ts | 42 + .../configuration/loginConfiguration.ts | 31 + .../configuration/logoConfiguration.ts | 31 + .../pipelineServiceClientConfiguration.ts | 291 + .../configuration/profilerConfiguration.ts | 158 + .../generated/configuration/searchSettings.ts | 23 + .../configuration/slackAppConfiguration.ts | 32 + .../taskNotificationConfiguration.ts | 23 + .../testResultNotificationConfiguration.ts | 45 + .../configuration/themeConfiguration.ts | 39 + .../configuration/uiThemePreference.ts | 79 + .../custom/dataInsightCustomChart.ts | 291 + .../custom/dataInsightCustomChartResult.ts | 39 + .../dataInsightCustomChartResultList.ts | 69 + .../dataInsight/custom/formulaHolder.ts | 44 + .../generated/dataInsight/custom/lineChart.ts | 116 + .../dataInsight/custom/summaryCard.ts | 72 + .../generated/dataInsight/dataInsightChart.ts | 227 + .../dataInsight/dataInsightChartResult.ts | 247 + .../ui/src/generated/dataInsight/kpi/kpi.ts | 244 + .../type/aggregatedUnusedAssetsCount.ts | 61 + .../type/aggregatedUnusedAssetsSize.ts | 61 + .../type/aggregatedUsedVsUnusedAssetsCount.ts | 39 + .../type/aggregatedUsedVsUnusedAssetsSize.ts | 39 + .../dataInsight/type/dailyActiveUsers.ts | 27 + .../dataInsight/type/mostActiveUsers.ts | 47 + .../dataInsight/type/mostViewedEntities.ts | 39 + .../dataInsight/type/pageViewsByEntities.ts | 31 + .../dataInsight/type/unusedAssets.ts | 82 + .../ui/src/generated/email/emailRequest.ts | 67 + .../ui/src/generated/email/emailTemplate.ts | 41 + .../email/emailTemplatePlaceholder.ts | 27 + .../ui/src/generated/email/smtpSettings.ts | 69 + .../email/templateValidationReponse.ts | 35 + .../src/generated/entity/applications/app.ts | 1031 ++++ .../entity/applications/appExtension.ts | 42 + .../entity/applications/appRunRecord.ts | 98 + .../automator/addDescriptionAction.ts | 46 + .../external/automator/addDomainAction.ts | 92 + .../external/automator/addOwnerAction.ts | 97 + .../external/automator/addTagsAction.ts | 133 + .../external/automator/addTierAction.ts | 130 + .../automator/lineagePropagationAction.ts | 66 + .../external/automator/mlTaggingAction.ts | 32 + .../automator/removeDescriptionAction.ts | 37 + .../external/automator/removeDomainAction.ts | 32 + .../external/automator/removeOwnerAction.ts | 32 + .../external/automator/removeTagsAction.ts | 128 + .../external/automator/removeTierAction.ts | 32 + .../external/automatorAppConfig.ts | 355 ++ .../external/collateAIAppConfig.ts | 42 + .../external/slackAppTokenConfiguration.ts | 27 + .../internal/dataInsightsAppConfig.ts | 61 + .../internal/dataInsightsReportAppConfig.ts | 31 + .../internal/searchIndexingAppConfig.ts | 91 + .../external/collateAIAppPrivateConfig.ts | 55 + .../entity/applications/createAppRequest.ts | 128 + .../applications/liveExecutionContext.ts | 28 + .../marketplace/appMarketPlaceDefinition.ts | 699 +++ .../createAppMarketPlaceDefinitionReq.ts | 616 +++ .../applications/scheduledExecutionContext.ts | 24 + .../automations/testServiceConnection.ts | 3392 ++++++++++++ .../generated/entity/automations/workflow.ts | 3805 +++++++++++++ .../resources/ui/src/generated/entity/bot.ts | 182 + .../entity/classification/classification.ts | 193 + .../generated/entity/classification/tag.ts | 239 + .../generated/entity/data/apiCollection.ts | 401 ++ .../src/generated/entity/data/apiEndpoint.ts | 529 ++ .../ui/src/generated/entity/data/chart.ts | 480 ++ .../ui/src/generated/entity/data/container.ts | 842 +++ .../ui/src/generated/entity/data/dashboard.ts | 486 ++ .../entity/data/dashboardDataModel.ts | 808 +++ .../ui/src/generated/entity/data/database.ts | 623 +++ .../generated/entity/data/databaseSchema.ts | 619 +++ .../ui/src/generated/entity/data/glossary.ts | 332 ++ .../src/generated/entity/data/glossaryTerm.ts | 396 ++ .../ui/src/generated/entity/data/metric.ts | 418 ++ .../ui/src/generated/entity/data/mlmodel.ts | 594 ++ .../ui/src/generated/entity/data/pipeline.ts | 552 ++ .../ui/src/generated/entity/data/query.ts | 344 ++ .../ui/src/generated/entity/data/report.ts | 258 + .../src/generated/entity/data/searchIndex.ts | 517 ++ .../generated/entity/data/storedProcedure.ts | 498 ++ .../ui/src/generated/entity/data/table.ts | 1310 +++++ .../ui/src/generated/entity/data/topic.ts | 557 ++ .../src/generated/entity/docStore/document.ts | 157 + .../generated/entity/domains/dataProduct.ts | 197 + .../ui/src/generated/entity/domains/domain.ts | 211 + .../ui/src/generated/entity/events/webhook.ts | 60 + .../ui/src/generated/entity/feed/assets.ts | 74 + .../generated/entity/feed/customProperty.ts | 27 + .../src/generated/entity/feed/description.ts | 31 + .../ui/src/generated/entity/feed/domain.ts | 80 + .../src/generated/entity/feed/entityInfo.ts | 23 + .../ui/src/generated/entity/feed/owner.ts | 83 + .../src/generated/entity/feed/suggestion.ts | 216 + .../ui/src/generated/entity/feed/tag.ts | 114 + .../generated/entity/feed/testCaseResult.ts | 216 + .../ui/src/generated/entity/feed/thread.ts | 579 ++ .../accessControl/resourceDescriptor.ts | 77 + .../accessControl/resourcePermission.ts | 164 + .../entity/policies/accessControl/rule.ts | 102 + .../src/generated/entity/policies/policy.ts | 313 ++ .../generated/entity/services/apiService.ts | 389 ++ .../connections/api/restConnection.ts | 44 + .../connections/common/sslCertPaths.ts | 31 + .../connections/common/sslCertValues.ts | 35 + .../services/connections/common/sslConfig.ts | 62 + .../dashboard/customDashboardConnection.ts | 36 + .../dashboard/domoDashboardConnection.ts | 53 + .../dashboard/lightdashConnection.ts | 53 + .../connections/dashboard/lookerConnection.ts | 92 + .../dashboard/metabaseConnection.ts | 46 + .../dashboard/microStrategyConnection.ts | 57 + .../connections/dashboard/modeConnection.ts | 53 + .../dashboard/powerBIConnection.ts | 303 + .../powerBIReportServerConnection.ts | 49 + .../dashboard/powerbi/azureConfig.ts | 81 + .../dashboard/powerbi/bucketDetails.ts | 27 + .../dashboard/powerbi/gcsConfig.ts | 164 + .../connections/dashboard/powerbi/s3Config.ts | 97 + .../dashboard/qlikCloudConnection.ts | 41 + .../dashboard/qlikSenseConnection.ts | 96 + .../dashboard/quickSightConnection.ts | 102 + .../connections/dashboard/redashConnection.ts | 49 + .../connections/dashboard/sigmaConnection.ts | 48 + .../dashboard/supersetConnection.ts | 378 ++ .../dashboard/tableauConnection.ts | 118 + .../connections/database/athenaConnection.ts | 197 + .../database/azureSQLConnection.ts | 193 + .../database/bigQueryConnection.ts | 270 + .../database/bigTableConnection.ts | 155 + .../database/clickhouseConnection.ts | 171 + .../database/common/azureConfig.ts | 50 + .../connections/database/common/basicAuth.ts | 23 + .../database/common/iamAuthConfig.ts | 66 + .../connections/database/common/jwtAuth.ts | 23 + .../common/noConfigAuthenticationTypes.ts | 20 + .../database/couchbaseConnection.ts | 61 + .../database/customDatabaseConnection.ts | 36 + .../database/databricksConnection.ts | 161 + .../database/datalake/azureConfig.ts | 50 + .../database/datalake/gcsConfig.ts | 133 + .../connections/database/datalake/s3Config.ts | 66 + .../database/datalakeConnection.ts | 328 ++ .../connections/database/db2Connection.ts | 148 + .../database/deltaLakeConnection.ts | 165 + .../database/deltalake/metastoreConfig.ts | 66 + .../database/deltalake/storageConfig.ts | 86 + .../database/domoDatabaseConnection.ts | 58 + .../connections/database/dorisConnection.ts | 99 + .../connections/database/druidConnection.ts | 147 + .../database/dynamoDBConnection.ts | 88 + .../connections/database/exasolConnection.ts | 72 + .../connections/database/glueConnection.ts | 88 + .../database/greenplumConnection.ts | 249 + .../connections/database/hiveConnection.ts | 410 ++ .../iceberg/dynamoDbCatalogConnection.ts | 70 + .../database/iceberg/glueCatalogConnection.ts | 66 + .../database/iceberg/hiveCatalogConnection.ts | 103 + .../database/iceberg/icebergCatalog.ts | 251 + .../database/iceberg/icebergFileSystem.ts | 92 + .../database/iceberg/restCatalogConnection.ts | 168 + .../connections/database/icebergConnection.ts | 276 + .../connections/database/impalaConnection.ts | 180 + .../connections/database/mariaDBConnection.ts | 153 + .../connections/database/mongoDBConnection.ts | 100 + .../connections/database/mssqlConnection.ts | 161 + .../connections/database/mysqlConnection.ts | 275 + .../connections/database/oracleConnection.ts | 182 + .../connections/database/pinotDBConnection.ts | 154 + .../database/postgresConnection.ts | 289 + .../connections/database/prestoConnection.ts | 160 + .../database/redshiftConnection.ts | 190 + .../database/salesforceConnection.ts | 95 + .../connections/database/sapErpConnection.ts | 88 + .../database/sapHana/sapHanaHDBConnection.ts | 24 + .../database/sapHana/sapHanaSQLConnection.ts | 41 + .../connections/database/sapHanaConnection.ts | 171 + .../connections/database/sasConnection.ts | 68 + .../database/singleStoreConnection.ts | 153 + .../database/snowflakeConnection.ts | 184 + .../connections/database/sqliteConnection.ts | 151 + .../connections/database/synapseConnection.ts | 195 + .../database/teradataConnection.ts | 184 + .../connections/database/trinoConnection.ts | 217 + .../database/unityCatalogConnection.ts | 161 + .../connections/database/verticaConnection.ts | 150 + .../messaging/customMessagingConnection.ts | 36 + .../connections/messaging/kafkaConnection.ts | 128 + .../messaging/kinesisConnection.ts | 80 + .../connections/messaging/pulsarConnection.ts | 33 + .../messaging/redpandaConnection.ts | 93 + .../messaging/saslMechanismType.ts | 24 + .../connections/metadata/alationConnection.ts | 412 ++ .../metadata/alationSinkConnection.ts | 105 + .../metadata/amundsenConnection.ts | 58 + .../connections/metadata/atlasConnection.ts | 60 + .../metadata/metadataESConnection.ts | 66 + .../metadata/openMetadataConnection.ts | 256 + .../mlmodel/customMlModelConnection.ts | 36 + .../connections/mlmodel/mlflowConnection.ts | 42 + .../mlmodel/sageMakerConnection.ts | 80 + .../connections/mlmodel/sklearnConnection.ts | 33 + .../connections/mlmodel/vertexaiConnection.ts | 155 + .../connections/pipeline/airbyteConnection.ts | 45 + .../connections/pipeline/airflowConnection.ts | 372 ++ .../connections/pipeline/backendConnection.ts | 32 + .../pipeline/customPipelineConnection.ts | 36 + .../connections/pipeline/dagsterConnection.ts | 45 + .../pipeline/databricksPipelineConnection.ts | 46 + .../pipeline/datafactoryConnection.ts | 84 + .../pipeline/dbtCloudConnection.ts | 56 + .../pipeline/domoPipelineConnection.ts | 53 + .../pipeline/fivetranConnection.ts | 49 + .../connections/pipeline/flinkConnection.ts | 67 + .../pipeline/gluePipelineConnection.ts | 80 + .../pipeline/kafkaConnectConnection.ts | 66 + .../pipeline/matillionConnection.ts | 85 + .../connections/pipeline/nifiConnection.ts | 75 + .../pipeline/openLineageConnection.ts | 141 + .../connections/pipeline/sparkConnection.ts | 32 + .../connections/pipeline/splineConnection.ts | 41 + .../connections/pipeline/stitchConnection.ts | 41 + .../search/customSearchConnection.ts | 36 + .../search/elasticSearch/apiAuth.ts | 27 + .../search/elasticSearch/basicAuth.ts | 27 + .../search/elasticSearchConnection.ts | 122 + .../search/openSearchConnection.ts | 71 + .../services/connections/serviceConnection.ts | 3360 ++++++++++++ .../connections/storage/adlsConnection.ts | 71 + .../storage/customStorageConnection.ts | 36 + .../connections/storage/gcsConnection.ts | 158 + .../connections/storage/s3Connection.ts | 86 + .../connections/testConnectionDefinition.ts | 208 + .../connections/testConnectionResult.ts | 71 + .../entity/services/dashboardService.ts | 1375 +++++ .../entity/services/databaseService.ts | 2158 ++++++++ .../ingestionPipelines/ingestionPipeline.ts | 2017 +++++++ .../pipelineServiceClientResponse.ts | 35 + .../services/ingestionPipelines/status.ts | 16 + .../entity/services/messagingService.ts | 545 ++ .../entity/services/metadataService.ts | 1058 ++++ .../entity/services/mlmodelService.ts | 572 ++ .../entity/services/pipelineService.ts | 1067 ++++ .../entity/services/searchService.ts | 511 ++ .../generated/entity/services/serviceType.ts | 28 + .../entity/services/storageService.ts | 595 ++ .../ui/src/generated/entity/teams/persona.ts | 173 + .../ui/src/generated/entity/teams/role.ts | 200 + .../ui/src/generated/entity/teams/team.ts | 329 ++ .../generated/entity/teams/teamHierarchy.ts | 123 + .../ui/src/generated/entity/teams/user.ts | 572 ++ .../resources/ui/src/generated/entity/type.ts | 240 + .../generated/entity/utils/entitiesCount.ts | 67 + .../generated/entity/utils/servicesCount.ts | 43 + .../entity/utils/supersetApiConnection.ts | 74 + .../ui/src/generated/events/alertMetrics.ts | 35 + .../events/api/createEventSubscription.ts | 454 ++ .../api/eventSubscriptionDiagnosticInfo.ts | 192 + .../src/generated/events/api/eventsRecord.ts | 37 + .../api/testEventSubscriptionDestination.ts | 229 + .../ui/src/generated/events/api/typedEvent.ts | 258 + .../src/generated/events/emailAlertConfig.ts | 35 + .../src/generated/events/eventFilterRule.ts | 69 + .../src/generated/events/eventSubscription.ts | 599 ++ .../events/eventSubscriptionOffset.ts | 32 + .../ui/src/generated/events/failedEvent.ts | 172 + .../generated/events/failedEventResponse.ts | 172 + .../events/filterResourceDescriptor.ts | 88 + .../ui/src/generated/events/statusContext.ts | 47 + .../events/subscriptionResourceDescriptor.ts | 45 + .../generated/events/subscriptionStatus.ts | 72 + .../generated/events/testDestinationStatus.ts | 64 + .../governance/workflows/elements/edge.ts | 31 + .../workflows/elements/nodeSubType.ts | 25 + .../governance/workflows/elements/nodeType.ts | 23 + .../checkEntityAttributesTask.ts | 41 + .../setEntityCertificationTask.ts | 47 + .../elements/nodes/endEvent/endEvent.ts | 34 + .../elements/nodes/startEvent/startEvent.ts | 34 + .../nodes/userTask/userApprovalTask.ts | 108 + .../triggers/eventBasedEntityTrigger.ts | 45 + .../triggers/periodicBatchEntityTrigger.ts | 64 + .../workflows/workflowDefinition.ts | 201 + .../governance/workflows/workflowInstance.ts | 44 + .../workflows/workflowInstanceState.ts | 59 + .../apiServiceMetadataPipeline.ts | 67 + .../metadataIngestion/application.ts | 822 +++ .../metadataIngestion/applicationPipeline.ts | 550 ++ .../dashboardServiceMetadataPipeline.ts | 129 + .../metadataIngestion/dataInsightPipeline.ts | 32 + ...tabaseServiceAutoClassificationPipeline.ts | 124 + .../databaseServiceMetadataPipeline.ts | 158 + .../databaseServiceProfilerPipeline.ts | 137 + .../databaseServiceQueryLineagePipeline.ts | 106 + .../databaseServiceQueryUsagePipeline.ts | 53 + .../metadataIngestion/dbtPipeline.ts | 375 ++ .../dbtconfig/dbtAzureConfig.ts | 80 + .../dbtconfig/dbtBucketDetails.ts | 27 + .../dbtconfig/dbtCloudConfig.ts | 52 + .../dbtconfig/dbtGCSConfig.ts | 163 + .../dbtconfig/dbtHttpConfig.ts | 46 + .../dbtconfig/dbtLocalConfig.ts | 46 + .../dbtconfig/dbtS3Config.ts | 96 + .../messagingServiceMetadataPipeline.ts | 71 + .../metadataToElasticSearchPipeline.ts | 80 + .../mlmodelServiceMetadataPipeline.ts | 67 + .../pipelineServiceMetadataPipeline.ts | 110 + .../searchServiceMetadataPipeline.ts | 79 + .../storage/containerMetadataConfig.ts | 565 ++ .../storage/manifestMetadataConfig.ts | 562 ++ .../storage/storageBucketDetails.ts | 28 + .../storage/storageMetadataADLSConfig.ts | 66 + .../storage/storageMetadataGCSConfig.ts | 149 + .../storage/storageMetadataHttpConfig.ts | 23 + .../storage/storageMetadataLocalConfig.ts | 23 + .../storage/storageMetadataS3Config.ts | 82 + .../storageServiceMetadataPipeline.ts | 294 + .../metadataIngestion/testSuitePipeline.ts | 62 + .../generated/metadataIngestion/workflow.ts | 4856 +++++++++++++++++ .../monitoring/eventMonitorProvider.ts | 21 + .../security/client/auth0SSOClientConfig.ts | 31 + .../security/client/azureSSOClientConfig.ts | 35 + .../client/customOidcSSOClientConfig.ts | 31 + .../security/client/googleSSOClientConfig.ts | 27 + .../security/client/oidcClientConfig.ts | 93 + .../security/client/oktaSSOClientConfig.ts | 39 + .../client/openMetadataJWTClientConfig.ts | 23 + .../security/client/samlSSOClientConfig.ts | 132 + .../security/credentials/accessTokenAuth.ts | 27 + .../credentials/apiAccessTokenAuth.ts | 23 + .../security/credentials/awsCredentials.ts | 59 + .../security/credentials/azureCredentials.ts | 43 + .../security/credentials/basicAuth.ts | 27 + .../credentials/bitbucketCredentials.ts | 39 + .../security/credentials/gcpCredentials.ts | 126 + .../credentials/gcpExternalAccount.ts | 46 + .../security/credentials/gcpValues.ts | 59 + .../security/credentials/githubCredentials.ts | 35 + .../security/credentials/gitlabCredentials.ts | 35 + .../security/sasl/saslClientConfig.ts | 44 + .../secrets/secretsManagerClientLoader.ts | 23 + .../secrets/secretsManagerConfiguration.ts | 52 + .../secrets/secretsManagerProvider.ts | 29 + .../security/securityConfiguration.ts | 24 + .../security/ssl/validateSSLClientConfig.ts | 31 + .../generated/security/ssl/verifySSLConfig.ts | 16 + .../ui/src/generated/settings/settings.ts | 1191 ++++ .../ui/src/generated/system/entityError.ts | 21 + .../src/generated/system/eventPublisherJob.ts | 167 + .../ui/src/generated/system/indexingError.ts | 43 + .../ui/src/generated/system/limitsResponse.ts | 27 + .../src/generated/system/ui/knowledgePanel.ts | 35 + .../src/generated/system/ui/navigationItem.ts | 65 + .../ui/src/generated/system/ui/page.ts | 159 + .../ui/src/generated/system/ui/tab.ts | 96 + .../generated/system/ui/uiCustomization.ts | 256 + .../generated/system/validationResponse.ts | 65 + .../ui/src/generated/tests/assigned.ts | 74 + .../ui/src/generated/tests/customMetric.ts | 108 + .../src/generated/tests/dataQualityReport.ts | 48 + .../ui/src/generated/tests/resolved.ts | 95 + .../ui/src/generated/tests/testCase.ts | 711 +++ .../tests/testCaseResolutionStatus.ts | 193 + .../ui/src/generated/tests/testDefinition.ts | 399 ++ .../ui/src/generated/tests/testSuite.ts | 469 ++ .../ui/src/generated/type/apiSchema.ts | 190 + .../src/generated/type/assetCertification.ts | 115 + .../ui/src/generated/type/auditLog.ts | 59 + .../src/generated/type/bulkOperationResult.ts | 64 + .../ui/src/generated/type/changeEvent.ts | 144 + .../ui/src/generated/type/changeEventType.ts | 38 + .../generated/type/collectionDescriptor.ts | 52 + .../ui/src/generated/type/csvDocumentation.ts | 43 + .../ui/src/generated/type/csvErrorType.ts | 25 + .../ui/src/generated/type/csvFile.ts | 37 + .../ui/src/generated/type/csvImportResult.ts | 47 + .../type/customProperties/complexTypes.ts | 34 + .../type/customProperties/enumConfig.ts | 21 + .../type/customProperties/tableConfig.ts | 26 + .../ui/src/generated/type/customProperty.ts | 108 + .../ui/src/generated/type/dailyCount.ts | 25 + .../type/databaseConnectionConfig.ts | 67 + .../ui/src/generated/type/entityHierarchy.ts | 73 + .../ui/src/generated/type/entityHistory.ts | 25 + .../ui/src/generated/type/entityLineage.ts | 162 + .../ui/src/generated/type/entityReference.ts | 62 + .../src/generated/type/entityReferenceList.ts | 67 + .../src/generated/type/entityRelationship.ts | 90 + .../ui/src/generated/type/entityUsage.ts | 121 + .../ui/src/generated/type/function.ts | 61 + .../ui/src/generated/type/include.ts | 23 + .../ui/src/generated/type/jdbcConnection.ts | 35 + .../ui/src/generated/type/lifeCycle.ts | 106 + .../resources/ui/src/generated/type/paging.ts | 39 + .../ui/src/generated/type/profile.ts | 91 + .../ui/src/generated/type/queryParserData.ts | 72 + .../ui/src/generated/type/reaction.ts | 89 + .../ui/src/generated/type/schedule.ts | 28 + .../resources/ui/src/generated/type/schema.ts | 196 + .../ui/src/generated/type/tableQuery.ts | 79 + .../ui/src/generated/type/tableUsageCount.ts | 299 + .../ui/src/generated/type/tagLabel.ts | 100 + .../ui/src/generated/type/usageDetails.ts | 56 + .../ui/src/generated/type/usageRequest.ts | 28 + .../resources/ui/src/generated/type/votes.ts | 91 + .../main/resources/ui/webpack.config.prod.js | 127 +- .../src/main/resources/ui/yarn.lock | 1170 +++- 554 files changed, 111923 insertions(+), 70 deletions(-) create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportData.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/aggregatedCostAnalysisReportData.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/entityReportData.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/rawCostAnalysisReportData.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/webAnalyticEntityViewReportData.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/webAnalyticUserActivityReportData.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEvent.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventData.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventType/customEvent.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventType/pageViewEvent.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLink.interp create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLink.tokens create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.interp create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.js create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.tokens create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkListener.js create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkParser.js create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/Fqn.interp create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/Fqn.tokens create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.interp create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.js create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.tokens create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnListener.js create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnParser.js create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUri.interp create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUri.tokens create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.interp create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.js create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.tokens create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriListener.js create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriParser.js create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/addGlossaryToAssetsRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/addTagToAssetsRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/analytics/createWebAnalyticEvent.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/automations/createWorkflow.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/bulkAssets.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/classification/createClassification.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/classification/createTag.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/classification/loadTags.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/createBot.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/createEventPublisherJob.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/createType.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createAPICollection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createAPIEndpoint.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createChart.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createContainer.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createCustomProperty.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDashboard.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDashboardDataModel.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDatabase.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDatabaseSchema.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createGlossary.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createGlossaryTerm.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createMetric.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createMlModel.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createQuery.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createSearchIndex.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createStoredProcedure.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTable.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTableProfile.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTopic.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/loadGlossary.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/data/restoreEntity.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/createDataInsightChart.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/custom/createDataInsightCustomChart.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/kpi/createKpiRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/docStore/createDocument.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/domains/createDataProduct.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/domains/createDomain.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/feed/closeTask.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createPost.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createSuggestion.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createThread.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/feed/resolveTask.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/feed/threadCount.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/governance/createWorkflowInstanceState.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/lineage/addLineage.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/openMetadataServerVersion.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/policies/createPolicy.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/createApiService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDashboardService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMessagingService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMetadataService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMlModelService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/createPipelineService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/createSearchService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/createStorageService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/setOwner.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createPersona.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createRole.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createTeam.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createUser.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createCustomMetric.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createLogicalTestCases.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCase.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResolutionStatus.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResult.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestDefinition.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestSuite.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/basicAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/basicLoginRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/changePasswordRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/createPersonalToken.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/emailRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/generateToken.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/jwtAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/loginRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/logoutRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/passwordResetRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/passwordResetToken.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/personalAccessToken.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/refreshToken.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/registrationRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/revokePersonalToken.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/revokeToken.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/serviceTokenEnum.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/ssoAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/auth/tokenRefreshRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/appsPrivateConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/assetCertificationSettings.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/authConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/authenticationConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/authorizerConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/changeEventConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/dataQualityConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/elasticSearchConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/eventHandlerConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/fernetConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/jwtTokenConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/kafkaEventConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/customTrustManagerConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/hostNameConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/jvmDefaultConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/trustAllConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/truststoreConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/limitsConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/lineageSettings.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/loginConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/logoConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/pipelineServiceClientConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/profilerConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/searchSettings.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/slackAppConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/taskNotificationConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/testResultNotificationConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/themeConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/configuration/uiThemePreference.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChart.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChartResult.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChartResultList.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/formulaHolder.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/lineChart.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/summaryCard.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChart.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChartResult.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/kpi/kpi.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUnusedAssetsCount.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUnusedAssetsSize.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/dailyActiveUsers.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/mostActiveUsers.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/mostViewedEntities.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/pageViewsByEntities.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/unusedAssets.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/email/emailRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/email/emailTemplate.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/email/emailTemplatePlaceholder.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/email/smtpSettings.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/email/templateValidationReponse.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/app.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/appExtension.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/appRunRecord.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addDescriptionAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addDomainAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addOwnerAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addTagsAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addTierAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/lineagePropagationAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/mlTaggingAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeDescriptionAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeDomainAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeOwnerAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeTagsAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeTierAction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automatorAppConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/collateAIAppConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/slackAppTokenConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/dataInsightsAppConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/dataInsightsReportAppConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/searchIndexingAppConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/private/external/collateAIAppPrivateConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/createAppRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/liveExecutionContext.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/marketplace/appMarketPlaceDefinition.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/scheduledExecutionContext.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/workflow.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/bot.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/classification/classification.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/classification/tag.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiCollection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiEndpoint.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/chart.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/container.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboard.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboardDataModel.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/database.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/databaseSchema.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossary.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossaryTerm.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/metric.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/mlmodel.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/pipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/query.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/report.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/searchIndex.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/storedProcedure.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/data/topic.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/docStore/document.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/dataProduct.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/domain.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/events/webhook.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/assets.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/customProperty.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/description.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/domain.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/entityInfo.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/owner.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/suggestion.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/tag.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/testCaseResult.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/thread.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/resourceDescriptor.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/resourcePermission.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/rule.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/policy.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/apiService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/api/restConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslCertPaths.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslCertValues.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/customDashboardConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/domoDashboardConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/lightdashConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/lookerConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/metabaseConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/microStrategyConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/modeConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerBIConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerBIReportServerConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/azureConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/bucketDetails.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/gcsConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/s3Config.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/qlikCloudConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/qlikSenseConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/quickSightConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/redashConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/sigmaConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/supersetConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/tableauConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/athenaConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/azureSQLConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/bigQueryConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/bigTableConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/clickhouseConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/azureConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/basicAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/iamAuthConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/jwtAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/noConfigAuthenticationTypes.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/couchbaseConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/customDatabaseConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/databricksConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/azureConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/gcsConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/s3Config.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalakeConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/db2Connection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltaLakeConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltalake/metastoreConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltalake/storageConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/domoDatabaseConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/dorisConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/druidConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/dynamoDBConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/exasolConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/glueConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/greenplumConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/hiveConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/glueCatalogConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/hiveCatalogConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/icebergCatalog.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/icebergFileSystem.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/restCatalogConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/icebergConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/impalaConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mariaDBConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mongoDBConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mssqlConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mysqlConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/oracleConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/pinotDBConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/postgresConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/prestoConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/redshiftConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/salesforceConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapErpConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHana/sapHanaHDBConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHana/sapHanaSQLConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHanaConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sasConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/singleStoreConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/snowflakeConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sqliteConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/synapseConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/teradataConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/trinoConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/unityCatalogConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/verticaConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/customMessagingConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/kafkaConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/kinesisConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/pulsarConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/redpandaConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/saslMechanismType.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/alationConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/alationSinkConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/amundsenConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/atlasConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/metadataESConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/openMetadataConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/customMlModelConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/mlflowConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/sageMakerConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/sklearnConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/vertexaiConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/airbyteConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/airflowConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/backendConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/customPipelineConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/dagsterConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/databricksPipelineConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/datafactoryConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/dbtCloudConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/domoPipelineConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/fivetranConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/flinkConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/gluePipelineConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/kafkaConnectConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/matillionConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/nifiConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/openLineageConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/sparkConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/splineConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/stitchConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/customSearchConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearch/apiAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearch/basicAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearchConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/openSearchConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/serviceConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/adlsConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/customStorageConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/gcsConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/s3Connection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/testConnectionDefinition.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/testConnectionResult.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/dashboardService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/pipelineServiceClientResponse.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/status.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/messagingService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/metadataService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/mlmodelService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/pipelineService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/searchService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/serviceType.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/services/storageService.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/persona.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/role.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/team.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/teamHierarchy.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/user.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/type.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/entitiesCount.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/servicesCount.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/supersetApiConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/alertMetrics.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/api/createEventSubscription.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/api/eventSubscriptionDiagnosticInfo.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/api/eventsRecord.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/api/testEventSubscriptionDestination.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/api/typedEvent.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/emailAlertConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/eventFilterRule.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/eventSubscription.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/eventSubscriptionOffset.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/failedEvent.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/failedEventResponse.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/filterResourceDescriptor.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/statusContext.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/subscriptionResourceDescriptor.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/subscriptionStatus.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/events/testDestinationStatus.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/edge.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodeSubType.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodeType.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/endEvent/endEvent.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/startEvent/startEvent.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/userTask/userApprovalTask.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/triggers/eventBasedEntityTrigger.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/triggers/periodicBatchEntityTrigger.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowDefinition.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowInstance.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowInstanceState.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/apiServiceMetadataPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/application.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/applicationPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dashboardServiceMetadataPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dataInsightPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceAutoClassificationPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceMetadataPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceProfilerPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceQueryLineagePipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceQueryUsagePipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtAzureConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtBucketDetails.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtCloudConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtGCSConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtHttpConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtLocalConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtS3Config.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/messagingServiceMetadataPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/metadataToElasticSearchPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/mlmodelServiceMetadataPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/pipelineServiceMetadataPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/searchServiceMetadataPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/containerMetadataConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/manifestMetadataConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageBucketDetails.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataADLSConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataGCSConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataHttpConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataLocalConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataS3Config.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storageServiceMetadataPipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/testSuitePipeline.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/monitoring/eventMonitorProvider.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/client/auth0SSOClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/client/azureSSOClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/client/customOidcSSOClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/client/googleSSOClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/client/oidcClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/client/oktaSSOClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/client/openMetadataJWTClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/client/samlSSOClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/accessTokenAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/apiAccessTokenAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/awsCredentials.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/azureCredentials.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/basicAuth.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/bitbucketCredentials.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpCredentials.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpExternalAccount.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpValues.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/githubCredentials.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gitlabCredentials.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/sasl/saslClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerClientLoader.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerProvider.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/securityConfiguration.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/ssl/validateSSLClientConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/security/ssl/verifySSLConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/settings/settings.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/entityError.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/eventPublisherJob.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/indexingError.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/limitsResponse.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/ui/knowledgePanel.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/ui/navigationItem.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/ui/page.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/ui/tab.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/ui/uiCustomization.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/system/validationResponse.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/tests/assigned.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/tests/customMetric.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/tests/dataQualityReport.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/tests/resolved.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/tests/testCase.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/tests/testCaseResolutionStatus.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/tests/testDefinition.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/tests/testSuite.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/apiSchema.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/assetCertification.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/auditLog.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/bulkOperationResult.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/changeEvent.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/changeEventType.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/collectionDescriptor.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/csvDocumentation.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/csvErrorType.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/csvFile.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/csvImportResult.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/complexTypes.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/enumConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/tableConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/customProperty.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/dailyCount.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/databaseConnectionConfig.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/entityHierarchy.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/entityHistory.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/entityLineage.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/entityReference.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/entityReferenceList.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/entityRelationship.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/entityUsage.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/function.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/include.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/jdbcConnection.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/lifeCycle.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/paging.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/profile.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/queryParserData.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/reaction.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/schedule.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/schema.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/tableQuery.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/tableUsageCount.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/tagLabel.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/usageDetails.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/usageRequest.ts create mode 100644 openmetadata-ui/src/main/resources/ui/src/generated/type/votes.ts diff --git a/.gitignore b/.gitignore index a518bbde95a0..ab45715cbe4c 100644 --- a/.gitignore +++ b/.gitignore @@ -91,8 +91,6 @@ openmetadata-ui/src/main/resources/ui/src/jsons/connectionSchemas openmetadata-ui/src/main/resources/ui/src/jsons/ingestionSchemas openmetadata-ui/src/main/resources/ui/src/jsons/governanceSchemas -#UI - Generated TS -openmetadata-ui/src/main/resources/ui/src/generated #vscode */.vscode/* @@ -132,4 +130,4 @@ ingestion/tests/cli_e2e/**/*test.yaml /ingestion/tests/integration/great_expectations/gx/* # Tests -**/metastore_db/ \ No newline at end of file +**/metastore_db/ diff --git a/openmetadata-ui/pom.xml b/openmetadata-ui/pom.xml index 43256fe98e7e..7dbbb62784df 100644 --- a/openmetadata-ui/pom.xml +++ b/openmetadata-ui/pom.xml @@ -151,27 +151,6 @@ - - org.codehaus.mojo - exec-maven-plugin - 3.0.0 - - - generate-typescript-from-json-schema - generate-resources - - exec - - - bash - ${project.basedir}/src/main/resources/ui - - json2ts.sh - - - - - maven-resources-plugin @@ -199,6 +178,14 @@ true + + gz + woff + woff2 + eot + svg + png + diff --git a/openmetadata-ui/src/main/resources/ui/.husky/pre-commit b/openmetadata-ui/src/main/resources/ui/.husky/pre-commit index 7b1b2322a1de..1126dc081810 100755 --- a/openmetadata-ui/src/main/resources/ui/.husky/pre-commit +++ b/openmetadata-ui/src/main/resources/ui/.husky/pre-commit @@ -2,4 +2,13 @@ # .husky/pre-commit # ... cd openmetadata-ui/src/main/resources/ui -yarn pre-commit \ No newline at end of file +yarn pre-commit + +# Check if any schema files have changed +if git diff --name-only HEAD | grep -q 'openmetadata-spec/src/main/resources/json/schema/'; then + echo "JSON schema files changed. Regenerating TypeScript files..." + yarn run json2ts + git add src/generated +else + echo "No changes in JSON schema files. Skipping TypeScript generation." +fi diff --git a/openmetadata-ui/src/main/resources/ui/babel.config.json b/openmetadata-ui/src/main/resources/ui/babel.config.json index 34be91b97b48..c2eaa42deb2e 100644 --- a/openmetadata-ui/src/main/resources/ui/babel.config.json +++ b/openmetadata-ui/src/main/resources/ui/babel.config.json @@ -3,6 +3,9 @@ "env": { "test": { "plugins": ["@babel/plugin-transform-runtime"] + }, + "production": { + "debug": true } } -} +} \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/package.json b/openmetadata-ui/src/main/resources/ui/package.json index c5a18614cd41..96bc2287c574 100644 --- a/openmetadata-ui/src/main/resources/ui/package.json +++ b/openmetadata-ui/src/main/resources/ui/package.json @@ -186,6 +186,7 @@ "babel-jest": "^24.9.0", "babel-loader": "8.3.0", "clean-webpack-plugin": "^3.0.0", + "compression-webpack-plugin": "^11.1.0", "copy-webpack-plugin": "^7.0.0", "css-loader": "^6.7.2", "dotenv": "^16.0.0", @@ -205,6 +206,7 @@ "html-webpack-plugin": "^5.5.0", "husky": "^8.0.1", "i18next-json-sync": "^3.1.2", + "image-webpack-loader": "^8.1.0", "jest": "^26.6.3", "jest-sonar-reporter": "^2.0.0", "less-loader": "^11.0.0", @@ -217,12 +219,14 @@ "react-test-renderer": "^16.14.0", "style-loader": "^3.3.1", "sync-i18n": "^0.0.20", + "thread-loader": "^4.0.4", "ts-jest": "^26.4.4", "ts-loader": "^8.0.14", "tslib": "^2.4.1", "typescript": "^4.2.4", "url-loader": "^4.1.1", "webpack": "5.94.0", + "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", "webpack-dev-server": "4.15.2" }, diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportData.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportData.ts new file mode 100644 index 000000000000..bbc437479d69 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportData.ts @@ -0,0 +1,347 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Report Data + */ +export interface ReportData { + /** + * Data captured + */ + data?: DataClass; + /** + * Unique identifier for a result. + */ + id?: string; + /** + * Type of data + */ + reportDataType?: ReportDataType; + /** + * timestamp for of a result ingestion. + */ + timestamp: number; + [property: string]: any; +} + +/** + * Data captured + * + * Refined data for Entity Report. + * + * Refined data for overview report + * + * Raw data for Cost Analysis Report. + * + * Aggregated data for Cost Analysis Report. + */ +export interface DataClass { + /** + * Number of completed description for the entity + */ + completedDescriptions?: number; + /** + * number of entities + */ + entityCount?: number; + /** + * Tier for the entity + * + * entity tier + */ + entityTier?: string; + /** + * type of the entity + * + * entity type + * + * Type of the entity + */ + entityType?: string; + /** + * number of entities with owner + */ + hasOwner?: number; + /** + * Number of missing description for the entity + */ + missingDescriptions?: number; + /** + * number of entities missing owners + */ + missingOwner?: number; + /** + * Organization associated with the entity (i.e. owner) + */ + organization?: string; + /** + * Name of the service + */ + serviceName?: string; + /** + * Team associated with the entity (i.e. owner) + * + * the team the user belongs to + */ + team?: string; + /** + * latest session + */ + lastSession?: number; + /** + * total user count + */ + totalPageView?: number; + /** + * total user count + */ + totalSessionDuration?: number; + /** + * total number of sessions + */ + totalSessions?: number; + /** + * user ID in OM + */ + userId?: string; + /** + * user name + */ + userName?: string; + /** + * entity fully qualified name + */ + entityFqn?: string; + /** + * entity href + */ + entityHref?: string; + /** + * Name of the entity owner + */ + owner?: string; + /** + * Name of the entity owner + */ + ownerId?: string; + /** + * Tags FQN + */ + tagsFQN?: string[]; + /** + * Number of time the entity was viewed + */ + views?: number; + /** + * Entity of the life cycle data + */ + entity?: EntityReference; + /** + * Life Cycle data related to the entity + */ + lifeCycle?: LifeCycle; + /** + * Entity size in bytes + */ + sizeInByte?: number; + /** + * Count and Size of the frequently used Data Assets over a period of time + */ + frequentlyUsedDataAssets?: DataAssetMetrics; + /** + * Name of the service owner + */ + serviceOwner?: string; + /** + * Type of the service + */ + serviceType?: string; + /** + * Total Count + */ + totalCount?: number; + /** + * Total Size based in Bytes + */ + totalSize?: number; + /** + * Count and Size of the unused Data Assets over a period of time + */ + unusedDataAssets?: DataAssetMetrics; +} + +/** + * Entity of the life cycle data + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * User, Pipeline, Query that created,updated or accessed the data asset + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Count and Size of the frequently used Data Assets over a period of time + * + * Store the Count and Size in bytes of the Data Assets over a time period + * + * Count and Size of the unused Data Assets over a period of time + */ +export interface DataAssetMetrics { + /** + * Count of the Data Assets over a period of time + */ + count?: DataAssetValues; + /** + * Size of the Data Assets over a period of time + */ + size?: DataAssetValues; + /** + * Total Count + */ + totalCount?: number; + /** + * Total Size based in Bytes + */ + totalSize?: number; + [property: string]: any; +} + +/** + * Count of the Data Assets over a period of time + * + * Count or Size in bytes of Data Assets over a time period + * + * Size of the Data Assets over a period of time + */ +export interface DataAssetValues { + /** + * Data Asset Count or Size for 14 days + */ + fourteenDays?: number | null; + /** + * Data Asset Count or Size for 7 days + */ + sevenDays?: number | null; + /** + * Data Asset Count or Size for 60 days + */ + sixtyDays?: number | null; + /** + * Data Asset Count or Size for 30 days + */ + thirtyDays?: number | null; + /** + * Data Asset Count or Size for 3 days + */ + threeDays?: number | null; +} + +/** + * Life Cycle data related to the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Type of data + */ +export enum ReportDataType { + AggregatedCostAnalysisReportData = "aggregatedCostAnalysisReportData", + EntityReportData = "entityReportData", + RawCostAnalysisReportData = "rawCostAnalysisReportData", + WebAnalyticEntityViewReportData = "webAnalyticEntityViewReportData", + WebAnalyticUserActivityReportData = "webAnalyticUserActivityReportData", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/aggregatedCostAnalysisReportData.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/aggregatedCostAnalysisReportData.ts new file mode 100644 index 000000000000..3c7104e047d8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/aggregatedCostAnalysisReportData.ts @@ -0,0 +1,108 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Aggregated data for Cost Analysis Report. + */ +export interface AggregatedCostAnalysisReportData { + /** + * Type of the entity + */ + entityType?: string; + /** + * Count and Size of the frequently used Data Assets over a period of time + */ + frequentlyUsedDataAssets?: DataAssetMetrics; + /** + * Name of the service + */ + serviceName?: string; + /** + * Name of the service owner + */ + serviceOwner?: string; + /** + * Type of the service + */ + serviceType?: string; + /** + * Total Count + */ + totalCount?: number; + /** + * Total Size based in Bytes + */ + totalSize?: number; + /** + * Count and Size of the unused Data Assets over a period of time + */ + unusedDataAssets?: DataAssetMetrics; +} + +/** + * Count and Size of the frequently used Data Assets over a period of time + * + * Store the Count and Size in bytes of the Data Assets over a time period + * + * Count and Size of the unused Data Assets over a period of time + */ +export interface DataAssetMetrics { + /** + * Count of the Data Assets over a period of time + */ + count?: DataAssetValues; + /** + * Size of the Data Assets over a period of time + */ + size?: DataAssetValues; + /** + * Total Count + */ + totalCount?: number; + /** + * Total Size based in Bytes + */ + totalSize?: number; + [property: string]: any; +} + +/** + * Count of the Data Assets over a period of time + * + * Count or Size in bytes of Data Assets over a time period + * + * Size of the Data Assets over a period of time + */ +export interface DataAssetValues { + /** + * Data Asset Count or Size for 14 days + */ + fourteenDays?: number | null; + /** + * Data Asset Count or Size for 7 days + */ + sevenDays?: number | null; + /** + * Data Asset Count or Size for 60 days + */ + sixtyDays?: number | null; + /** + * Data Asset Count or Size for 30 days + */ + thirtyDays?: number | null; + /** + * Data Asset Count or Size for 3 days + */ + threeDays?: number | null; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/entityReportData.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/entityReportData.ts new file mode 100644 index 000000000000..9bc690597b16 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/entityReportData.ts @@ -0,0 +1,59 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Refined data for Entity Report. + */ +export interface EntityReportData { + /** + * Number of completed description for the entity + */ + completedDescriptions?: number; + /** + * number of entities + */ + entityCount?: number; + /** + * Tier for the entity + */ + entityTier?: string; + /** + * type of the entity + */ + entityType?: string; + /** + * number of entities with owner + */ + hasOwner?: number; + /** + * Number of missing description for the entity + */ + missingDescriptions?: number; + /** + * number of entities missing owners + */ + missingOwner?: number; + /** + * Organization associated with the entity (i.e. owner) + */ + organization?: string; + /** + * Name of the service + */ + serviceName?: string; + /** + * Team associated with the entity (i.e. owner) + */ + team?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/rawCostAnalysisReportData.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/rawCostAnalysisReportData.ts new file mode 100644 index 000000000000..8b3eac17a621 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/rawCostAnalysisReportData.ts @@ -0,0 +1,128 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Raw data for Cost Analysis Report. + */ +export interface RawCostAnalysisReportData { + /** + * Entity of the life cycle data + */ + entity: EntityReference; + /** + * Life Cycle data related to the entity + */ + lifeCycle?: LifeCycle; + /** + * Entity size in bytes + */ + sizeInByte?: number; +} + +/** + * Entity of the life cycle data + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * User, Pipeline, Query that created,updated or accessed the data asset + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Life Cycle data related to the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/webAnalyticEntityViewReportData.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/webAnalyticEntityViewReportData.ts new file mode 100644 index 000000000000..ea014d22e18b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/webAnalyticEntityViewReportData.ts @@ -0,0 +1,51 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Refined data for overview report + */ +export interface WebAnalyticEntityViewReportData { + /** + * entity fully qualified name + */ + entityFqn?: string; + /** + * entity href + */ + entityHref?: string; + /** + * entity tier + */ + entityTier?: string; + /** + * entity type + */ + entityType?: string; + /** + * Name of the entity owner + */ + owner?: string; + /** + * Name of the entity owner + */ + ownerId?: string; + /** + * Tags FQN + */ + tagsFQN?: string[]; + /** + * Number of time the entity was viewed + */ + views?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/webAnalyticUserActivityReportData.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/webAnalyticUserActivityReportData.ts new file mode 100644 index 000000000000..c3980ba76a1b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/reportDataType/webAnalyticUserActivityReportData.ts @@ -0,0 +1,47 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Refined data for overview report + */ +export interface WebAnalyticUserActivityReportData { + /** + * latest session + */ + lastSession?: number; + /** + * the team the user belongs to + */ + team?: string; + /** + * total user count + */ + totalPageView?: number; + /** + * total user count + */ + totalSessionDuration?: number; + /** + * total number of sessions + */ + totalSessions?: number; + /** + * user ID in OM + */ + userId?: string; + /** + * user name + */ + userName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEvent.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEvent.ts new file mode 100644 index 000000000000..b73c4ee670f8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEvent.ts @@ -0,0 +1,189 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Web Analytic Event + */ +export interface WebAnalyticEvent { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the event. + */ + description?: string; + /** + * Display Name that identifies this web analytics event. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * Weather the event is enable (i.e. data is being collected) + */ + enabled?: boolean; + /** + * event type + */ + eventType: WebAnalyticEventType; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of the report. + */ + id?: string; + /** + * Name that identifies this event. + */ + name: string; + /** + * Owners of this report. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who performed the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this report. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * event type + */ +export enum WebAnalyticEventType { + CustomEvent = "CustomEvent", + PageView = "PageView", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventData.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventData.ts new file mode 100644 index 000000000000..23d6904ace2e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventData.ts @@ -0,0 +1,107 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * web analytics event data + */ +export interface WebAnalyticEventData { + /** + * Web analytic data captured + */ + eventData?: Data; + /** + * Unique identifier of the report. + */ + eventId?: string; + /** + * event type + */ + eventType: WebAnalyticEventType; + /** + * event timestamp + */ + timestamp: number; +} + +/** + * Web analytic data captured + * + * Page view data event + * + * Event tracker (e.g. clicks, etc.) + */ +export interface Data { + /** + * complete URL of the page + */ + fullUrl?: string; + /** + * domain name + */ + hostname?: string; + /** + * language set on the page + */ + language?: string; + /** + * time for the page to load in seconds + */ + pageLoadTime?: number; + /** + * referrer URL + */ + referrer?: string; + /** + * Size of the screen + */ + screenSize?: string; + /** + * Unique ID identifying a session + */ + sessionId?: string; + /** + * url part after the domain specification + */ + url?: string; + /** + * OpenMetadata logged in user Id + */ + userId?: string; + /** + * Type of event that was performed + */ + eventType?: CustomEventTypes; + /** + * Value of the event + */ + eventValue?: string; + [property: string]: any; +} + +/** + * Type of event that was performed + * + * Type of events that can be performed + */ +export enum CustomEventTypes { + Click = "CLICK", +} + +/** + * event type + */ +export enum WebAnalyticEventType { + CustomEvent = "CustomEvent", + PageView = "PageView", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventType/customEvent.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventType/customEvent.ts new file mode 100644 index 000000000000..b6ae9dbf4061 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventType/customEvent.ts @@ -0,0 +1,53 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Event tracker (e.g. clicks, etc.) + */ +export interface CustomEvent { + /** + * Type of event that was performed + */ + eventType?: CustomEventTypes; + /** + * Value of the event + */ + eventValue?: string; + /** + * complete URL of the page + */ + fullUrl?: string; + /** + * domain name + */ + hostname?: string; + /** + * Unique ID identifying a session + */ + sessionId?: string; + /** + * url part after the domain specification + */ + url?: string; + [property: string]: any; +} + +/** + * Type of event that was performed + * + * Type of events that can be performed + */ +export enum CustomEventTypes { + Click = "CLICK", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventType/pageViewEvent.ts b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventType/pageViewEvent.ts new file mode 100644 index 000000000000..98f196127879 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/analytics/webAnalyticEventType/pageViewEvent.ts @@ -0,0 +1,56 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Page view data event + */ +export interface PageViewEvent { + /** + * complete URL of the page + */ + fullUrl?: string; + /** + * domain name + */ + hostname?: string; + /** + * language set on the page + */ + language?: string; + /** + * time for the page to load in seconds + */ + pageLoadTime?: number; + /** + * referrer URL + */ + referrer?: string; + /** + * Size of the screen + */ + screenSize?: string; + /** + * Unique ID identifying a session + */ + sessionId?: string; + /** + * url part after the domain specification + */ + url?: string; + /** + * OpenMetadata logged in user Id + */ + userId?: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLink.interp b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLink.interp new file mode 100644 index 000000000000..e7b9b63839fc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLink.interp @@ -0,0 +1,28 @@ +token literal names: +null +'>' +'::' +'<#E' +null +null +null + +token symbolic names: +null +null +null +RESERVED_START +ENTITY_TYPE +ENTITY_FIELD +NAME_OR_FQN + +rule names: +entitylink +entity_type +name_or_fqn +entity_field +separator + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 8, 49, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 6, 2, 19, 10, 2, 13, 2, 14, 2, 20, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 7, 2, 28, 10, 2, 12, 2, 14, 2, 31, 11, 2, 7, 2, 33, 10, 2, 12, 2, 14, 2, 36, 11, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 2, 2, 7, 2, 4, 6, 8, 10, 2, 2, 2, 46, 2, 12, 3, 2, 2, 2, 4, 40, 3, 2, 2, 2, 6, 42, 3, 2, 2, 2, 8, 44, 3, 2, 2, 2, 10, 46, 3, 2, 2, 2, 12, 18, 7, 5, 2, 2, 13, 14, 5, 10, 6, 2, 14, 15, 5, 4, 3, 2, 15, 16, 5, 10, 6, 2, 16, 17, 5, 6, 4, 2, 17, 19, 3, 2, 2, 2, 18, 13, 3, 2, 2, 2, 19, 20, 3, 2, 2, 2, 20, 18, 3, 2, 2, 2, 20, 21, 3, 2, 2, 2, 21, 34, 3, 2, 2, 2, 22, 23, 5, 10, 6, 2, 23, 29, 5, 8, 5, 2, 24, 25, 5, 10, 6, 2, 25, 26, 5, 6, 4, 2, 26, 28, 3, 2, 2, 2, 27, 24, 3, 2, 2, 2, 28, 31, 3, 2, 2, 2, 29, 27, 3, 2, 2, 2, 29, 30, 3, 2, 2, 2, 30, 33, 3, 2, 2, 2, 31, 29, 3, 2, 2, 2, 32, 22, 3, 2, 2, 2, 33, 36, 3, 2, 2, 2, 34, 32, 3, 2, 2, 2, 34, 35, 3, 2, 2, 2, 35, 37, 3, 2, 2, 2, 36, 34, 3, 2, 2, 2, 37, 38, 7, 3, 2, 2, 38, 39, 7, 2, 2, 3, 39, 3, 3, 2, 2, 2, 40, 41, 7, 6, 2, 2, 41, 5, 3, 2, 2, 2, 42, 43, 7, 8, 2, 2, 43, 7, 3, 2, 2, 2, 44, 45, 7, 7, 2, 2, 45, 9, 3, 2, 2, 2, 46, 47, 7, 4, 2, 2, 47, 11, 3, 2, 2, 2, 5, 20, 29, 34] \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLink.tokens b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLink.tokens new file mode 100644 index 000000000000..8303fbb34d32 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLink.tokens @@ -0,0 +1,9 @@ +T__0=1 +T__1=2 +RESERVED_START=3 +ENTITY_TYPE=4 +ENTITY_FIELD=5 +NAME_OR_FQN=6 +'>'=1 +'::'=2 +'<#E'=3 diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.interp b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.interp new file mode 100644 index 000000000000..511aaf88eb07 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.interp @@ -0,0 +1,35 @@ +token literal names: +null +'>' +'::' +'<#E' +null +null +null + +token symbolic names: +null +null +null +RESERVED_START +ENTITY_TYPE +ENTITY_FIELD +NAME_OR_FQN + +rule names: +T__0 +T__1 +RESERVED_START +ENTITY_TYPE +ENTITY_FIELD +NAME_OR_FQN + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 8, 985, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 552, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 974, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 6, 7, 982, 10, 7, 13, 7, 14, 7, 983, 2, 2, 8, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 3, 2, 4, 4, 2, 60, 60, 64, 64, 3, 2, 60, 60, 2, 1081, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 3, 15, 3, 2, 2, 2, 5, 17, 3, 2, 2, 2, 7, 20, 3, 2, 2, 2, 9, 551, 3, 2, 2, 2, 11, 973, 3, 2, 2, 2, 13, 981, 3, 2, 2, 2, 15, 16, 7, 64, 2, 2, 16, 4, 3, 2, 2, 2, 17, 18, 7, 60, 2, 2, 18, 19, 7, 60, 2, 2, 19, 6, 3, 2, 2, 2, 20, 21, 7, 62, 2, 2, 21, 22, 7, 37, 2, 2, 22, 23, 7, 71, 2, 2, 23, 8, 3, 2, 2, 2, 24, 25, 7, 118, 2, 2, 25, 26, 7, 99, 2, 2, 26, 27, 7, 100, 2, 2, 27, 28, 7, 110, 2, 2, 28, 552, 7, 103, 2, 2, 29, 30, 7, 118, 2, 2, 30, 31, 7, 113, 2, 2, 31, 32, 7, 114, 2, 2, 32, 33, 7, 107, 2, 2, 33, 552, 7, 101, 2, 2, 34, 35, 7, 101, 2, 2, 35, 36, 7, 110, 2, 2, 36, 37, 7, 99, 2, 2, 37, 38, 7, 117, 2, 2, 38, 39, 7, 117, 2, 2, 39, 40, 7, 107, 2, 2, 40, 41, 7, 104, 2, 2, 41, 42, 7, 107, 2, 2, 42, 43, 7, 101, 2, 2, 43, 44, 7, 99, 2, 2, 44, 45, 7, 118, 2, 2, 45, 46, 7, 107, 2, 2, 46, 47, 7, 113, 2, 2, 47, 552, 7, 112, 2, 2, 48, 49, 7, 102, 2, 2, 49, 50, 7, 99, 2, 2, 50, 51, 7, 117, 2, 2, 51, 52, 7, 106, 2, 2, 52, 53, 7, 100, 2, 2, 53, 54, 7, 113, 2, 2, 54, 55, 7, 99, 2, 2, 55, 56, 7, 116, 2, 2, 56, 552, 7, 102, 2, 2, 57, 58, 7, 114, 2, 2, 58, 59, 7, 107, 2, 2, 59, 60, 7, 114, 2, 2, 60, 61, 7, 103, 2, 2, 61, 62, 7, 110, 2, 2, 62, 63, 7, 107, 2, 2, 63, 64, 7, 112, 2, 2, 64, 552, 7, 103, 2, 2, 65, 66, 7, 102, 2, 2, 66, 67, 7, 99, 2, 2, 67, 68, 7, 118, 2, 2, 68, 69, 7, 99, 2, 2, 69, 70, 7, 100, 2, 2, 70, 71, 7, 99, 2, 2, 71, 72, 7, 117, 2, 2, 72, 552, 7, 103, 2, 2, 73, 74, 7, 102, 2, 2, 74, 75, 7, 99, 2, 2, 75, 76, 7, 118, 2, 2, 76, 77, 7, 99, 2, 2, 77, 78, 7, 100, 2, 2, 78, 79, 7, 99, 2, 2, 79, 80, 7, 117, 2, 2, 80, 81, 7, 103, 2, 2, 81, 82, 7, 85, 2, 2, 82, 83, 7, 101, 2, 2, 83, 84, 7, 106, 2, 2, 84, 85, 7, 103, 2, 2, 85, 86, 7, 111, 2, 2, 86, 552, 7, 99, 2, 2, 87, 88, 7, 105, 2, 2, 88, 89, 7, 110, 2, 2, 89, 90, 7, 113, 2, 2, 90, 91, 7, 117, 2, 2, 91, 92, 7, 117, 2, 2, 92, 93, 7, 99, 2, 2, 93, 94, 7, 116, 2, 2, 94, 552, 7, 123, 2, 2, 95, 96, 7, 105, 2, 2, 96, 97, 7, 110, 2, 2, 97, 98, 7, 113, 2, 2, 98, 99, 7, 117, 2, 2, 99, 100, 7, 117, 2, 2, 100, 101, 7, 99, 2, 2, 101, 102, 7, 116, 2, 2, 102, 103, 7, 123, 2, 2, 103, 104, 7, 86, 2, 2, 104, 105, 7, 103, 2, 2, 105, 106, 7, 116, 2, 2, 106, 552, 7, 111, 2, 2, 107, 108, 7, 102, 2, 2, 108, 109, 7, 99, 2, 2, 109, 110, 7, 118, 2, 2, 110, 111, 7, 99, 2, 2, 111, 112, 7, 100, 2, 2, 112, 113, 7, 99, 2, 2, 113, 114, 7, 117, 2, 2, 114, 115, 7, 103, 2, 2, 115, 116, 7, 85, 2, 2, 116, 117, 7, 103, 2, 2, 117, 118, 7, 116, 2, 2, 118, 119, 7, 120, 2, 2, 119, 120, 7, 107, 2, 2, 120, 121, 7, 101, 2, 2, 121, 552, 7, 103, 2, 2, 122, 123, 7, 111, 2, 2, 123, 124, 7, 103, 2, 2, 124, 125, 7, 117, 2, 2, 125, 126, 7, 117, 2, 2, 126, 127, 7, 99, 2, 2, 127, 128, 7, 105, 2, 2, 128, 129, 7, 107, 2, 2, 129, 130, 7, 112, 2, 2, 130, 131, 7, 105, 2, 2, 131, 132, 7, 85, 2, 2, 132, 133, 7, 103, 2, 2, 133, 134, 7, 116, 2, 2, 134, 135, 7, 120, 2, 2, 135, 136, 7, 107, 2, 2, 136, 137, 7, 101, 2, 2, 137, 552, 7, 103, 2, 2, 138, 139, 7, 111, 2, 2, 139, 140, 7, 103, 2, 2, 140, 141, 7, 118, 2, 2, 141, 142, 7, 99, 2, 2, 142, 143, 7, 102, 2, 2, 143, 144, 7, 99, 2, 2, 144, 145, 7, 118, 2, 2, 145, 146, 7, 99, 2, 2, 146, 147, 7, 85, 2, 2, 147, 148, 7, 103, 2, 2, 148, 149, 7, 116, 2, 2, 149, 150, 7, 120, 2, 2, 150, 151, 7, 107, 2, 2, 151, 152, 7, 101, 2, 2, 152, 552, 7, 103, 2, 2, 153, 154, 7, 102, 2, 2, 154, 155, 7, 99, 2, 2, 155, 156, 7, 117, 2, 2, 156, 157, 7, 106, 2, 2, 157, 158, 7, 100, 2, 2, 158, 159, 7, 113, 2, 2, 159, 160, 7, 99, 2, 2, 160, 161, 7, 116, 2, 2, 161, 162, 7, 102, 2, 2, 162, 163, 7, 85, 2, 2, 163, 164, 7, 103, 2, 2, 164, 165, 7, 116, 2, 2, 165, 166, 7, 120, 2, 2, 166, 167, 7, 107, 2, 2, 167, 168, 7, 101, 2, 2, 168, 552, 7, 103, 2, 2, 169, 170, 7, 114, 2, 2, 170, 171, 7, 107, 2, 2, 171, 172, 7, 114, 2, 2, 172, 173, 7, 103, 2, 2, 173, 174, 7, 110, 2, 2, 174, 175, 7, 107, 2, 2, 175, 176, 7, 112, 2, 2, 176, 177, 7, 103, 2, 2, 177, 178, 7, 85, 2, 2, 178, 179, 7, 103, 2, 2, 179, 180, 7, 116, 2, 2, 180, 181, 7, 120, 2, 2, 181, 182, 7, 107, 2, 2, 182, 183, 7, 101, 2, 2, 183, 552, 7, 103, 2, 2, 184, 185, 7, 111, 2, 2, 185, 186, 7, 110, 2, 2, 186, 187, 7, 111, 2, 2, 187, 188, 7, 113, 2, 2, 188, 189, 7, 102, 2, 2, 189, 190, 7, 103, 2, 2, 190, 191, 7, 110, 2, 2, 191, 192, 7, 85, 2, 2, 192, 193, 7, 103, 2, 2, 193, 194, 7, 116, 2, 2, 194, 195, 7, 120, 2, 2, 195, 196, 7, 107, 2, 2, 196, 197, 7, 101, 2, 2, 197, 552, 7, 103, 2, 2, 198, 199, 7, 117, 2, 2, 199, 200, 7, 118, 2, 2, 200, 201, 7, 113, 2, 2, 201, 202, 7, 116, 2, 2, 202, 203, 7, 99, 2, 2, 203, 204, 7, 105, 2, 2, 204, 205, 7, 103, 2, 2, 205, 206, 7, 85, 2, 2, 206, 207, 7, 103, 2, 2, 207, 208, 7, 116, 2, 2, 208, 209, 7, 120, 2, 2, 209, 210, 7, 107, 2, 2, 210, 211, 7, 101, 2, 2, 211, 552, 7, 103, 2, 2, 212, 213, 7, 117, 2, 2, 213, 214, 7, 103, 2, 2, 214, 215, 7, 99, 2, 2, 215, 216, 7, 116, 2, 2, 216, 217, 7, 101, 2, 2, 217, 218, 7, 106, 2, 2, 218, 219, 7, 85, 2, 2, 219, 220, 7, 103, 2, 2, 220, 221, 7, 116, 2, 2, 221, 222, 7, 120, 2, 2, 222, 223, 7, 107, 2, 2, 223, 224, 7, 101, 2, 2, 224, 552, 7, 103, 2, 2, 225, 226, 7, 121, 2, 2, 226, 227, 7, 103, 2, 2, 227, 228, 7, 100, 2, 2, 228, 229, 7, 106, 2, 2, 229, 230, 7, 113, 2, 2, 230, 231, 7, 113, 2, 2, 231, 552, 7, 109, 2, 2, 232, 233, 7, 111, 2, 2, 233, 234, 7, 110, 2, 2, 234, 235, 7, 111, 2, 2, 235, 236, 7, 113, 2, 2, 236, 237, 7, 102, 2, 2, 237, 238, 7, 103, 2, 2, 238, 552, 7, 110, 2, 2, 239, 240, 7, 118, 2, 2, 240, 241, 7, 103, 2, 2, 241, 242, 7, 99, 2, 2, 242, 552, 7, 111, 2, 2, 243, 244, 7, 119, 2, 2, 244, 245, 7, 117, 2, 2, 245, 246, 7, 103, 2, 2, 246, 552, 7, 116, 2, 2, 247, 248, 7, 100, 2, 2, 248, 249, 7, 113, 2, 2, 249, 552, 7, 118, 2, 2, 250, 251, 7, 116, 2, 2, 251, 252, 7, 113, 2, 2, 252, 253, 7, 110, 2, 2, 253, 552, 7, 103, 2, 2, 254, 255, 7, 114, 2, 2, 255, 256, 7, 113, 2, 2, 256, 257, 7, 110, 2, 2, 257, 258, 7, 107, 2, 2, 258, 259, 7, 101, 2, 2, 259, 552, 7, 123, 2, 2, 260, 261, 7, 118, 2, 2, 261, 262, 7, 103, 2, 2, 262, 263, 7, 117, 2, 2, 263, 264, 7, 118, 2, 2, 264, 265, 7, 85, 2, 2, 265, 266, 7, 119, 2, 2, 266, 267, 7, 107, 2, 2, 267, 268, 7, 118, 2, 2, 268, 552, 7, 103, 2, 2, 269, 270, 7, 118, 2, 2, 270, 271, 7, 103, 2, 2, 271, 272, 7, 117, 2, 2, 272, 273, 7, 118, 2, 2, 273, 274, 7, 69, 2, 2, 274, 275, 7, 99, 2, 2, 275, 276, 7, 117, 2, 2, 276, 552, 7, 103, 2, 2, 277, 278, 7, 102, 2, 2, 278, 279, 7, 99, 2, 2, 279, 280, 7, 118, 2, 2, 280, 281, 7, 99, 2, 2, 281, 282, 7, 75, 2, 2, 282, 283, 7, 112, 2, 2, 283, 284, 7, 117, 2, 2, 284, 285, 7, 107, 2, 2, 285, 286, 7, 105, 2, 2, 286, 287, 7, 106, 2, 2, 287, 288, 7, 118, 2, 2, 288, 289, 7, 69, 2, 2, 289, 290, 7, 106, 2, 2, 290, 291, 7, 99, 2, 2, 291, 292, 7, 116, 2, 2, 292, 552, 7, 118, 2, 2, 293, 294, 7, 109, 2, 2, 294, 295, 7, 114, 2, 2, 295, 552, 7, 107, 2, 2, 296, 297, 7, 99, 2, 2, 297, 298, 7, 110, 2, 2, 298, 299, 7, 103, 2, 2, 299, 300, 7, 116, 2, 2, 300, 552, 7, 118, 2, 2, 301, 302, 7, 101, 2, 2, 302, 303, 7, 113, 2, 2, 303, 304, 7, 112, 2, 2, 304, 305, 7, 118, 2, 2, 305, 306, 7, 99, 2, 2, 306, 307, 7, 107, 2, 2, 307, 308, 7, 112, 2, 2, 308, 309, 7, 103, 2, 2, 309, 552, 7, 116, 2, 2, 310, 311, 7, 118, 2, 2, 311, 312, 7, 99, 2, 2, 312, 552, 7, 105, 2, 2, 313, 314, 7, 102, 2, 2, 314, 315, 7, 99, 2, 2, 315, 316, 7, 117, 2, 2, 316, 317, 7, 106, 2, 2, 317, 318, 7, 100, 2, 2, 318, 319, 7, 113, 2, 2, 319, 320, 7, 99, 2, 2, 320, 321, 7, 116, 2, 2, 321, 322, 7, 102, 2, 2, 322, 323, 7, 70, 2, 2, 323, 324, 7, 99, 2, 2, 324, 325, 7, 118, 2, 2, 325, 326, 7, 99, 2, 2, 326, 327, 7, 79, 2, 2, 327, 328, 7, 113, 2, 2, 328, 329, 7, 102, 2, 2, 329, 330, 7, 103, 2, 2, 330, 552, 7, 110, 2, 2, 331, 332, 7, 117, 2, 2, 332, 333, 7, 119, 2, 2, 333, 334, 7, 100, 2, 2, 334, 335, 7, 117, 2, 2, 335, 336, 7, 101, 2, 2, 336, 337, 7, 116, 2, 2, 337, 338, 7, 107, 2, 2, 338, 339, 7, 114, 2, 2, 339, 340, 7, 118, 2, 2, 340, 341, 7, 107, 2, 2, 341, 342, 7, 113, 2, 2, 342, 552, 7, 112, 2, 2, 343, 344, 7, 101, 2, 2, 344, 345, 7, 106, 2, 2, 345, 346, 7, 99, 2, 2, 346, 347, 7, 116, 2, 2, 347, 552, 7, 118, 2, 2, 348, 349, 7, 102, 2, 2, 349, 350, 7, 113, 2, 2, 350, 351, 7, 111, 2, 2, 351, 352, 7, 99, 2, 2, 352, 353, 7, 107, 2, 2, 353, 552, 7, 112, 2, 2, 354, 355, 7, 102, 2, 2, 355, 356, 7, 99, 2, 2, 356, 357, 7, 118, 2, 2, 357, 358, 7, 99, 2, 2, 358, 359, 7, 82, 2, 2, 359, 360, 7, 116, 2, 2, 360, 361, 7, 113, 2, 2, 361, 362, 7, 102, 2, 2, 362, 363, 7, 119, 2, 2, 363, 364, 7, 101, 2, 2, 364, 552, 7, 118, 2, 2, 365, 366, 7, 117, 2, 2, 366, 367, 7, 99, 2, 2, 367, 368, 7, 111, 2, 2, 368, 369, 7, 114, 2, 2, 369, 370, 7, 110, 2, 2, 370, 371, 7, 103, 2, 2, 371, 372, 7, 70, 2, 2, 372, 373, 7, 99, 2, 2, 373, 374, 7, 118, 2, 2, 374, 552, 7, 99, 2, 2, 375, 376, 7, 117, 2, 2, 376, 377, 7, 118, 2, 2, 377, 378, 7, 113, 2, 2, 378, 379, 7, 116, 2, 2, 379, 380, 7, 103, 2, 2, 380, 381, 7, 102, 2, 2, 381, 382, 7, 82, 2, 2, 382, 383, 7, 116, 2, 2, 383, 384, 7, 113, 2, 2, 384, 385, 7, 101, 2, 2, 385, 386, 7, 103, 2, 2, 386, 387, 7, 102, 2, 2, 387, 388, 7, 119, 2, 2, 388, 389, 7, 116, 2, 2, 389, 552, 7, 103, 2, 2, 390, 391, 7, 117, 2, 2, 391, 392, 7, 103, 2, 2, 392, 393, 7, 99, 2, 2, 393, 394, 7, 116, 2, 2, 394, 395, 7, 101, 2, 2, 395, 396, 7, 106, 2, 2, 396, 397, 7, 75, 2, 2, 397, 398, 7, 112, 2, 2, 398, 399, 7, 102, 2, 2, 399, 400, 7, 103, 2, 2, 400, 552, 7, 122, 2, 2, 401, 402, 7, 99, 2, 2, 402, 403, 7, 114, 2, 2, 403, 404, 7, 114, 2, 2, 404, 405, 7, 79, 2, 2, 405, 406, 7, 99, 2, 2, 406, 407, 7, 116, 2, 2, 407, 408, 7, 109, 2, 2, 408, 409, 7, 103, 2, 2, 409, 410, 7, 118, 2, 2, 410, 411, 7, 82, 2, 2, 411, 412, 7, 110, 2, 2, 412, 413, 7, 99, 2, 2, 413, 414, 7, 101, 2, 2, 414, 415, 7, 103, 2, 2, 415, 416, 7, 70, 2, 2, 416, 417, 7, 103, 2, 2, 417, 418, 7, 104, 2, 2, 418, 419, 7, 107, 2, 2, 419, 420, 7, 112, 2, 2, 420, 421, 7, 107, 2, 2, 421, 422, 7, 118, 2, 2, 422, 423, 7, 107, 2, 2, 423, 424, 7, 113, 2, 2, 424, 552, 7, 112, 2, 2, 425, 426, 7, 99, 2, 2, 426, 427, 7, 114, 2, 2, 427, 552, 7, 114, 2, 2, 428, 429, 7, 114, 2, 2, 429, 430, 7, 103, 2, 2, 430, 431, 7, 116, 2, 2, 431, 432, 7, 117, 2, 2, 432, 433, 7, 113, 2, 2, 433, 434, 7, 112, 2, 2, 434, 552, 7, 99, 2, 2, 435, 436, 7, 102, 2, 2, 436, 437, 7, 113, 2, 2, 437, 438, 7, 101, 2, 2, 438, 439, 7, 85, 2, 2, 439, 440, 7, 118, 2, 2, 440, 441, 7, 113, 2, 2, 441, 442, 7, 116, 2, 2, 442, 552, 7, 103, 2, 2, 443, 444, 7, 114, 2, 2, 444, 445, 7, 99, 2, 2, 445, 446, 7, 105, 2, 2, 446, 552, 7, 103, 2, 2, 447, 448, 7, 77, 2, 2, 448, 449, 7, 112, 2, 2, 449, 450, 7, 113, 2, 2, 450, 451, 7, 121, 2, 2, 451, 452, 7, 78, 2, 2, 452, 453, 7, 103, 2, 2, 453, 454, 7, 102, 2, 2, 454, 455, 7, 105, 2, 2, 455, 456, 7, 103, 2, 2, 456, 457, 7, 82, 2, 2, 457, 458, 7, 99, 2, 2, 458, 459, 7, 112, 2, 2, 459, 460, 7, 103, 2, 2, 460, 461, 7, 110, 2, 2, 461, 552, 7, 117, 2, 2, 462, 463, 7, 105, 2, 2, 463, 464, 7, 113, 2, 2, 464, 465, 7, 120, 2, 2, 465, 466, 7, 103, 2, 2, 466, 467, 7, 116, 2, 2, 467, 552, 7, 112, 2, 2, 468, 469, 7, 99, 2, 2, 469, 470, 7, 110, 2, 2, 470, 552, 7, 110, 2, 2, 471, 472, 7, 101, 2, 2, 472, 473, 7, 119, 2, 2, 473, 474, 7, 117, 2, 2, 474, 475, 7, 118, 2, 2, 475, 476, 7, 113, 2, 2, 476, 477, 7, 111, 2, 2, 477, 478, 7, 79, 2, 2, 478, 479, 7, 103, 2, 2, 479, 480, 7, 118, 2, 2, 480, 481, 7, 116, 2, 2, 481, 482, 7, 107, 2, 2, 482, 552, 7, 101, 2, 2, 483, 484, 7, 103, 2, 2, 484, 485, 7, 120, 2, 2, 485, 486, 7, 103, 2, 2, 486, 487, 7, 112, 2, 2, 487, 488, 7, 118, 2, 2, 488, 489, 7, 117, 2, 2, 489, 490, 7, 119, 2, 2, 490, 491, 7, 100, 2, 2, 491, 492, 7, 117, 2, 2, 492, 493, 7, 101, 2, 2, 493, 494, 7, 116, 2, 2, 494, 495, 7, 107, 2, 2, 495, 496, 7, 114, 2, 2, 496, 497, 7, 118, 2, 2, 497, 498, 7, 107, 2, 2, 498, 499, 7, 113, 2, 2, 499, 552, 7, 112, 2, 2, 500, 501, 7, 107, 2, 2, 501, 502, 7, 112, 2, 2, 502, 503, 7, 105, 2, 2, 503, 504, 7, 103, 2, 2, 504, 505, 7, 117, 2, 2, 505, 506, 7, 118, 2, 2, 506, 507, 7, 107, 2, 2, 507, 508, 7, 113, 2, 2, 508, 509, 7, 112, 2, 2, 509, 510, 7, 82, 2, 2, 510, 511, 7, 107, 2, 2, 511, 512, 7, 114, 2, 2, 512, 513, 7, 103, 2, 2, 513, 514, 7, 110, 2, 2, 514, 515, 7, 107, 2, 2, 515, 516, 7, 112, 2, 2, 516, 552, 7, 103, 2, 2, 517, 518, 7, 99, 2, 2, 518, 519, 7, 114, 2, 2, 519, 520, 7, 107, 2, 2, 520, 521, 7, 69, 2, 2, 521, 522, 7, 113, 2, 2, 522, 523, 7, 110, 2, 2, 523, 524, 7, 110, 2, 2, 524, 525, 7, 103, 2, 2, 525, 526, 7, 101, 2, 2, 526, 527, 7, 118, 2, 2, 527, 528, 7, 107, 2, 2, 528, 529, 7, 113, 2, 2, 529, 552, 7, 112, 2, 2, 530, 531, 7, 99, 2, 2, 531, 532, 7, 114, 2, 2, 532, 533, 7, 107, 2, 2, 533, 534, 7, 71, 2, 2, 534, 535, 7, 112, 2, 2, 535, 536, 7, 102, 2, 2, 536, 537, 7, 114, 2, 2, 537, 538, 7, 113, 2, 2, 538, 539, 7, 107, 2, 2, 539, 540, 7, 112, 2, 2, 540, 552, 7, 118, 2, 2, 541, 542, 7, 99, 2, 2, 542, 543, 7, 114, 2, 2, 543, 544, 7, 107, 2, 2, 544, 545, 7, 85, 2, 2, 545, 546, 7, 103, 2, 2, 546, 547, 7, 116, 2, 2, 547, 548, 7, 120, 2, 2, 548, 549, 7, 107, 2, 2, 549, 550, 7, 101, 2, 2, 550, 552, 7, 103, 2, 2, 551, 24, 3, 2, 2, 2, 551, 29, 3, 2, 2, 2, 551, 34, 3, 2, 2, 2, 551, 48, 3, 2, 2, 2, 551, 57, 3, 2, 2, 2, 551, 65, 3, 2, 2, 2, 551, 73, 3, 2, 2, 2, 551, 87, 3, 2, 2, 2, 551, 95, 3, 2, 2, 2, 551, 107, 3, 2, 2, 2, 551, 122, 3, 2, 2, 2, 551, 138, 3, 2, 2, 2, 551, 153, 3, 2, 2, 2, 551, 169, 3, 2, 2, 2, 551, 184, 3, 2, 2, 2, 551, 198, 3, 2, 2, 2, 551, 212, 3, 2, 2, 2, 551, 225, 3, 2, 2, 2, 551, 232, 3, 2, 2, 2, 551, 239, 3, 2, 2, 2, 551, 243, 3, 2, 2, 2, 551, 247, 3, 2, 2, 2, 551, 250, 3, 2, 2, 2, 551, 254, 3, 2, 2, 2, 551, 260, 3, 2, 2, 2, 551, 269, 3, 2, 2, 2, 551, 277, 3, 2, 2, 2, 551, 293, 3, 2, 2, 2, 551, 296, 3, 2, 2, 2, 551, 301, 3, 2, 2, 2, 551, 310, 3, 2, 2, 2, 551, 313, 3, 2, 2, 2, 551, 331, 3, 2, 2, 2, 551, 343, 3, 2, 2, 2, 551, 348, 3, 2, 2, 2, 551, 354, 3, 2, 2, 2, 551, 365, 3, 2, 2, 2, 551, 375, 3, 2, 2, 2, 551, 390, 3, 2, 2, 2, 551, 401, 3, 2, 2, 2, 551, 425, 3, 2, 2, 2, 551, 428, 3, 2, 2, 2, 551, 435, 3, 2, 2, 2, 551, 443, 3, 2, 2, 2, 551, 447, 3, 2, 2, 2, 551, 462, 3, 2, 2, 2, 551, 468, 3, 2, 2, 2, 551, 471, 3, 2, 2, 2, 551, 483, 3, 2, 2, 2, 551, 500, 3, 2, 2, 2, 551, 517, 3, 2, 2, 2, 551, 530, 3, 2, 2, 2, 551, 541, 3, 2, 2, 2, 552, 10, 3, 2, 2, 2, 553, 554, 7, 102, 2, 2, 554, 555, 7, 103, 2, 2, 555, 556, 7, 117, 2, 2, 556, 557, 7, 101, 2, 2, 557, 558, 7, 116, 2, 2, 558, 559, 7, 107, 2, 2, 559, 560, 7, 114, 2, 2, 560, 561, 7, 118, 2, 2, 561, 562, 7, 107, 2, 2, 562, 563, 7, 113, 2, 2, 563, 974, 7, 112, 2, 2, 564, 565, 7, 101, 2, 2, 565, 566, 7, 113, 2, 2, 566, 567, 7, 110, 2, 2, 567, 568, 7, 119, 2, 2, 568, 569, 7, 111, 2, 2, 569, 570, 7, 112, 2, 2, 570, 974, 7, 117, 2, 2, 571, 572, 7, 117, 2, 2, 572, 573, 7, 101, 2, 2, 573, 574, 7, 106, 2, 2, 574, 575, 7, 103, 2, 2, 575, 576, 7, 111, 2, 2, 576, 577, 7, 99, 2, 2, 577, 578, 7, 72, 2, 2, 578, 579, 7, 107, 2, 2, 579, 580, 7, 103, 2, 2, 580, 581, 7, 110, 2, 2, 581, 582, 7, 102, 2, 2, 582, 974, 7, 117, 2, 2, 583, 584, 7, 118, 2, 2, 584, 585, 7, 99, 2, 2, 585, 586, 7, 105, 2, 2, 586, 974, 7, 117, 2, 2, 587, 588, 7, 118, 2, 2, 588, 589, 7, 99, 2, 2, 589, 590, 7, 117, 2, 2, 590, 591, 7, 109, 2, 2, 591, 974, 7, 117, 2, 2, 592, 593, 7, 111, 2, 2, 593, 594, 7, 110, 2, 2, 594, 595, 7, 72, 2, 2, 595, 596, 7, 103, 2, 2, 596, 597, 7, 99, 2, 2, 597, 598, 7, 118, 2, 2, 598, 599, 7, 119, 2, 2, 599, 600, 7, 116, 2, 2, 600, 601, 7, 103, 2, 2, 601, 974, 7, 117, 2, 2, 602, 603, 7, 117, 2, 2, 603, 604, 7, 101, 2, 2, 604, 605, 7, 106, 2, 2, 605, 606, 7, 103, 2, 2, 606, 607, 7, 111, 2, 2, 607, 608, 7, 99, 2, 2, 608, 609, 7, 86, 2, 2, 609, 610, 7, 103, 2, 2, 610, 611, 7, 122, 2, 2, 611, 974, 7, 118, 2, 2, 612, 613, 7, 113, 2, 2, 613, 614, 7, 121, 2, 2, 614, 615, 7, 112, 2, 2, 615, 616, 7, 103, 2, 2, 616, 974, 7, 116, 2, 2, 617, 618, 7, 116, 2, 2, 618, 619, 7, 103, 2, 2, 619, 620, 7, 120, 2, 2, 620, 621, 7, 107, 2, 2, 621, 622, 7, 103, 2, 2, 622, 623, 7, 121, 2, 2, 623, 624, 7, 103, 2, 2, 624, 625, 7, 116, 2, 2, 625, 974, 7, 117, 2, 2, 626, 627, 7, 117, 2, 2, 627, 628, 7, 123, 2, 2, 628, 629, 7, 112, 2, 2, 629, 630, 7, 113, 2, 2, 630, 631, 7, 112, 2, 2, 631, 632, 7, 123, 2, 2, 632, 633, 7, 111, 2, 2, 633, 974, 7, 117, 2, 2, 634, 635, 7, 116, 2, 2, 635, 636, 7, 103, 2, 2, 636, 637, 7, 110, 2, 2, 637, 638, 7, 99, 2, 2, 638, 639, 7, 118, 2, 2, 639, 640, 7, 103, 2, 2, 640, 641, 7, 102, 2, 2, 641, 642, 7, 86, 2, 2, 642, 643, 7, 103, 2, 2, 643, 644, 7, 116, 2, 2, 644, 645, 7, 111, 2, 2, 645, 974, 7, 117, 2, 2, 646, 647, 7, 116, 2, 2, 647, 648, 7, 103, 2, 2, 648, 649, 7, 104, 2, 2, 649, 650, 7, 103, 2, 2, 650, 651, 7, 116, 2, 2, 651, 652, 7, 103, 2, 2, 652, 653, 7, 112, 2, 2, 653, 654, 7, 101, 2, 2, 654, 655, 7, 103, 2, 2, 655, 974, 7, 117, 2, 2, 656, 657, 7, 103, 2, 2, 657, 658, 7, 122, 2, 2, 658, 659, 7, 118, 2, 2, 659, 660, 7, 103, 2, 2, 660, 661, 7, 112, 2, 2, 661, 662, 7, 117, 2, 2, 662, 663, 7, 107, 2, 2, 663, 664, 7, 113, 2, 2, 664, 974, 7, 112, 2, 2, 665, 666, 7, 102, 2, 2, 666, 667, 7, 107, 2, 2, 667, 668, 7, 117, 2, 2, 668, 669, 7, 114, 2, 2, 669, 670, 7, 110, 2, 2, 670, 671, 7, 99, 2, 2, 671, 672, 7, 123, 2, 2, 672, 673, 7, 80, 2, 2, 673, 674, 7, 99, 2, 2, 674, 675, 7, 111, 2, 2, 675, 974, 7, 103, 2, 2, 676, 677, 7, 112, 2, 2, 677, 678, 7, 99, 2, 2, 678, 679, 7, 111, 2, 2, 679, 974, 7, 103, 2, 2, 680, 681, 7, 111, 2, 2, 681, 682, 7, 103, 2, 2, 682, 683, 7, 117, 2, 2, 683, 684, 7, 117, 2, 2, 684, 685, 7, 99, 2, 2, 685, 686, 7, 105, 2, 2, 686, 687, 7, 103, 2, 2, 687, 688, 7, 85, 2, 2, 688, 689, 7, 101, 2, 2, 689, 690, 7, 106, 2, 2, 690, 691, 7, 103, 2, 2, 691, 692, 7, 111, 2, 2, 692, 974, 7, 99, 2, 2, 693, 694, 7, 101, 2, 2, 694, 695, 7, 106, 2, 2, 695, 696, 7, 99, 2, 2, 696, 697, 7, 116, 2, 2, 697, 698, 7, 118, 2, 2, 698, 974, 7, 117, 2, 2, 699, 700, 7, 102, 2, 2, 700, 701, 7, 99, 2, 2, 701, 702, 7, 118, 2, 2, 702, 703, 7, 99, 2, 2, 703, 704, 7, 79, 2, 2, 704, 705, 7, 113, 2, 2, 705, 706, 7, 102, 2, 2, 706, 707, 7, 103, 2, 2, 707, 974, 7, 110, 2, 2, 708, 709, 7, 101, 2, 2, 709, 710, 7, 113, 2, 2, 710, 711, 7, 112, 2, 2, 711, 712, 7, 117, 2, 2, 712, 713, 7, 118, 2, 2, 713, 714, 7, 116, 2, 2, 714, 715, 7, 99, 2, 2, 715, 716, 7, 107, 2, 2, 716, 717, 7, 112, 2, 2, 717, 974, 7, 118, 2, 2, 718, 719, 7, 118, 2, 2, 719, 720, 7, 99, 2, 2, 720, 721, 7, 100, 2, 2, 721, 722, 7, 110, 2, 2, 722, 723, 7, 103, 2, 2, 723, 724, 7, 69, 2, 2, 724, 725, 7, 113, 2, 2, 725, 726, 7, 112, 2, 2, 726, 727, 7, 117, 2, 2, 727, 728, 7, 118, 2, 2, 728, 729, 7, 116, 2, 2, 729, 730, 7, 99, 2, 2, 730, 731, 7, 107, 2, 2, 731, 732, 7, 112, 2, 2, 732, 733, 7, 118, 2, 2, 733, 974, 7, 117, 2, 2, 734, 735, 7, 114, 2, 2, 735, 736, 7, 99, 2, 2, 736, 737, 7, 116, 2, 2, 737, 738, 7, 118, 2, 2, 738, 739, 7, 107, 2, 2, 739, 740, 7, 118, 2, 2, 740, 741, 7, 107, 2, 2, 741, 742, 7, 113, 2, 2, 742, 743, 7, 112, 2, 2, 743, 974, 7, 117, 2, 2, 744, 745, 7, 116, 2, 2, 745, 746, 7, 103, 2, 2, 746, 747, 7, 114, 2, 2, 747, 748, 7, 110, 2, 2, 748, 749, 7, 107, 2, 2, 749, 750, 7, 101, 2, 2, 750, 751, 7, 99, 2, 2, 751, 752, 7, 118, 2, 2, 752, 753, 7, 107, 2, 2, 753, 754, 7, 113, 2, 2, 754, 755, 7, 112, 2, 2, 755, 756, 7, 72, 2, 2, 756, 757, 7, 99, 2, 2, 757, 758, 7, 101, 2, 2, 758, 759, 7, 118, 2, 2, 759, 760, 7, 113, 2, 2, 760, 974, 7, 116, 2, 2, 761, 762, 7, 117, 2, 2, 762, 763, 7, 113, 2, 2, 763, 764, 7, 119, 2, 2, 764, 765, 7, 116, 2, 2, 765, 766, 7, 101, 2, 2, 766, 767, 7, 103, 2, 2, 767, 768, 7, 87, 2, 2, 768, 769, 7, 116, 2, 2, 769, 974, 7, 110, 2, 2, 770, 771, 7, 111, 2, 2, 771, 772, 7, 119, 2, 2, 772, 773, 7, 118, 2, 2, 773, 774, 7, 119, 2, 2, 774, 775, 7, 99, 2, 2, 775, 776, 7, 110, 2, 2, 776, 777, 7, 110, 2, 2, 777, 778, 7, 123, 2, 2, 778, 779, 7, 71, 2, 2, 779, 780, 7, 122, 2, 2, 780, 781, 7, 101, 2, 2, 781, 782, 7, 110, 2, 2, 782, 783, 7, 119, 2, 2, 783, 784, 7, 117, 2, 2, 784, 785, 7, 107, 2, 2, 785, 786, 7, 120, 2, 2, 786, 974, 7, 103, 2, 2, 787, 788, 7, 103, 2, 2, 788, 789, 7, 122, 2, 2, 789, 790, 7, 114, 2, 2, 790, 791, 7, 103, 2, 2, 791, 792, 7, 116, 2, 2, 792, 793, 7, 118, 2, 2, 793, 974, 7, 117, 2, 2, 794, 795, 7, 104, 2, 2, 795, 796, 7, 107, 2, 2, 796, 797, 7, 103, 2, 2, 797, 798, 7, 110, 2, 2, 798, 799, 7, 102, 2, 2, 799, 974, 7, 117, 2, 2, 800, 801, 7, 104, 2, 2, 801, 802, 7, 113, 2, 2, 802, 803, 7, 110, 2, 2, 803, 804, 7, 110, 2, 2, 804, 805, 7, 113, 2, 2, 805, 806, 7, 121, 2, 2, 806, 807, 7, 103, 2, 2, 807, 808, 7, 116, 2, 2, 808, 974, 7, 117, 2, 2, 809, 810, 7, 99, 2, 2, 810, 811, 7, 114, 2, 2, 811, 812, 7, 114, 2, 2, 812, 813, 7, 69, 2, 2, 813, 814, 7, 113, 2, 2, 814, 815, 7, 112, 2, 2, 815, 816, 7, 104, 2, 2, 816, 817, 7, 107, 2, 2, 817, 818, 7, 105, 2, 2, 818, 819, 7, 119, 2, 2, 819, 820, 7, 116, 2, 2, 820, 821, 7, 99, 2, 2, 821, 822, 7, 118, 2, 2, 822, 823, 7, 107, 2, 2, 823, 824, 7, 113, 2, 2, 824, 974, 7, 112, 2, 2, 825, 826, 7, 99, 2, 2, 826, 827, 7, 114, 2, 2, 827, 828, 7, 114, 2, 2, 828, 829, 7, 85, 2, 2, 829, 830, 7, 101, 2, 2, 830, 831, 7, 106, 2, 2, 831, 832, 7, 103, 2, 2, 832, 833, 7, 102, 2, 2, 833, 834, 7, 119, 2, 2, 834, 835, 7, 110, 2, 2, 835, 974, 7, 103, 2, 2, 836, 837, 7, 120, 2, 2, 837, 838, 7, 113, 2, 2, 838, 839, 7, 118, 2, 2, 839, 840, 7, 103, 2, 2, 840, 974, 7, 117, 2, 2, 841, 842, 7, 114, 2, 2, 842, 843, 7, 116, 2, 2, 843, 844, 7, 113, 2, 2, 844, 845, 7, 104, 2, 2, 845, 846, 7, 107, 2, 2, 846, 847, 7, 110, 2, 2, 847, 974, 7, 103, 2, 2, 848, 849, 7, 116, 2, 2, 849, 850, 7, 113, 2, 2, 850, 851, 7, 110, 2, 2, 851, 852, 7, 103, 2, 2, 852, 974, 7, 117, 2, 2, 853, 854, 7, 102, 2, 2, 854, 855, 7, 103, 2, 2, 855, 856, 7, 110, 2, 2, 856, 857, 7, 103, 2, 2, 857, 858, 7, 118, 2, 2, 858, 859, 7, 103, 2, 2, 859, 974, 7, 102, 2, 2, 860, 861, 7, 110, 2, 2, 861, 862, 7, 107, 2, 2, 862, 863, 7, 104, 2, 2, 863, 864, 7, 103, 2, 2, 864, 865, 7, 69, 2, 2, 865, 866, 7, 123, 2, 2, 866, 867, 7, 101, 2, 2, 867, 868, 7, 110, 2, 2, 868, 974, 7, 103, 2, 2, 869, 870, 7, 99, 2, 2, 870, 871, 7, 114, 2, 2, 871, 872, 7, 107, 2, 2, 872, 873, 7, 97, 2, 2, 873, 874, 7, 101, 2, 2, 874, 875, 7, 110, 2, 2, 875, 876, 7, 107, 2, 2, 876, 877, 7, 103, 2, 2, 877, 878, 7, 112, 2, 2, 878, 879, 7, 118, 2, 2, 879, 880, 7, 97, 2, 2, 880, 881, 7, 107, 2, 2, 881, 974, 7, 102, 2, 2, 882, 883, 7, 117, 2, 2, 883, 884, 7, 113, 2, 2, 884, 885, 7, 119, 2, 2, 885, 886, 7, 116, 2, 2, 886, 887, 7, 101, 2, 2, 887, 888, 7, 103, 2, 2, 888, 889, 7, 74, 2, 2, 889, 890, 7, 99, 2, 2, 890, 891, 7, 117, 2, 2, 891, 974, 7, 106, 2, 2, 892, 893, 7, 118, 2, 2, 893, 894, 7, 103, 2, 2, 894, 895, 7, 117, 2, 2, 895, 896, 7, 118, 2, 2, 896, 897, 7, 69, 2, 2, 897, 898, 7, 99, 2, 2, 898, 899, 7, 117, 2, 2, 899, 900, 7, 103, 2, 2, 900, 901, 7, 84, 2, 2, 901, 902, 7, 103, 2, 2, 902, 903, 7, 117, 2, 2, 903, 904, 7, 119, 2, 2, 904, 905, 7, 110, 2, 2, 905, 974, 7, 118, 2, 2, 906, 907, 7, 118, 2, 2, 907, 908, 7, 103, 2, 2, 908, 909, 7, 117, 2, 2, 909, 910, 7, 118, 2, 2, 910, 974, 7, 117, 2, 2, 911, 912, 7, 114, 2, 2, 912, 913, 7, 107, 2, 2, 913, 914, 7, 114, 2, 2, 914, 915, 7, 103, 2, 2, 915, 916, 7, 110, 2, 2, 916, 917, 7, 107, 2, 2, 917, 918, 7, 112, 2, 2, 918, 919, 7, 103, 2, 2, 919, 920, 7, 85, 2, 2, 920, 921, 7, 118, 2, 2, 921, 922, 7, 99, 2, 2, 922, 923, 7, 118, 2, 2, 923, 924, 7, 119, 2, 2, 924, 974, 7, 117, 2, 2, 925, 926, 7, 102, 2, 2, 926, 927, 7, 99, 2, 2, 927, 928, 7, 118, 2, 2, 928, 929, 7, 99, 2, 2, 929, 930, 7, 82, 2, 2, 930, 931, 7, 116, 2, 2, 931, 932, 7, 113, 2, 2, 932, 933, 7, 102, 2, 2, 933, 934, 7, 119, 2, 2, 934, 935, 7, 101, 2, 2, 935, 936, 7, 118, 2, 2, 936, 974, 7, 117, 2, 2, 937, 938, 7, 114, 2, 2, 938, 939, 7, 99, 2, 2, 939, 940, 7, 116, 2, 2, 940, 941, 7, 99, 2, 2, 941, 942, 7, 111, 2, 2, 942, 943, 7, 103, 2, 2, 943, 944, 7, 118, 2, 2, 944, 945, 7, 103, 2, 2, 945, 946, 7, 116, 2, 2, 946, 947, 7, 88, 2, 2, 947, 948, 7, 99, 2, 2, 948, 949, 7, 110, 2, 2, 949, 950, 7, 119, 2, 2, 950, 951, 7, 103, 2, 2, 951, 974, 7, 117, 2, 2, 952, 953, 7, 116, 2, 2, 953, 954, 7, 103, 2, 2, 954, 955, 7, 118, 2, 2, 955, 956, 7, 103, 2, 2, 956, 957, 7, 112, 2, 2, 957, 958, 7, 118, 2, 2, 958, 959, 7, 107, 2, 2, 959, 960, 7, 113, 2, 2, 960, 961, 7, 112, 2, 2, 961, 962, 7, 82, 2, 2, 962, 963, 7, 103, 2, 2, 963, 964, 7, 116, 2, 2, 964, 965, 7, 107, 2, 2, 965, 966, 7, 113, 2, 2, 966, 974, 7, 102, 2, 2, 967, 968, 7, 114, 2, 2, 968, 969, 7, 99, 2, 2, 969, 970, 7, 116, 2, 2, 970, 971, 7, 103, 2, 2, 971, 972, 7, 112, 2, 2, 972, 974, 7, 118, 2, 2, 973, 553, 3, 2, 2, 2, 973, 564, 3, 2, 2, 2, 973, 571, 3, 2, 2, 2, 973, 583, 3, 2, 2, 2, 973, 587, 3, 2, 2, 2, 973, 592, 3, 2, 2, 2, 973, 602, 3, 2, 2, 2, 973, 612, 3, 2, 2, 2, 973, 617, 3, 2, 2, 2, 973, 626, 3, 2, 2, 2, 973, 634, 3, 2, 2, 2, 973, 646, 3, 2, 2, 2, 973, 656, 3, 2, 2, 2, 973, 665, 3, 2, 2, 2, 973, 676, 3, 2, 2, 2, 973, 680, 3, 2, 2, 2, 973, 693, 3, 2, 2, 2, 973, 699, 3, 2, 2, 2, 973, 708, 3, 2, 2, 2, 973, 718, 3, 2, 2, 2, 973, 734, 3, 2, 2, 2, 973, 744, 3, 2, 2, 2, 973, 761, 3, 2, 2, 2, 973, 770, 3, 2, 2, 2, 973, 787, 3, 2, 2, 2, 973, 794, 3, 2, 2, 2, 973, 800, 3, 2, 2, 2, 973, 809, 3, 2, 2, 2, 973, 825, 3, 2, 2, 2, 973, 836, 3, 2, 2, 2, 973, 841, 3, 2, 2, 2, 973, 848, 3, 2, 2, 2, 973, 853, 3, 2, 2, 2, 973, 860, 3, 2, 2, 2, 973, 869, 3, 2, 2, 2, 973, 882, 3, 2, 2, 2, 973, 892, 3, 2, 2, 2, 973, 906, 3, 2, 2, 2, 973, 911, 3, 2, 2, 2, 973, 925, 3, 2, 2, 2, 973, 937, 3, 2, 2, 2, 973, 952, 3, 2, 2, 2, 973, 967, 3, 2, 2, 2, 974, 12, 3, 2, 2, 2, 975, 982, 10, 2, 2, 2, 976, 977, 7, 60, 2, 2, 977, 982, 10, 3, 2, 2, 978, 979, 11, 2, 2, 2, 979, 980, 7, 64, 2, 2, 980, 982, 11, 2, 2, 2, 981, 975, 3, 2, 2, 2, 981, 976, 3, 2, 2, 2, 981, 978, 3, 2, 2, 2, 982, 983, 3, 2, 2, 2, 983, 981, 3, 2, 2, 2, 983, 984, 3, 2, 2, 2, 984, 14, 3, 2, 2, 2, 7, 2, 551, 973, 981, 983, 2] \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.js b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.js new file mode 100644 index 000000000000..f7c007427919 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.js @@ -0,0 +1,693 @@ +// Generated from /Users/harsha/Code/OpenMetadata/openmetadata-ui/src/main/resources/ui/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/EntityLink.g4 by ANTLR 4.9.2 +// jshint ignore: start +import antlr4 from 'antlr4'; + + + +const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", + "\u5964\u0002\b\u03d9\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003", + "\u0004\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007", + "\t\u0007\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003", + "\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005", + "\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u0228\n\u0005\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0005", + "\u0006\u03ce\n\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0006\u0007\u03d6\n\u0007\r\u0007\u000e\u0007", + "\u03d7\u0002\u0002\b\u0003\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b", + "\u0007\r\b\u0003\u0002\u0004\u0004\u0002<<@@\u0003\u0002<<\u0002\u0439", + "\u0002\u0003\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002", + "\u0002\u0007\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002", + "\u0002\u000b\u0003\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002", + "\u0003\u000f\u0003\u0002\u0002\u0002\u0005\u0011\u0003\u0002\u0002\u0002", + "\u0007\u0014\u0003\u0002\u0002\u0002\t\u0227\u0003\u0002\u0002\u0002", + "\u000b\u03cd\u0003\u0002\u0002\u0002\r\u03d5\u0003\u0002\u0002\u0002", + "\u000f\u0010\u0007@\u0002\u0002\u0010\u0004\u0003\u0002\u0002\u0002", + "\u0011\u0012\u0007<\u0002\u0002\u0012\u0013\u0007<\u0002\u0002\u0013", + "\u0006\u0003\u0002\u0002\u0002\u0014\u0015\u0007>\u0002\u0002\u0015", + "\u0016\u0007%\u0002\u0002\u0016\u0017\u0007G\u0002\u0002\u0017\b\u0003", + "\u0002\u0002\u0002\u0018\u0019\u0007v\u0002\u0002\u0019\u001a\u0007", + "c\u0002\u0002\u001a\u001b\u0007d\u0002\u0002\u001b\u001c\u0007n\u0002", + "\u0002\u001c\u0228\u0007g\u0002\u0002\u001d\u001e\u0007v\u0002\u0002", + "\u001e\u001f\u0007q\u0002\u0002\u001f \u0007r\u0002\u0002 !\u0007k\u0002", + "\u0002!\u0228\u0007e\u0002\u0002\"#\u0007e\u0002\u0002#$\u0007n\u0002", + "\u0002$%\u0007c\u0002\u0002%&\u0007u\u0002\u0002&\'\u0007u\u0002\u0002", + "\'(\u0007k\u0002\u0002()\u0007h\u0002\u0002)*\u0007k\u0002\u0002*+\u0007", + "e\u0002\u0002+,\u0007c\u0002\u0002,-\u0007v\u0002\u0002-.\u0007k\u0002", + "\u0002./\u0007q\u0002\u0002/\u0228\u0007p\u0002\u000201\u0007f\u0002", + "\u000212\u0007c\u0002\u000223\u0007u\u0002\u000234\u0007j\u0002\u0002", + "45\u0007d\u0002\u000256\u0007q\u0002\u000267\u0007c\u0002\u000278\u0007", + "t\u0002\u00028\u0228\u0007f\u0002\u00029:\u0007r\u0002\u0002:;\u0007", + "k\u0002\u0002;<\u0007r\u0002\u0002<=\u0007g\u0002\u0002=>\u0007n\u0002", + "\u0002>?\u0007k\u0002\u0002?@\u0007p\u0002\u0002@\u0228\u0007g\u0002", + "\u0002AB\u0007f\u0002\u0002BC\u0007c\u0002\u0002CD\u0007v\u0002\u0002", + "DE\u0007c\u0002\u0002EF\u0007d\u0002\u0002FG\u0007c\u0002\u0002GH\u0007", + "u\u0002\u0002H\u0228\u0007g\u0002\u0002IJ\u0007f\u0002\u0002JK\u0007", + "c\u0002\u0002KL\u0007v\u0002\u0002LM\u0007c\u0002\u0002MN\u0007d\u0002", + "\u0002NO\u0007c\u0002\u0002OP\u0007u\u0002\u0002PQ\u0007g\u0002\u0002", + "QR\u0007U\u0002\u0002RS\u0007e\u0002\u0002ST\u0007j\u0002\u0002TU\u0007", + "g\u0002\u0002UV\u0007o\u0002\u0002V\u0228\u0007c\u0002\u0002WX\u0007", + "i\u0002\u0002XY\u0007n\u0002\u0002YZ\u0007q\u0002\u0002Z[\u0007u\u0002", + "\u0002[\\\u0007u\u0002\u0002\\]\u0007c\u0002\u0002]^\u0007t\u0002\u0002", + "^\u0228\u0007{\u0002\u0002_`\u0007i\u0002\u0002`a\u0007n\u0002\u0002", + "ab\u0007q\u0002\u0002bc\u0007u\u0002\u0002cd\u0007u\u0002\u0002de\u0007", + "c\u0002\u0002ef\u0007t\u0002\u0002fg\u0007{\u0002\u0002gh\u0007V\u0002", + "\u0002hi\u0007g\u0002\u0002ij\u0007t\u0002\u0002j\u0228\u0007o\u0002", + "\u0002kl\u0007f\u0002\u0002lm\u0007c\u0002\u0002mn\u0007v\u0002\u0002", + "no\u0007c\u0002\u0002op\u0007d\u0002\u0002pq\u0007c\u0002\u0002qr\u0007", + "u\u0002\u0002rs\u0007g\u0002\u0002st\u0007U\u0002\u0002tu\u0007g\u0002", + "\u0002uv\u0007t\u0002\u0002vw\u0007x\u0002\u0002wx\u0007k\u0002\u0002", + "xy\u0007e\u0002\u0002y\u0228\u0007g\u0002\u0002z{\u0007o\u0002\u0002", + "{|\u0007g\u0002\u0002|}\u0007u\u0002\u0002}~\u0007u\u0002\u0002~\u007f", + "\u0007c\u0002\u0002\u007f\u0080\u0007i\u0002\u0002\u0080\u0081\u0007", + "k\u0002\u0002\u0081\u0082\u0007p\u0002\u0002\u0082\u0083\u0007i\u0002", + "\u0002\u0083\u0084\u0007U\u0002\u0002\u0084\u0085\u0007g\u0002\u0002", + "\u0085\u0086\u0007t\u0002\u0002\u0086\u0087\u0007x\u0002\u0002\u0087", + "\u0088\u0007k\u0002\u0002\u0088\u0089\u0007e\u0002\u0002\u0089\u0228", + "\u0007g\u0002\u0002\u008a\u008b\u0007o\u0002\u0002\u008b\u008c\u0007", + "g\u0002\u0002\u008c\u008d\u0007v\u0002\u0002\u008d\u008e\u0007c\u0002", + "\u0002\u008e\u008f\u0007f\u0002\u0002\u008f\u0090\u0007c\u0002\u0002", + "\u0090\u0091\u0007v\u0002\u0002\u0091\u0092\u0007c\u0002\u0002\u0092", + "\u0093\u0007U\u0002\u0002\u0093\u0094\u0007g\u0002\u0002\u0094\u0095", + "\u0007t\u0002\u0002\u0095\u0096\u0007x\u0002\u0002\u0096\u0097\u0007", + "k\u0002\u0002\u0097\u0098\u0007e\u0002\u0002\u0098\u0228\u0007g\u0002", + "\u0002\u0099\u009a\u0007f\u0002\u0002\u009a\u009b\u0007c\u0002\u0002", + "\u009b\u009c\u0007u\u0002\u0002\u009c\u009d\u0007j\u0002\u0002\u009d", + "\u009e\u0007d\u0002\u0002\u009e\u009f\u0007q\u0002\u0002\u009f\u00a0", + "\u0007c\u0002\u0002\u00a0\u00a1\u0007t\u0002\u0002\u00a1\u00a2\u0007", + "f\u0002\u0002\u00a2\u00a3\u0007U\u0002\u0002\u00a3\u00a4\u0007g\u0002", + "\u0002\u00a4\u00a5\u0007t\u0002\u0002\u00a5\u00a6\u0007x\u0002\u0002", + "\u00a6\u00a7\u0007k\u0002\u0002\u00a7\u00a8\u0007e\u0002\u0002\u00a8", + "\u0228\u0007g\u0002\u0002\u00a9\u00aa\u0007r\u0002\u0002\u00aa\u00ab", + "\u0007k\u0002\u0002\u00ab\u00ac\u0007r\u0002\u0002\u00ac\u00ad\u0007", + "g\u0002\u0002\u00ad\u00ae\u0007n\u0002\u0002\u00ae\u00af\u0007k\u0002", + "\u0002\u00af\u00b0\u0007p\u0002\u0002\u00b0\u00b1\u0007g\u0002\u0002", + "\u00b1\u00b2\u0007U\u0002\u0002\u00b2\u00b3\u0007g\u0002\u0002\u00b3", + "\u00b4\u0007t\u0002\u0002\u00b4\u00b5\u0007x\u0002\u0002\u00b5\u00b6", + "\u0007k\u0002\u0002\u00b6\u00b7\u0007e\u0002\u0002\u00b7\u0228\u0007", + "g\u0002\u0002\u00b8\u00b9\u0007o\u0002\u0002\u00b9\u00ba\u0007n\u0002", + "\u0002\u00ba\u00bb\u0007o\u0002\u0002\u00bb\u00bc\u0007q\u0002\u0002", + "\u00bc\u00bd\u0007f\u0002\u0002\u00bd\u00be\u0007g\u0002\u0002\u00be", + "\u00bf\u0007n\u0002\u0002\u00bf\u00c0\u0007U\u0002\u0002\u00c0\u00c1", + "\u0007g\u0002\u0002\u00c1\u00c2\u0007t\u0002\u0002\u00c2\u00c3\u0007", + "x\u0002\u0002\u00c3\u00c4\u0007k\u0002\u0002\u00c4\u00c5\u0007e\u0002", + "\u0002\u00c5\u0228\u0007g\u0002\u0002\u00c6\u00c7\u0007u\u0002\u0002", + "\u00c7\u00c8\u0007v\u0002\u0002\u00c8\u00c9\u0007q\u0002\u0002\u00c9", + "\u00ca\u0007t\u0002\u0002\u00ca\u00cb\u0007c\u0002\u0002\u00cb\u00cc", + "\u0007i\u0002\u0002\u00cc\u00cd\u0007g\u0002\u0002\u00cd\u00ce\u0007", + "U\u0002\u0002\u00ce\u00cf\u0007g\u0002\u0002\u00cf\u00d0\u0007t\u0002", + "\u0002\u00d0\u00d1\u0007x\u0002\u0002\u00d1\u00d2\u0007k\u0002\u0002", + "\u00d2\u00d3\u0007e\u0002\u0002\u00d3\u0228\u0007g\u0002\u0002\u00d4", + "\u00d5\u0007u\u0002\u0002\u00d5\u00d6\u0007g\u0002\u0002\u00d6\u00d7", + "\u0007c\u0002\u0002\u00d7\u00d8\u0007t\u0002\u0002\u00d8\u00d9\u0007", + "e\u0002\u0002\u00d9\u00da\u0007j\u0002\u0002\u00da\u00db\u0007U\u0002", + "\u0002\u00db\u00dc\u0007g\u0002\u0002\u00dc\u00dd\u0007t\u0002\u0002", + "\u00dd\u00de\u0007x\u0002\u0002\u00de\u00df\u0007k\u0002\u0002\u00df", + "\u00e0\u0007e\u0002\u0002\u00e0\u0228\u0007g\u0002\u0002\u00e1\u00e2", + "\u0007y\u0002\u0002\u00e2\u00e3\u0007g\u0002\u0002\u00e3\u00e4\u0007", + "d\u0002\u0002\u00e4\u00e5\u0007j\u0002\u0002\u00e5\u00e6\u0007q\u0002", + "\u0002\u00e6\u00e7\u0007q\u0002\u0002\u00e7\u0228\u0007m\u0002\u0002", + "\u00e8\u00e9\u0007o\u0002\u0002\u00e9\u00ea\u0007n\u0002\u0002\u00ea", + "\u00eb\u0007o\u0002\u0002\u00eb\u00ec\u0007q\u0002\u0002\u00ec\u00ed", + "\u0007f\u0002\u0002\u00ed\u00ee\u0007g\u0002\u0002\u00ee\u0228\u0007", + "n\u0002\u0002\u00ef\u00f0\u0007v\u0002\u0002\u00f0\u00f1\u0007g\u0002", + "\u0002\u00f1\u00f2\u0007c\u0002\u0002\u00f2\u0228\u0007o\u0002\u0002", + "\u00f3\u00f4\u0007w\u0002\u0002\u00f4\u00f5\u0007u\u0002\u0002\u00f5", + "\u00f6\u0007g\u0002\u0002\u00f6\u0228\u0007t\u0002\u0002\u00f7\u00f8", + "\u0007d\u0002\u0002\u00f8\u00f9\u0007q\u0002\u0002\u00f9\u0228\u0007", + "v\u0002\u0002\u00fa\u00fb\u0007t\u0002\u0002\u00fb\u00fc\u0007q\u0002", + "\u0002\u00fc\u00fd\u0007n\u0002\u0002\u00fd\u0228\u0007g\u0002\u0002", + "\u00fe\u00ff\u0007r\u0002\u0002\u00ff\u0100\u0007q\u0002\u0002\u0100", + "\u0101\u0007n\u0002\u0002\u0101\u0102\u0007k\u0002\u0002\u0102\u0103", + "\u0007e\u0002\u0002\u0103\u0228\u0007{\u0002\u0002\u0104\u0105\u0007", + "v\u0002\u0002\u0105\u0106\u0007g\u0002\u0002\u0106\u0107\u0007u\u0002", + "\u0002\u0107\u0108\u0007v\u0002\u0002\u0108\u0109\u0007U\u0002\u0002", + "\u0109\u010a\u0007w\u0002\u0002\u010a\u010b\u0007k\u0002\u0002\u010b", + "\u010c\u0007v\u0002\u0002\u010c\u0228\u0007g\u0002\u0002\u010d\u010e", + "\u0007v\u0002\u0002\u010e\u010f\u0007g\u0002\u0002\u010f\u0110\u0007", + "u\u0002\u0002\u0110\u0111\u0007v\u0002\u0002\u0111\u0112\u0007E\u0002", + "\u0002\u0112\u0113\u0007c\u0002\u0002\u0113\u0114\u0007u\u0002\u0002", + "\u0114\u0228\u0007g\u0002\u0002\u0115\u0116\u0007f\u0002\u0002\u0116", + "\u0117\u0007c\u0002\u0002\u0117\u0118\u0007v\u0002\u0002\u0118\u0119", + "\u0007c\u0002\u0002\u0119\u011a\u0007K\u0002\u0002\u011a\u011b\u0007", + "p\u0002\u0002\u011b\u011c\u0007u\u0002\u0002\u011c\u011d\u0007k\u0002", + "\u0002\u011d\u011e\u0007i\u0002\u0002\u011e\u011f\u0007j\u0002\u0002", + "\u011f\u0120\u0007v\u0002\u0002\u0120\u0121\u0007E\u0002\u0002\u0121", + "\u0122\u0007j\u0002\u0002\u0122\u0123\u0007c\u0002\u0002\u0123\u0124", + "\u0007t\u0002\u0002\u0124\u0228\u0007v\u0002\u0002\u0125\u0126\u0007", + "m\u0002\u0002\u0126\u0127\u0007r\u0002\u0002\u0127\u0228\u0007k\u0002", + "\u0002\u0128\u0129\u0007c\u0002\u0002\u0129\u012a\u0007n\u0002\u0002", + "\u012a\u012b\u0007g\u0002\u0002\u012b\u012c\u0007t\u0002\u0002\u012c", + "\u0228\u0007v\u0002\u0002\u012d\u012e\u0007e\u0002\u0002\u012e\u012f", + "\u0007q\u0002\u0002\u012f\u0130\u0007p\u0002\u0002\u0130\u0131\u0007", + "v\u0002\u0002\u0131\u0132\u0007c\u0002\u0002\u0132\u0133\u0007k\u0002", + "\u0002\u0133\u0134\u0007p\u0002\u0002\u0134\u0135\u0007g\u0002\u0002", + "\u0135\u0228\u0007t\u0002\u0002\u0136\u0137\u0007v\u0002\u0002\u0137", + "\u0138\u0007c\u0002\u0002\u0138\u0228\u0007i\u0002\u0002\u0139\u013a", + "\u0007f\u0002\u0002\u013a\u013b\u0007c\u0002\u0002\u013b\u013c\u0007", + "u\u0002\u0002\u013c\u013d\u0007j\u0002\u0002\u013d\u013e\u0007d\u0002", + "\u0002\u013e\u013f\u0007q\u0002\u0002\u013f\u0140\u0007c\u0002\u0002", + "\u0140\u0141\u0007t\u0002\u0002\u0141\u0142\u0007f\u0002\u0002\u0142", + "\u0143\u0007F\u0002\u0002\u0143\u0144\u0007c\u0002\u0002\u0144\u0145", + "\u0007v\u0002\u0002\u0145\u0146\u0007c\u0002\u0002\u0146\u0147\u0007", + "O\u0002\u0002\u0147\u0148\u0007q\u0002\u0002\u0148\u0149\u0007f\u0002", + "\u0002\u0149\u014a\u0007g\u0002\u0002\u014a\u0228\u0007n\u0002\u0002", + "\u014b\u014c\u0007u\u0002\u0002\u014c\u014d\u0007w\u0002\u0002\u014d", + "\u014e\u0007d\u0002\u0002\u014e\u014f\u0007u\u0002\u0002\u014f\u0150", + "\u0007e\u0002\u0002\u0150\u0151\u0007t\u0002\u0002\u0151\u0152\u0007", + "k\u0002\u0002\u0152\u0153\u0007r\u0002\u0002\u0153\u0154\u0007v\u0002", + "\u0002\u0154\u0155\u0007k\u0002\u0002\u0155\u0156\u0007q\u0002\u0002", + "\u0156\u0228\u0007p\u0002\u0002\u0157\u0158\u0007e\u0002\u0002\u0158", + "\u0159\u0007j\u0002\u0002\u0159\u015a\u0007c\u0002\u0002\u015a\u015b", + "\u0007t\u0002\u0002\u015b\u0228\u0007v\u0002\u0002\u015c\u015d\u0007", + "f\u0002\u0002\u015d\u015e\u0007q\u0002\u0002\u015e\u015f\u0007o\u0002", + "\u0002\u015f\u0160\u0007c\u0002\u0002\u0160\u0161\u0007k\u0002\u0002", + "\u0161\u0228\u0007p\u0002\u0002\u0162\u0163\u0007f\u0002\u0002\u0163", + "\u0164\u0007c\u0002\u0002\u0164\u0165\u0007v\u0002\u0002\u0165\u0166", + "\u0007c\u0002\u0002\u0166\u0167\u0007R\u0002\u0002\u0167\u0168\u0007", + "t\u0002\u0002\u0168\u0169\u0007q\u0002\u0002\u0169\u016a\u0007f\u0002", + "\u0002\u016a\u016b\u0007w\u0002\u0002\u016b\u016c\u0007e\u0002\u0002", + "\u016c\u0228\u0007v\u0002\u0002\u016d\u016e\u0007u\u0002\u0002\u016e", + "\u016f\u0007c\u0002\u0002\u016f\u0170\u0007o\u0002\u0002\u0170\u0171", + "\u0007r\u0002\u0002\u0171\u0172\u0007n\u0002\u0002\u0172\u0173\u0007", + "g\u0002\u0002\u0173\u0174\u0007F\u0002\u0002\u0174\u0175\u0007c\u0002", + "\u0002\u0175\u0176\u0007v\u0002\u0002\u0176\u0228\u0007c\u0002\u0002", + "\u0177\u0178\u0007u\u0002\u0002\u0178\u0179\u0007v\u0002\u0002\u0179", + "\u017a\u0007q\u0002\u0002\u017a\u017b\u0007t\u0002\u0002\u017b\u017c", + "\u0007g\u0002\u0002\u017c\u017d\u0007f\u0002\u0002\u017d\u017e\u0007", + "R\u0002\u0002\u017e\u017f\u0007t\u0002\u0002\u017f\u0180\u0007q\u0002", + "\u0002\u0180\u0181\u0007e\u0002\u0002\u0181\u0182\u0007g\u0002\u0002", + "\u0182\u0183\u0007f\u0002\u0002\u0183\u0184\u0007w\u0002\u0002\u0184", + "\u0185\u0007t\u0002\u0002\u0185\u0228\u0007g\u0002\u0002\u0186\u0187", + "\u0007u\u0002\u0002\u0187\u0188\u0007g\u0002\u0002\u0188\u0189\u0007", + "c\u0002\u0002\u0189\u018a\u0007t\u0002\u0002\u018a\u018b\u0007e\u0002", + "\u0002\u018b\u018c\u0007j\u0002\u0002\u018c\u018d\u0007K\u0002\u0002", + "\u018d\u018e\u0007p\u0002\u0002\u018e\u018f\u0007f\u0002\u0002\u018f", + "\u0190\u0007g\u0002\u0002\u0190\u0228\u0007z\u0002\u0002\u0191\u0192", + "\u0007c\u0002\u0002\u0192\u0193\u0007r\u0002\u0002\u0193\u0194\u0007", + "r\u0002\u0002\u0194\u0195\u0007O\u0002\u0002\u0195\u0196\u0007c\u0002", + "\u0002\u0196\u0197\u0007t\u0002\u0002\u0197\u0198\u0007m\u0002\u0002", + "\u0198\u0199\u0007g\u0002\u0002\u0199\u019a\u0007v\u0002\u0002\u019a", + "\u019b\u0007R\u0002\u0002\u019b\u019c\u0007n\u0002\u0002\u019c\u019d", + "\u0007c\u0002\u0002\u019d\u019e\u0007e\u0002\u0002\u019e\u019f\u0007", + "g\u0002\u0002\u019f\u01a0\u0007F\u0002\u0002\u01a0\u01a1\u0007g\u0002", + "\u0002\u01a1\u01a2\u0007h\u0002\u0002\u01a2\u01a3\u0007k\u0002\u0002", + "\u01a3\u01a4\u0007p\u0002\u0002\u01a4\u01a5\u0007k\u0002\u0002\u01a5", + "\u01a6\u0007v\u0002\u0002\u01a6\u01a7\u0007k\u0002\u0002\u01a7\u01a8", + "\u0007q\u0002\u0002\u01a8\u0228\u0007p\u0002\u0002\u01a9\u01aa\u0007", + "c\u0002\u0002\u01aa\u01ab\u0007r\u0002\u0002\u01ab\u0228\u0007r\u0002", + "\u0002\u01ac\u01ad\u0007r\u0002\u0002\u01ad\u01ae\u0007g\u0002\u0002", + "\u01ae\u01af\u0007t\u0002\u0002\u01af\u01b0\u0007u\u0002\u0002\u01b0", + "\u01b1\u0007q\u0002\u0002\u01b1\u01b2\u0007p\u0002\u0002\u01b2\u0228", + "\u0007c\u0002\u0002\u01b3\u01b4\u0007f\u0002\u0002\u01b4\u01b5\u0007", + "q\u0002\u0002\u01b5\u01b6\u0007e\u0002\u0002\u01b6\u01b7\u0007U\u0002", + "\u0002\u01b7\u01b8\u0007v\u0002\u0002\u01b8\u01b9\u0007q\u0002\u0002", + "\u01b9\u01ba\u0007t\u0002\u0002\u01ba\u0228\u0007g\u0002\u0002\u01bb", + "\u01bc\u0007r\u0002\u0002\u01bc\u01bd\u0007c\u0002\u0002\u01bd\u01be", + "\u0007i\u0002\u0002\u01be\u0228\u0007g\u0002\u0002\u01bf\u01c0\u0007", + "M\u0002\u0002\u01c0\u01c1\u0007p\u0002\u0002\u01c1\u01c2\u0007q\u0002", + "\u0002\u01c2\u01c3\u0007y\u0002\u0002\u01c3\u01c4\u0007N\u0002\u0002", + "\u01c4\u01c5\u0007g\u0002\u0002\u01c5\u01c6\u0007f\u0002\u0002\u01c6", + "\u01c7\u0007i\u0002\u0002\u01c7\u01c8\u0007g\u0002\u0002\u01c8\u01c9", + "\u0007R\u0002\u0002\u01c9\u01ca\u0007c\u0002\u0002\u01ca\u01cb\u0007", + "p\u0002\u0002\u01cb\u01cc\u0007g\u0002\u0002\u01cc\u01cd\u0007n\u0002", + "\u0002\u01cd\u0228\u0007u\u0002\u0002\u01ce\u01cf\u0007i\u0002\u0002", + "\u01cf\u01d0\u0007q\u0002\u0002\u01d0\u01d1\u0007x\u0002\u0002\u01d1", + "\u01d2\u0007g\u0002\u0002\u01d2\u01d3\u0007t\u0002\u0002\u01d3\u0228", + "\u0007p\u0002\u0002\u01d4\u01d5\u0007c\u0002\u0002\u01d5\u01d6\u0007", + "n\u0002\u0002\u01d6\u0228\u0007n\u0002\u0002\u01d7\u01d8\u0007e\u0002", + "\u0002\u01d8\u01d9\u0007w\u0002\u0002\u01d9\u01da\u0007u\u0002\u0002", + "\u01da\u01db\u0007v\u0002\u0002\u01db\u01dc\u0007q\u0002\u0002\u01dc", + "\u01dd\u0007o\u0002\u0002\u01dd\u01de\u0007O\u0002\u0002\u01de\u01df", + "\u0007g\u0002\u0002\u01df\u01e0\u0007v\u0002\u0002\u01e0\u01e1\u0007", + "t\u0002\u0002\u01e1\u01e2\u0007k\u0002\u0002\u01e2\u0228\u0007e\u0002", + "\u0002\u01e3\u01e4\u0007g\u0002\u0002\u01e4\u01e5\u0007x\u0002\u0002", + "\u01e5\u01e6\u0007g\u0002\u0002\u01e6\u01e7\u0007p\u0002\u0002\u01e7", + "\u01e8\u0007v\u0002\u0002\u01e8\u01e9\u0007u\u0002\u0002\u01e9\u01ea", + "\u0007w\u0002\u0002\u01ea\u01eb\u0007d\u0002\u0002\u01eb\u01ec\u0007", + "u\u0002\u0002\u01ec\u01ed\u0007e\u0002\u0002\u01ed\u01ee\u0007t\u0002", + "\u0002\u01ee\u01ef\u0007k\u0002\u0002\u01ef\u01f0\u0007r\u0002\u0002", + "\u01f0\u01f1\u0007v\u0002\u0002\u01f1\u01f2\u0007k\u0002\u0002\u01f2", + "\u01f3\u0007q\u0002\u0002\u01f3\u0228\u0007p\u0002\u0002\u01f4\u01f5", + "\u0007k\u0002\u0002\u01f5\u01f6\u0007p\u0002\u0002\u01f6\u01f7\u0007", + "i\u0002\u0002\u01f7\u01f8\u0007g\u0002\u0002\u01f8\u01f9\u0007u\u0002", + "\u0002\u01f9\u01fa\u0007v\u0002\u0002\u01fa\u01fb\u0007k\u0002\u0002", + "\u01fb\u01fc\u0007q\u0002\u0002\u01fc\u01fd\u0007p\u0002\u0002\u01fd", + "\u01fe\u0007R\u0002\u0002\u01fe\u01ff\u0007k\u0002\u0002\u01ff\u0200", + "\u0007r\u0002\u0002\u0200\u0201\u0007g\u0002\u0002\u0201\u0202\u0007", + "n\u0002\u0002\u0202\u0203\u0007k\u0002\u0002\u0203\u0204\u0007p\u0002", + "\u0002\u0204\u0228\u0007g\u0002\u0002\u0205\u0206\u0007c\u0002\u0002", + "\u0206\u0207\u0007r\u0002\u0002\u0207\u0208\u0007k\u0002\u0002\u0208", + "\u0209\u0007E\u0002\u0002\u0209\u020a\u0007q\u0002\u0002\u020a\u020b", + "\u0007n\u0002\u0002\u020b\u020c\u0007n\u0002\u0002\u020c\u020d\u0007", + "g\u0002\u0002\u020d\u020e\u0007e\u0002\u0002\u020e\u020f\u0007v\u0002", + "\u0002\u020f\u0210\u0007k\u0002\u0002\u0210\u0211\u0007q\u0002\u0002", + "\u0211\u0228\u0007p\u0002\u0002\u0212\u0213\u0007c\u0002\u0002\u0213", + "\u0214\u0007r\u0002\u0002\u0214\u0215\u0007k\u0002\u0002\u0215\u0216", + "\u0007G\u0002\u0002\u0216\u0217\u0007p\u0002\u0002\u0217\u0218\u0007", + "f\u0002\u0002\u0218\u0219\u0007r\u0002\u0002\u0219\u021a\u0007q\u0002", + "\u0002\u021a\u021b\u0007k\u0002\u0002\u021b\u021c\u0007p\u0002\u0002", + "\u021c\u0228\u0007v\u0002\u0002\u021d\u021e\u0007c\u0002\u0002\u021e", + "\u021f\u0007r\u0002\u0002\u021f\u0220\u0007k\u0002\u0002\u0220\u0221", + "\u0007U\u0002\u0002\u0221\u0222\u0007g\u0002\u0002\u0222\u0223\u0007", + "t\u0002\u0002\u0223\u0224\u0007x\u0002\u0002\u0224\u0225\u0007k\u0002", + "\u0002\u0225\u0226\u0007e\u0002\u0002\u0226\u0228\u0007g\u0002\u0002", + "\u0227\u0018\u0003\u0002\u0002\u0002\u0227\u001d\u0003\u0002\u0002\u0002", + "\u0227\"\u0003\u0002\u0002\u0002\u02270\u0003\u0002\u0002\u0002\u0227", + "9\u0003\u0002\u0002\u0002\u0227A\u0003\u0002\u0002\u0002\u0227I\u0003", + "\u0002\u0002\u0002\u0227W\u0003\u0002\u0002\u0002\u0227_\u0003\u0002", + "\u0002\u0002\u0227k\u0003\u0002\u0002\u0002\u0227z\u0003\u0002\u0002", + "\u0002\u0227\u008a\u0003\u0002\u0002\u0002\u0227\u0099\u0003\u0002\u0002", + "\u0002\u0227\u00a9\u0003\u0002\u0002\u0002\u0227\u00b8\u0003\u0002\u0002", + "\u0002\u0227\u00c6\u0003\u0002\u0002\u0002\u0227\u00d4\u0003\u0002\u0002", + "\u0002\u0227\u00e1\u0003\u0002\u0002\u0002\u0227\u00e8\u0003\u0002\u0002", + "\u0002\u0227\u00ef\u0003\u0002\u0002\u0002\u0227\u00f3\u0003\u0002\u0002", + "\u0002\u0227\u00f7\u0003\u0002\u0002\u0002\u0227\u00fa\u0003\u0002\u0002", + "\u0002\u0227\u00fe\u0003\u0002\u0002\u0002\u0227\u0104\u0003\u0002\u0002", + "\u0002\u0227\u010d\u0003\u0002\u0002\u0002\u0227\u0115\u0003\u0002\u0002", + "\u0002\u0227\u0125\u0003\u0002\u0002\u0002\u0227\u0128\u0003\u0002\u0002", + "\u0002\u0227\u012d\u0003\u0002\u0002\u0002\u0227\u0136\u0003\u0002\u0002", + "\u0002\u0227\u0139\u0003\u0002\u0002\u0002\u0227\u014b\u0003\u0002\u0002", + "\u0002\u0227\u0157\u0003\u0002\u0002\u0002\u0227\u015c\u0003\u0002\u0002", + "\u0002\u0227\u0162\u0003\u0002\u0002\u0002\u0227\u016d\u0003\u0002\u0002", + "\u0002\u0227\u0177\u0003\u0002\u0002\u0002\u0227\u0186\u0003\u0002\u0002", + "\u0002\u0227\u0191\u0003\u0002\u0002\u0002\u0227\u01a9\u0003\u0002\u0002", + "\u0002\u0227\u01ac\u0003\u0002\u0002\u0002\u0227\u01b3\u0003\u0002\u0002", + "\u0002\u0227\u01bb\u0003\u0002\u0002\u0002\u0227\u01bf\u0003\u0002\u0002", + "\u0002\u0227\u01ce\u0003\u0002\u0002\u0002\u0227\u01d4\u0003\u0002\u0002", + "\u0002\u0227\u01d7\u0003\u0002\u0002\u0002\u0227\u01e3\u0003\u0002\u0002", + "\u0002\u0227\u01f4\u0003\u0002\u0002\u0002\u0227\u0205\u0003\u0002\u0002", + "\u0002\u0227\u0212\u0003\u0002\u0002\u0002\u0227\u021d\u0003\u0002\u0002", + "\u0002\u0228\n\u0003\u0002\u0002\u0002\u0229\u022a\u0007f\u0002\u0002", + "\u022a\u022b\u0007g\u0002\u0002\u022b\u022c\u0007u\u0002\u0002\u022c", + "\u022d\u0007e\u0002\u0002\u022d\u022e\u0007t\u0002\u0002\u022e\u022f", + "\u0007k\u0002\u0002\u022f\u0230\u0007r\u0002\u0002\u0230\u0231\u0007", + "v\u0002\u0002\u0231\u0232\u0007k\u0002\u0002\u0232\u0233\u0007q\u0002", + "\u0002\u0233\u03ce\u0007p\u0002\u0002\u0234\u0235\u0007e\u0002\u0002", + "\u0235\u0236\u0007q\u0002\u0002\u0236\u0237\u0007n\u0002\u0002\u0237", + "\u0238\u0007w\u0002\u0002\u0238\u0239\u0007o\u0002\u0002\u0239\u023a", + "\u0007p\u0002\u0002\u023a\u03ce\u0007u\u0002\u0002\u023b\u023c\u0007", + "u\u0002\u0002\u023c\u023d\u0007e\u0002\u0002\u023d\u023e\u0007j\u0002", + "\u0002\u023e\u023f\u0007g\u0002\u0002\u023f\u0240\u0007o\u0002\u0002", + "\u0240\u0241\u0007c\u0002\u0002\u0241\u0242\u0007H\u0002\u0002\u0242", + "\u0243\u0007k\u0002\u0002\u0243\u0244\u0007g\u0002\u0002\u0244\u0245", + "\u0007n\u0002\u0002\u0245\u0246\u0007f\u0002\u0002\u0246\u03ce\u0007", + "u\u0002\u0002\u0247\u0248\u0007v\u0002\u0002\u0248\u0249\u0007c\u0002", + "\u0002\u0249\u024a\u0007i\u0002\u0002\u024a\u03ce\u0007u\u0002\u0002", + "\u024b\u024c\u0007v\u0002\u0002\u024c\u024d\u0007c\u0002\u0002\u024d", + "\u024e\u0007u\u0002\u0002\u024e\u024f\u0007m\u0002\u0002\u024f\u03ce", + "\u0007u\u0002\u0002\u0250\u0251\u0007o\u0002\u0002\u0251\u0252\u0007", + "n\u0002\u0002\u0252\u0253\u0007H\u0002\u0002\u0253\u0254\u0007g\u0002", + "\u0002\u0254\u0255\u0007c\u0002\u0002\u0255\u0256\u0007v\u0002\u0002", + "\u0256\u0257\u0007w\u0002\u0002\u0257\u0258\u0007t\u0002\u0002\u0258", + "\u0259\u0007g\u0002\u0002\u0259\u03ce\u0007u\u0002\u0002\u025a\u025b", + "\u0007u\u0002\u0002\u025b\u025c\u0007e\u0002\u0002\u025c\u025d\u0007", + "j\u0002\u0002\u025d\u025e\u0007g\u0002\u0002\u025e\u025f\u0007o\u0002", + "\u0002\u025f\u0260\u0007c\u0002\u0002\u0260\u0261\u0007V\u0002\u0002", + "\u0261\u0262\u0007g\u0002\u0002\u0262\u0263\u0007z\u0002\u0002\u0263", + "\u03ce\u0007v\u0002\u0002\u0264\u0265\u0007q\u0002\u0002\u0265\u0266", + "\u0007y\u0002\u0002\u0266\u0267\u0007p\u0002\u0002\u0267\u0268\u0007", + "g\u0002\u0002\u0268\u03ce\u0007t\u0002\u0002\u0269\u026a\u0007t\u0002", + "\u0002\u026a\u026b\u0007g\u0002\u0002\u026b\u026c\u0007x\u0002\u0002", + "\u026c\u026d\u0007k\u0002\u0002\u026d\u026e\u0007g\u0002\u0002\u026e", + "\u026f\u0007y\u0002\u0002\u026f\u0270\u0007g\u0002\u0002\u0270\u0271", + "\u0007t\u0002\u0002\u0271\u03ce\u0007u\u0002\u0002\u0272\u0273\u0007", + "u\u0002\u0002\u0273\u0274\u0007{\u0002\u0002\u0274\u0275\u0007p\u0002", + "\u0002\u0275\u0276\u0007q\u0002\u0002\u0276\u0277\u0007p\u0002\u0002", + "\u0277\u0278\u0007{\u0002\u0002\u0278\u0279\u0007o\u0002\u0002\u0279", + "\u03ce\u0007u\u0002\u0002\u027a\u027b\u0007t\u0002\u0002\u027b\u027c", + "\u0007g\u0002\u0002\u027c\u027d\u0007n\u0002\u0002\u027d\u027e\u0007", + "c\u0002\u0002\u027e\u027f\u0007v\u0002\u0002\u027f\u0280\u0007g\u0002", + "\u0002\u0280\u0281\u0007f\u0002\u0002\u0281\u0282\u0007V\u0002\u0002", + "\u0282\u0283\u0007g\u0002\u0002\u0283\u0284\u0007t\u0002\u0002\u0284", + "\u0285\u0007o\u0002\u0002\u0285\u03ce\u0007u\u0002\u0002\u0286\u0287", + "\u0007t\u0002\u0002\u0287\u0288\u0007g\u0002\u0002\u0288\u0289\u0007", + "h\u0002\u0002\u0289\u028a\u0007g\u0002\u0002\u028a\u028b\u0007t\u0002", + "\u0002\u028b\u028c\u0007g\u0002\u0002\u028c\u028d\u0007p\u0002\u0002", + "\u028d\u028e\u0007e\u0002\u0002\u028e\u028f\u0007g\u0002\u0002\u028f", + "\u03ce\u0007u\u0002\u0002\u0290\u0291\u0007g\u0002\u0002\u0291\u0292", + "\u0007z\u0002\u0002\u0292\u0293\u0007v\u0002\u0002\u0293\u0294\u0007", + "g\u0002\u0002\u0294\u0295\u0007p\u0002\u0002\u0295\u0296\u0007u\u0002", + "\u0002\u0296\u0297\u0007k\u0002\u0002\u0297\u0298\u0007q\u0002\u0002", + "\u0298\u03ce\u0007p\u0002\u0002\u0299\u029a\u0007f\u0002\u0002\u029a", + "\u029b\u0007k\u0002\u0002\u029b\u029c\u0007u\u0002\u0002\u029c\u029d", + "\u0007r\u0002\u0002\u029d\u029e\u0007n\u0002\u0002\u029e\u029f\u0007", + "c\u0002\u0002\u029f\u02a0\u0007{\u0002\u0002\u02a0\u02a1\u0007P\u0002", + "\u0002\u02a1\u02a2\u0007c\u0002\u0002\u02a2\u02a3\u0007o\u0002\u0002", + "\u02a3\u03ce\u0007g\u0002\u0002\u02a4\u02a5\u0007p\u0002\u0002\u02a5", + "\u02a6\u0007c\u0002\u0002\u02a6\u02a7\u0007o\u0002\u0002\u02a7\u03ce", + "\u0007g\u0002\u0002\u02a8\u02a9\u0007o\u0002\u0002\u02a9\u02aa\u0007", + "g\u0002\u0002\u02aa\u02ab\u0007u\u0002\u0002\u02ab\u02ac\u0007u\u0002", + "\u0002\u02ac\u02ad\u0007c\u0002\u0002\u02ad\u02ae\u0007i\u0002\u0002", + "\u02ae\u02af\u0007g\u0002\u0002\u02af\u02b0\u0007U\u0002\u0002\u02b0", + "\u02b1\u0007e\u0002\u0002\u02b1\u02b2\u0007j\u0002\u0002\u02b2\u02b3", + "\u0007g\u0002\u0002\u02b3\u02b4\u0007o\u0002\u0002\u02b4\u03ce\u0007", + "c\u0002\u0002\u02b5\u02b6\u0007e\u0002\u0002\u02b6\u02b7\u0007j\u0002", + "\u0002\u02b7\u02b8\u0007c\u0002\u0002\u02b8\u02b9\u0007t\u0002\u0002", + "\u02b9\u02ba\u0007v\u0002\u0002\u02ba\u03ce\u0007u\u0002\u0002\u02bb", + "\u02bc\u0007f\u0002\u0002\u02bc\u02bd\u0007c\u0002\u0002\u02bd\u02be", + "\u0007v\u0002\u0002\u02be\u02bf\u0007c\u0002\u0002\u02bf\u02c0\u0007", + "O\u0002\u0002\u02c0\u02c1\u0007q\u0002\u0002\u02c1\u02c2\u0007f\u0002", + "\u0002\u02c2\u02c3\u0007g\u0002\u0002\u02c3\u03ce\u0007n\u0002\u0002", + "\u02c4\u02c5\u0007e\u0002\u0002\u02c5\u02c6\u0007q\u0002\u0002\u02c6", + "\u02c7\u0007p\u0002\u0002\u02c7\u02c8\u0007u\u0002\u0002\u02c8\u02c9", + "\u0007v\u0002\u0002\u02c9\u02ca\u0007t\u0002\u0002\u02ca\u02cb\u0007", + "c\u0002\u0002\u02cb\u02cc\u0007k\u0002\u0002\u02cc\u02cd\u0007p\u0002", + "\u0002\u02cd\u03ce\u0007v\u0002\u0002\u02ce\u02cf\u0007v\u0002\u0002", + "\u02cf\u02d0\u0007c\u0002\u0002\u02d0\u02d1\u0007d\u0002\u0002\u02d1", + "\u02d2\u0007n\u0002\u0002\u02d2\u02d3\u0007g\u0002\u0002\u02d3\u02d4", + "\u0007E\u0002\u0002\u02d4\u02d5\u0007q\u0002\u0002\u02d5\u02d6\u0007", + "p\u0002\u0002\u02d6\u02d7\u0007u\u0002\u0002\u02d7\u02d8\u0007v\u0002", + "\u0002\u02d8\u02d9\u0007t\u0002\u0002\u02d9\u02da\u0007c\u0002\u0002", + "\u02da\u02db\u0007k\u0002\u0002\u02db\u02dc\u0007p\u0002\u0002\u02dc", + "\u02dd\u0007v\u0002\u0002\u02dd\u03ce\u0007u\u0002\u0002\u02de\u02df", + "\u0007r\u0002\u0002\u02df\u02e0\u0007c\u0002\u0002\u02e0\u02e1\u0007", + "t\u0002\u0002\u02e1\u02e2\u0007v\u0002\u0002\u02e2\u02e3\u0007k\u0002", + "\u0002\u02e3\u02e4\u0007v\u0002\u0002\u02e4\u02e5\u0007k\u0002\u0002", + "\u02e5\u02e6\u0007q\u0002\u0002\u02e6\u02e7\u0007p\u0002\u0002\u02e7", + "\u03ce\u0007u\u0002\u0002\u02e8\u02e9\u0007t\u0002\u0002\u02e9\u02ea", + "\u0007g\u0002\u0002\u02ea\u02eb\u0007r\u0002\u0002\u02eb\u02ec\u0007", + "n\u0002\u0002\u02ec\u02ed\u0007k\u0002\u0002\u02ed\u02ee\u0007e\u0002", + "\u0002\u02ee\u02ef\u0007c\u0002\u0002\u02ef\u02f0\u0007v\u0002\u0002", + "\u02f0\u02f1\u0007k\u0002\u0002\u02f1\u02f2\u0007q\u0002\u0002\u02f2", + "\u02f3\u0007p\u0002\u0002\u02f3\u02f4\u0007H\u0002\u0002\u02f4\u02f5", + "\u0007c\u0002\u0002\u02f5\u02f6\u0007e\u0002\u0002\u02f6\u02f7\u0007", + "v\u0002\u0002\u02f7\u02f8\u0007q\u0002\u0002\u02f8\u03ce\u0007t\u0002", + "\u0002\u02f9\u02fa\u0007u\u0002\u0002\u02fa\u02fb\u0007q\u0002\u0002", + "\u02fb\u02fc\u0007w\u0002\u0002\u02fc\u02fd\u0007t\u0002\u0002\u02fd", + "\u02fe\u0007e\u0002\u0002\u02fe\u02ff\u0007g\u0002\u0002\u02ff\u0300", + "\u0007W\u0002\u0002\u0300\u0301\u0007t\u0002\u0002\u0301\u03ce\u0007", + "n\u0002\u0002\u0302\u0303\u0007o\u0002\u0002\u0303\u0304\u0007w\u0002", + "\u0002\u0304\u0305\u0007v\u0002\u0002\u0305\u0306\u0007w\u0002\u0002", + "\u0306\u0307\u0007c\u0002\u0002\u0307\u0308\u0007n\u0002\u0002\u0308", + "\u0309\u0007n\u0002\u0002\u0309\u030a\u0007{\u0002\u0002\u030a\u030b", + "\u0007G\u0002\u0002\u030b\u030c\u0007z\u0002\u0002\u030c\u030d\u0007", + "e\u0002\u0002\u030d\u030e\u0007n\u0002\u0002\u030e\u030f\u0007w\u0002", + "\u0002\u030f\u0310\u0007u\u0002\u0002\u0310\u0311\u0007k\u0002\u0002", + "\u0311\u0312\u0007x\u0002\u0002\u0312\u03ce\u0007g\u0002\u0002\u0313", + "\u0314\u0007g\u0002\u0002\u0314\u0315\u0007z\u0002\u0002\u0315\u0316", + "\u0007r\u0002\u0002\u0316\u0317\u0007g\u0002\u0002\u0317\u0318\u0007", + "t\u0002\u0002\u0318\u0319\u0007v\u0002\u0002\u0319\u03ce\u0007u\u0002", + "\u0002\u031a\u031b\u0007h\u0002\u0002\u031b\u031c\u0007k\u0002\u0002", + "\u031c\u031d\u0007g\u0002\u0002\u031d\u031e\u0007n\u0002\u0002\u031e", + "\u031f\u0007f\u0002\u0002\u031f\u03ce\u0007u\u0002\u0002\u0320\u0321", + "\u0007h\u0002\u0002\u0321\u0322\u0007q\u0002\u0002\u0322\u0323\u0007", + "n\u0002\u0002\u0323\u0324\u0007n\u0002\u0002\u0324\u0325\u0007q\u0002", + "\u0002\u0325\u0326\u0007y\u0002\u0002\u0326\u0327\u0007g\u0002\u0002", + "\u0327\u0328\u0007t\u0002\u0002\u0328\u03ce\u0007u\u0002\u0002\u0329", + "\u032a\u0007c\u0002\u0002\u032a\u032b\u0007r\u0002\u0002\u032b\u032c", + "\u0007r\u0002\u0002\u032c\u032d\u0007E\u0002\u0002\u032d\u032e\u0007", + "q\u0002\u0002\u032e\u032f\u0007p\u0002\u0002\u032f\u0330\u0007h\u0002", + "\u0002\u0330\u0331\u0007k\u0002\u0002\u0331\u0332\u0007i\u0002\u0002", + "\u0332\u0333\u0007w\u0002\u0002\u0333\u0334\u0007t\u0002\u0002\u0334", + "\u0335\u0007c\u0002\u0002\u0335\u0336\u0007v\u0002\u0002\u0336\u0337", + "\u0007k\u0002\u0002\u0337\u0338\u0007q\u0002\u0002\u0338\u03ce\u0007", + "p\u0002\u0002\u0339\u033a\u0007c\u0002\u0002\u033a\u033b\u0007r\u0002", + "\u0002\u033b\u033c\u0007r\u0002\u0002\u033c\u033d\u0007U\u0002\u0002", + "\u033d\u033e\u0007e\u0002\u0002\u033e\u033f\u0007j\u0002\u0002\u033f", + "\u0340\u0007g\u0002\u0002\u0340\u0341\u0007f\u0002\u0002\u0341\u0342", + "\u0007w\u0002\u0002\u0342\u0343\u0007n\u0002\u0002\u0343\u03ce\u0007", + "g\u0002\u0002\u0344\u0345\u0007x\u0002\u0002\u0345\u0346\u0007q\u0002", + "\u0002\u0346\u0347\u0007v\u0002\u0002\u0347\u0348\u0007g\u0002\u0002", + "\u0348\u03ce\u0007u\u0002\u0002\u0349\u034a\u0007r\u0002\u0002\u034a", + "\u034b\u0007t\u0002\u0002\u034b\u034c\u0007q\u0002\u0002\u034c\u034d", + "\u0007h\u0002\u0002\u034d\u034e\u0007k\u0002\u0002\u034e\u034f\u0007", + "n\u0002\u0002\u034f\u03ce\u0007g\u0002\u0002\u0350\u0351\u0007t\u0002", + "\u0002\u0351\u0352\u0007q\u0002\u0002\u0352\u0353\u0007n\u0002\u0002", + "\u0353\u0354\u0007g\u0002\u0002\u0354\u03ce\u0007u\u0002\u0002\u0355", + "\u0356\u0007f\u0002\u0002\u0356\u0357\u0007g\u0002\u0002\u0357\u0358", + "\u0007n\u0002\u0002\u0358\u0359\u0007g\u0002\u0002\u0359\u035a\u0007", + "v\u0002\u0002\u035a\u035b\u0007g\u0002\u0002\u035b\u03ce\u0007f\u0002", + "\u0002\u035c\u035d\u0007n\u0002\u0002\u035d\u035e\u0007k\u0002\u0002", + "\u035e\u035f\u0007h\u0002\u0002\u035f\u0360\u0007g\u0002\u0002\u0360", + "\u0361\u0007E\u0002\u0002\u0361\u0362\u0007{\u0002\u0002\u0362\u0363", + "\u0007e\u0002\u0002\u0363\u0364\u0007n\u0002\u0002\u0364\u03ce\u0007", + "g\u0002\u0002\u0365\u0366\u0007c\u0002\u0002\u0366\u0367\u0007r\u0002", + "\u0002\u0367\u0368\u0007k\u0002\u0002\u0368\u0369\u0007a\u0002\u0002", + "\u0369\u036a\u0007e\u0002\u0002\u036a\u036b\u0007n\u0002\u0002\u036b", + "\u036c\u0007k\u0002\u0002\u036c\u036d\u0007g\u0002\u0002\u036d\u036e", + "\u0007p\u0002\u0002\u036e\u036f\u0007v\u0002\u0002\u036f\u0370\u0007", + "a\u0002\u0002\u0370\u0371\u0007k\u0002\u0002\u0371\u03ce\u0007f\u0002", + "\u0002\u0372\u0373\u0007u\u0002\u0002\u0373\u0374\u0007q\u0002\u0002", + "\u0374\u0375\u0007w\u0002\u0002\u0375\u0376\u0007t\u0002\u0002\u0376", + "\u0377\u0007e\u0002\u0002\u0377\u0378\u0007g\u0002\u0002\u0378\u0379", + "\u0007J\u0002\u0002\u0379\u037a\u0007c\u0002\u0002\u037a\u037b\u0007", + "u\u0002\u0002\u037b\u03ce\u0007j\u0002\u0002\u037c\u037d\u0007v\u0002", + "\u0002\u037d\u037e\u0007g\u0002\u0002\u037e\u037f\u0007u\u0002\u0002", + "\u037f\u0380\u0007v\u0002\u0002\u0380\u0381\u0007E\u0002\u0002\u0381", + "\u0382\u0007c\u0002\u0002\u0382\u0383\u0007u\u0002\u0002\u0383\u0384", + "\u0007g\u0002\u0002\u0384\u0385\u0007T\u0002\u0002\u0385\u0386\u0007", + "g\u0002\u0002\u0386\u0387\u0007u\u0002\u0002\u0387\u0388\u0007w\u0002", + "\u0002\u0388\u0389\u0007n\u0002\u0002\u0389\u03ce\u0007v\u0002\u0002", + "\u038a\u038b\u0007v\u0002\u0002\u038b\u038c\u0007g\u0002\u0002\u038c", + "\u038d\u0007u\u0002\u0002\u038d\u038e\u0007v\u0002\u0002\u038e\u03ce", + "\u0007u\u0002\u0002\u038f\u0390\u0007r\u0002\u0002\u0390\u0391\u0007", + "k\u0002\u0002\u0391\u0392\u0007r\u0002\u0002\u0392\u0393\u0007g\u0002", + "\u0002\u0393\u0394\u0007n\u0002\u0002\u0394\u0395\u0007k\u0002\u0002", + "\u0395\u0396\u0007p\u0002\u0002\u0396\u0397\u0007g\u0002\u0002\u0397", + "\u0398\u0007U\u0002\u0002\u0398\u0399\u0007v\u0002\u0002\u0399\u039a", + "\u0007c\u0002\u0002\u039a\u039b\u0007v\u0002\u0002\u039b\u039c\u0007", + "w\u0002\u0002\u039c\u03ce\u0007u\u0002\u0002\u039d\u039e\u0007f\u0002", + "\u0002\u039e\u039f\u0007c\u0002\u0002\u039f\u03a0\u0007v\u0002\u0002", + "\u03a0\u03a1\u0007c\u0002\u0002\u03a1\u03a2\u0007R\u0002\u0002\u03a2", + "\u03a3\u0007t\u0002\u0002\u03a3\u03a4\u0007q\u0002\u0002\u03a4\u03a5", + "\u0007f\u0002\u0002\u03a5\u03a6\u0007w\u0002\u0002\u03a6\u03a7\u0007", + "e\u0002\u0002\u03a7\u03a8\u0007v\u0002\u0002\u03a8\u03ce\u0007u\u0002", + "\u0002\u03a9\u03aa\u0007r\u0002\u0002\u03aa\u03ab\u0007c\u0002\u0002", + "\u03ab\u03ac\u0007t\u0002\u0002\u03ac\u03ad\u0007c\u0002\u0002\u03ad", + "\u03ae\u0007o\u0002\u0002\u03ae\u03af\u0007g\u0002\u0002\u03af\u03b0", + "\u0007v\u0002\u0002\u03b0\u03b1\u0007g\u0002\u0002\u03b1\u03b2\u0007", + "t\u0002\u0002\u03b2\u03b3\u0007X\u0002\u0002\u03b3\u03b4\u0007c\u0002", + "\u0002\u03b4\u03b5\u0007n\u0002\u0002\u03b5\u03b6\u0007w\u0002\u0002", + "\u03b6\u03b7\u0007g\u0002\u0002\u03b7\u03ce\u0007u\u0002\u0002\u03b8", + "\u03b9\u0007t\u0002\u0002\u03b9\u03ba\u0007g\u0002\u0002\u03ba\u03bb", + "\u0007v\u0002\u0002\u03bb\u03bc\u0007g\u0002\u0002\u03bc\u03bd\u0007", + "p\u0002\u0002\u03bd\u03be\u0007v\u0002\u0002\u03be\u03bf\u0007k\u0002", + "\u0002\u03bf\u03c0\u0007q\u0002\u0002\u03c0\u03c1\u0007p\u0002\u0002", + "\u03c1\u03c2\u0007R\u0002\u0002\u03c2\u03c3\u0007g\u0002\u0002\u03c3", + "\u03c4\u0007t\u0002\u0002\u03c4\u03c5\u0007k\u0002\u0002\u03c5\u03c6", + "\u0007q\u0002\u0002\u03c6\u03ce\u0007f\u0002\u0002\u03c7\u03c8\u0007", + "r\u0002\u0002\u03c8\u03c9\u0007c\u0002\u0002\u03c9\u03ca\u0007t\u0002", + "\u0002\u03ca\u03cb\u0007g\u0002\u0002\u03cb\u03cc\u0007p\u0002\u0002", + "\u03cc\u03ce\u0007v\u0002\u0002\u03cd\u0229\u0003\u0002\u0002\u0002", + "\u03cd\u0234\u0003\u0002\u0002\u0002\u03cd\u023b\u0003\u0002\u0002\u0002", + "\u03cd\u0247\u0003\u0002\u0002\u0002\u03cd\u024b\u0003\u0002\u0002\u0002", + "\u03cd\u0250\u0003\u0002\u0002\u0002\u03cd\u025a\u0003\u0002\u0002\u0002", + "\u03cd\u0264\u0003\u0002\u0002\u0002\u03cd\u0269\u0003\u0002\u0002\u0002", + "\u03cd\u0272\u0003\u0002\u0002\u0002\u03cd\u027a\u0003\u0002\u0002\u0002", + "\u03cd\u0286\u0003\u0002\u0002\u0002\u03cd\u0290\u0003\u0002\u0002\u0002", + "\u03cd\u0299\u0003\u0002\u0002\u0002\u03cd\u02a4\u0003\u0002\u0002\u0002", + "\u03cd\u02a8\u0003\u0002\u0002\u0002\u03cd\u02b5\u0003\u0002\u0002\u0002", + "\u03cd\u02bb\u0003\u0002\u0002\u0002\u03cd\u02c4\u0003\u0002\u0002\u0002", + "\u03cd\u02ce\u0003\u0002\u0002\u0002\u03cd\u02de\u0003\u0002\u0002\u0002", + "\u03cd\u02e8\u0003\u0002\u0002\u0002\u03cd\u02f9\u0003\u0002\u0002\u0002", + "\u03cd\u0302\u0003\u0002\u0002\u0002\u03cd\u0313\u0003\u0002\u0002\u0002", + "\u03cd\u031a\u0003\u0002\u0002\u0002\u03cd\u0320\u0003\u0002\u0002\u0002", + "\u03cd\u0329\u0003\u0002\u0002\u0002\u03cd\u0339\u0003\u0002\u0002\u0002", + "\u03cd\u0344\u0003\u0002\u0002\u0002\u03cd\u0349\u0003\u0002\u0002\u0002", + "\u03cd\u0350\u0003\u0002\u0002\u0002\u03cd\u0355\u0003\u0002\u0002\u0002", + "\u03cd\u035c\u0003\u0002\u0002\u0002\u03cd\u0365\u0003\u0002\u0002\u0002", + "\u03cd\u0372\u0003\u0002\u0002\u0002\u03cd\u037c\u0003\u0002\u0002\u0002", + "\u03cd\u038a\u0003\u0002\u0002\u0002\u03cd\u038f\u0003\u0002\u0002\u0002", + "\u03cd\u039d\u0003\u0002\u0002\u0002\u03cd\u03a9\u0003\u0002\u0002\u0002", + "\u03cd\u03b8\u0003\u0002\u0002\u0002\u03cd\u03c7\u0003\u0002\u0002\u0002", + "\u03ce\f\u0003\u0002\u0002\u0002\u03cf\u03d6\n\u0002\u0002\u0002\u03d0", + "\u03d1\u0007<\u0002\u0002\u03d1\u03d6\n\u0003\u0002\u0002\u03d2\u03d3", + "\u000b\u0002\u0002\u0002\u03d3\u03d4\u0007@\u0002\u0002\u03d4\u03d6", + "\u000b\u0002\u0002\u0002\u03d5\u03cf\u0003\u0002\u0002\u0002\u03d5\u03d0", + "\u0003\u0002\u0002\u0002\u03d5\u03d2\u0003\u0002\u0002\u0002\u03d6\u03d7", + "\u0003\u0002\u0002\u0002\u03d7\u03d5\u0003\u0002\u0002\u0002\u03d7\u03d8", + "\u0003\u0002\u0002\u0002\u03d8\u000e\u0003\u0002\u0002\u0002\u0007\u0002", + "\u0227\u03cd\u03d5\u03d7\u0002"].join(""); + + +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); + +export default class EntityLinkLexer extends antlr4.Lexer { + + static grammarFileName = "EntityLink.g4"; + static channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + static modeNames = [ "DEFAULT_MODE" ]; + static literalNames = [ null, "'>'", "'::'", "'<#E'" ]; + static symbolicNames = [ null, null, null, "RESERVED_START", "ENTITY_TYPE", + "ENTITY_FIELD", "NAME_OR_FQN" ]; + static ruleNames = [ "T__0", "T__1", "RESERVED_START", "ENTITY_TYPE", "ENTITY_FIELD", + "NAME_OR_FQN" ]; + + constructor(input) { + super(input) + this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); + } + + get atn() { + return atn; + } +} + +EntityLinkLexer.EOF = antlr4.Token.EOF; +EntityLinkLexer.T__0 = 1; +EntityLinkLexer.T__1 = 2; +EntityLinkLexer.RESERVED_START = 3; +EntityLinkLexer.ENTITY_TYPE = 4; +EntityLinkLexer.ENTITY_FIELD = 5; +EntityLinkLexer.NAME_OR_FQN = 6; + + + diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.tokens b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.tokens new file mode 100644 index 000000000000..8303fbb34d32 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkLexer.tokens @@ -0,0 +1,9 @@ +T__0=1 +T__1=2 +RESERVED_START=3 +ENTITY_TYPE=4 +ENTITY_FIELD=5 +NAME_OR_FQN=6 +'>'=1 +'::'=2 +'<#E'=3 diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkListener.js b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkListener.js new file mode 100644 index 000000000000..280ed1fe41ff --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkListener.js @@ -0,0 +1,54 @@ +// Generated from /Users/harsha/Code/OpenMetadata/openmetadata-ui/src/main/resources/ui/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/EntityLink.g4 by ANTLR 4.9.2 +// jshint ignore: start +import antlr4 from 'antlr4'; + +// This class defines a complete listener for a parse tree produced by EntityLinkParser. +export default class EntityLinkListener extends antlr4.tree.ParseTreeListener { + + // Enter a parse tree produced by EntityLinkParser#entitylink. + enterEntitylink(ctx) { + } + + // Exit a parse tree produced by EntityLinkParser#entitylink. + exitEntitylink(ctx) { + } + + + // Enter a parse tree produced by EntityLinkParser#entityType. + enterEntityType(ctx) { + } + + // Exit a parse tree produced by EntityLinkParser#entityType. + exitEntityType(ctx) { + } + + + // Enter a parse tree produced by EntityLinkParser#nameOrFQN. + enterNameOrFQN(ctx) { + } + + // Exit a parse tree produced by EntityLinkParser#nameOrFQN. + exitNameOrFQN(ctx) { + } + + + // Enter a parse tree produced by EntityLinkParser#entityField. + enterEntityField(ctx) { + } + + // Exit a parse tree produced by EntityLinkParser#entityField. + exitEntityField(ctx) { + } + + + // Enter a parse tree produced by EntityLinkParser#separator. + enterSeparator(ctx) { + } + + // Exit a parse tree produced by EntityLinkParser#separator. + exitSeparator(ctx) { + } + + + +} \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkParser.js b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkParser.js new file mode 100644 index 000000000000..78d268777fac --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/EntityLinkParser.js @@ -0,0 +1,527 @@ +// Generated from /Users/harsha/Code/OpenMetadata/openmetadata-ui/src/main/resources/ui/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/EntityLink.g4 by ANTLR 4.9.2 +// jshint ignore: start +import antlr4 from 'antlr4'; +import EntityLinkListener from './EntityLinkListener.js'; + +const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", + "\u5964\u0003\b1\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", + "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0003\u0002\u0003\u0002", + "\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0006\u0002\u0013\n", + "\u0002\r\u0002\u000e\u0002\u0014\u0003\u0002\u0003\u0002\u0003\u0002", + "\u0003\u0002\u0003\u0002\u0007\u0002\u001c\n\u0002\f\u0002\u000e\u0002", + "\u001f\u000b\u0002\u0007\u0002!\n\u0002\f\u0002\u000e\u0002$\u000b\u0002", + "\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0004", + "\u0003\u0004\u0003\u0005\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0006", + "\u0002\u0002\u0007\u0002\u0004\u0006\b\n\u0002\u0002\u0002.\u0002\f", + "\u0003\u0002\u0002\u0002\u0004(\u0003\u0002\u0002\u0002\u0006*\u0003", + "\u0002\u0002\u0002\b,\u0003\u0002\u0002\u0002\n.\u0003\u0002\u0002\u0002", + "\f\u0012\u0007\u0005\u0002\u0002\r\u000e\u0005\n\u0006\u0002\u000e\u000f", + "\u0005\u0004\u0003\u0002\u000f\u0010\u0005\n\u0006\u0002\u0010\u0011", + "\u0005\u0006\u0004\u0002\u0011\u0013\u0003\u0002\u0002\u0002\u0012\r", + "\u0003\u0002\u0002\u0002\u0013\u0014\u0003\u0002\u0002\u0002\u0014\u0012", + "\u0003\u0002\u0002\u0002\u0014\u0015\u0003\u0002\u0002\u0002\u0015\"", + "\u0003\u0002\u0002\u0002\u0016\u0017\u0005\n\u0006\u0002\u0017\u001d", + "\u0005\b\u0005\u0002\u0018\u0019\u0005\n\u0006\u0002\u0019\u001a\u0005", + "\u0006\u0004\u0002\u001a\u001c\u0003\u0002\u0002\u0002\u001b\u0018\u0003", + "\u0002\u0002\u0002\u001c\u001f\u0003\u0002\u0002\u0002\u001d\u001b\u0003", + "\u0002\u0002\u0002\u001d\u001e\u0003\u0002\u0002\u0002\u001e!\u0003", + "\u0002\u0002\u0002\u001f\u001d\u0003\u0002\u0002\u0002 \u0016\u0003", + "\u0002\u0002\u0002!$\u0003\u0002\u0002\u0002\" \u0003\u0002\u0002\u0002", + "\"#\u0003\u0002\u0002\u0002#%\u0003\u0002\u0002\u0002$\"\u0003\u0002", + "\u0002\u0002%&\u0007\u0003\u0002\u0002&\'\u0007\u0002\u0002\u0003\'", + "\u0003\u0003\u0002\u0002\u0002()\u0007\u0006\u0002\u0002)\u0005\u0003", + "\u0002\u0002\u0002*+\u0007\b\u0002\u0002+\u0007\u0003\u0002\u0002\u0002", + ",-\u0007\u0007\u0002\u0002-\t\u0003\u0002\u0002\u0002./\u0007\u0004", + "\u0002\u0002/\u000b\u0003\u0002\u0002\u0002\u0005\u0014\u001d\""].join(""); + + +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); + +const sharedContextCache = new antlr4.PredictionContextCache(); + +export default class EntityLinkParser extends antlr4.Parser { + + static grammarFileName = "EntityLink.g4"; + static literalNames = [ null, "'>'", "'::'", "'<#E'" ]; + static symbolicNames = [ null, null, null, "RESERVED_START", "ENTITY_TYPE", + "ENTITY_FIELD", "NAME_OR_FQN" ]; + static ruleNames = [ "entitylink", "entity_type", "name_or_fqn", "entity_field", + "separator" ]; + + constructor(input) { + super(input); + this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); + this.ruleNames = EntityLinkParser.ruleNames; + this.literalNames = EntityLinkParser.literalNames; + this.symbolicNames = EntityLinkParser.symbolicNames; + } + + get atn() { + return atn; + } + + + + entitylink() { + let localctx = new EntitylinkContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, EntityLinkParser.RULE_entitylink); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 10; + this.match(EntityLinkParser.RESERVED_START); + this.state = 16; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 11; + this.separator(); + this.state = 12; + this.entity_type(); + this.state = 13; + this.separator(); + this.state = 14; + this.name_or_fqn(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 18; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,0, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + this.state = 32; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===EntityLinkParser.T__1) { + this.state = 20; + this.separator(); + this.state = 21; + this.entity_field(); + this.state = 27; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,1,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 22; + this.separator(); + this.state = 23; + this.name_or_fqn(); + } + this.state = 29; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,1,this._ctx); + } + + this.state = 34; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 35; + this.match(EntityLinkParser.T__0); + this.state = 36; + this.match(EntityLinkParser.EOF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + entity_type() { + let localctx = new Entity_typeContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, EntityLinkParser.RULE_entity_type); + try { + localctx = new EntityTypeContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 38; + this.match(EntityLinkParser.ENTITY_TYPE); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + name_or_fqn() { + let localctx = new Name_or_fqnContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, EntityLinkParser.RULE_name_or_fqn); + try { + localctx = new NameOrFQNContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 40; + this.match(EntityLinkParser.NAME_OR_FQN); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + entity_field() { + let localctx = new Entity_fieldContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, EntityLinkParser.RULE_entity_field); + try { + localctx = new EntityFieldContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 42; + this.match(EntityLinkParser.ENTITY_FIELD); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + separator() { + let localctx = new SeparatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, EntityLinkParser.RULE_separator); + try { + this.enterOuterAlt(localctx, 1); + this.state = 44; + this.match(EntityLinkParser.T__1); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + +} + +EntityLinkParser.EOF = antlr4.Token.EOF; +EntityLinkParser.T__0 = 1; +EntityLinkParser.T__1 = 2; +EntityLinkParser.RESERVED_START = 3; +EntityLinkParser.ENTITY_TYPE = 4; +EntityLinkParser.ENTITY_FIELD = 5; +EntityLinkParser.NAME_OR_FQN = 6; + +EntityLinkParser.RULE_entitylink = 0; +EntityLinkParser.RULE_entity_type = 1; +EntityLinkParser.RULE_name_or_fqn = 2; +EntityLinkParser.RULE_entity_field = 3; +EntityLinkParser.RULE_separator = 4; + +class EntitylinkContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = EntityLinkParser.RULE_entitylink; + } + + RESERVED_START() { + return this.getToken(EntityLinkParser.RESERVED_START, 0); + }; + + EOF() { + return this.getToken(EntityLinkParser.EOF, 0); + }; + + separator = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SeparatorContext); + } else { + return this.getTypedRuleContext(SeparatorContext,i); + } + }; + + entity_type = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Entity_typeContext); + } else { + return this.getTypedRuleContext(Entity_typeContext,i); + } + }; + + name_or_fqn = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Name_or_fqnContext); + } else { + return this.getTypedRuleContext(Name_or_fqnContext,i); + } + }; + + entity_field = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(Entity_fieldContext); + } else { + return this.getTypedRuleContext(Entity_fieldContext,i); + } + }; + + enterRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.enterEntitylink(this); + } + } + + exitRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.exitEntitylink(this); + } + } + + +} + + + +class Entity_typeContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = EntityLinkParser.RULE_entity_type; + } + + + + copyFrom(ctx) { + super.copyFrom(ctx); + } + +} + + +class EntityTypeContext extends Entity_typeContext { + + constructor(parser, ctx) { + super(parser); + super.copyFrom(ctx); + } + + ENTITY_TYPE() { + return this.getToken(EntityLinkParser.ENTITY_TYPE, 0); + }; + + enterRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.enterEntityType(this); + } + } + + exitRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.exitEntityType(this); + } + } + + +} + +EntityLinkParser.EntityTypeContext = EntityTypeContext; + +class Name_or_fqnContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = EntityLinkParser.RULE_name_or_fqn; + } + + + + copyFrom(ctx) { + super.copyFrom(ctx); + } + +} + + +class NameOrFQNContext extends Name_or_fqnContext { + + constructor(parser, ctx) { + super(parser); + super.copyFrom(ctx); + } + + NAME_OR_FQN() { + return this.getToken(EntityLinkParser.NAME_OR_FQN, 0); + }; + + enterRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.enterNameOrFQN(this); + } + } + + exitRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.exitNameOrFQN(this); + } + } + + +} + +EntityLinkParser.NameOrFQNContext = NameOrFQNContext; + +class Entity_fieldContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = EntityLinkParser.RULE_entity_field; + } + + + + copyFrom(ctx) { + super.copyFrom(ctx); + } + +} + + +class EntityFieldContext extends Entity_fieldContext { + + constructor(parser, ctx) { + super(parser); + super.copyFrom(ctx); + } + + ENTITY_FIELD() { + return this.getToken(EntityLinkParser.ENTITY_FIELD, 0); + }; + + enterRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.enterEntityField(this); + } + } + + exitRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.exitEntityField(this); + } + } + + +} + +EntityLinkParser.EntityFieldContext = EntityFieldContext; + +class SeparatorContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = EntityLinkParser.RULE_separator; + } + + + enterRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.enterSeparator(this); + } + } + + exitRule(listener) { + if(listener instanceof EntityLinkListener ) { + listener.exitSeparator(this); + } + } + + +} + + + + +EntityLinkParser.EntitylinkContext = EntitylinkContext; +EntityLinkParser.Entity_typeContext = Entity_typeContext; +EntityLinkParser.Name_or_fqnContext = Name_or_fqnContext; +EntityLinkParser.Entity_fieldContext = Entity_fieldContext; +EntityLinkParser.SeparatorContext = SeparatorContext; diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/Fqn.interp b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/Fqn.interp new file mode 100644 index 000000000000..3f146b01d8ce --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/Fqn.interp @@ -0,0 +1,23 @@ +token literal names: +null +null +null +'"' +null +'.' + +token symbolic names: +null +NAME +NAME_WITH_RESERVED +QUOTE +NON_RESERVED +RESERVED + +rule names: +fqn +name + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 7, 21, 4, 2, 9, 2, 4, 3, 9, 3, 3, 2, 3, 2, 3, 2, 7, 2, 10, 10, 2, 12, 2, 14, 2, 13, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 5, 3, 19, 10, 3, 3, 3, 2, 2, 4, 2, 4, 2, 2, 2, 20, 2, 6, 3, 2, 2, 2, 4, 18, 3, 2, 2, 2, 6, 11, 5, 4, 3, 2, 7, 8, 7, 7, 2, 2, 8, 10, 5, 4, 3, 2, 9, 7, 3, 2, 2, 2, 10, 13, 3, 2, 2, 2, 11, 9, 3, 2, 2, 2, 11, 12, 3, 2, 2, 2, 12, 14, 3, 2, 2, 2, 13, 11, 3, 2, 2, 2, 14, 15, 7, 2, 2, 3, 15, 3, 3, 2, 2, 2, 16, 19, 7, 3, 2, 2, 17, 19, 7, 4, 2, 2, 18, 16, 3, 2, 2, 2, 18, 17, 3, 2, 2, 2, 19, 5, 3, 2, 2, 2, 4, 11, 18] \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/Fqn.tokens b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/Fqn.tokens new file mode 100644 index 000000000000..f0ba459b28bd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/Fqn.tokens @@ -0,0 +1,7 @@ +NAME=1 +NAME_WITH_RESERVED=2 +QUOTE=3 +NON_RESERVED=4 +RESERVED=5 +'"'=3 +'.'=5 diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.interp b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.interp new file mode 100644 index 000000000000..d7555083eeff --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.interp @@ -0,0 +1,32 @@ +token literal names: +null +null +null +'"' +null +'.' + +token symbolic names: +null +NAME +NAME_WITH_RESERVED +QUOTE +NON_RESERVED +RESERVED + +rule names: +NAME +NAME_WITH_RESERVED +QUOTE +NON_RESERVED +RESERVED + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 7, 44, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 3, 2, 6, 2, 15, 10, 2, 13, 2, 14, 2, 16, 3, 3, 3, 3, 7, 3, 21, 10, 3, 12, 3, 14, 3, 24, 11, 3, 3, 3, 3, 3, 7, 3, 28, 10, 3, 12, 3, 14, 3, 31, 11, 3, 6, 3, 33, 10, 3, 13, 3, 14, 3, 34, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 2, 2, 7, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 3, 2, 3, 4, 2, 36, 36, 48, 48, 2, 47, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 3, 14, 3, 2, 2, 2, 5, 18, 3, 2, 2, 2, 7, 38, 3, 2, 2, 2, 9, 40, 3, 2, 2, 2, 11, 42, 3, 2, 2, 2, 13, 15, 5, 9, 5, 2, 14, 13, 3, 2, 2, 2, 15, 16, 3, 2, 2, 2, 16, 14, 3, 2, 2, 2, 16, 17, 3, 2, 2, 2, 17, 4, 3, 2, 2, 2, 18, 22, 5, 7, 4, 2, 19, 21, 5, 9, 5, 2, 20, 19, 3, 2, 2, 2, 21, 24, 3, 2, 2, 2, 22, 20, 3, 2, 2, 2, 22, 23, 3, 2, 2, 2, 23, 32, 3, 2, 2, 2, 24, 22, 3, 2, 2, 2, 25, 29, 5, 11, 6, 2, 26, 28, 5, 9, 5, 2, 27, 26, 3, 2, 2, 2, 28, 31, 3, 2, 2, 2, 29, 27, 3, 2, 2, 2, 29, 30, 3, 2, 2, 2, 30, 33, 3, 2, 2, 2, 31, 29, 3, 2, 2, 2, 32, 25, 3, 2, 2, 2, 33, 34, 3, 2, 2, 2, 34, 32, 3, 2, 2, 2, 34, 35, 3, 2, 2, 2, 35, 36, 3, 2, 2, 2, 36, 37, 5, 7, 4, 2, 37, 6, 3, 2, 2, 2, 38, 39, 7, 36, 2, 2, 39, 8, 3, 2, 2, 2, 40, 41, 10, 2, 2, 2, 41, 10, 3, 2, 2, 2, 42, 43, 7, 48, 2, 2, 43, 12, 3, 2, 2, 2, 7, 2, 16, 22, 29, 34, 2] \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.js b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.js new file mode 100644 index 000000000000..d49bbc8ea47f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.js @@ -0,0 +1,74 @@ +// Generated from /Users/harsha/Code/OpenMetadata/openmetadata-ui/src/main/resources/ui/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/Fqn.g4 by ANTLR 4.9.2 +// jshint ignore: start +import antlr4 from 'antlr4'; + + + +const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", + "\u5964\u0002\u0007,\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003", + "\u0004\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0003\u0002", + "\u0006\u0002\u000f\n\u0002\r\u0002\u000e\u0002\u0010\u0003\u0003\u0003", + "\u0003\u0007\u0003\u0015\n\u0003\f\u0003\u000e\u0003\u0018\u000b\u0003", + "\u0003\u0003\u0003\u0003\u0007\u0003\u001c\n\u0003\f\u0003\u000e\u0003", + "\u001f\u000b\u0003\u0006\u0003!\n\u0003\r\u0003\u000e\u0003\"\u0003", + "\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0005\u0003\u0005\u0003", + "\u0006\u0003\u0006\u0002\u0002\u0007\u0003\u0003\u0005\u0004\u0007\u0005", + "\t\u0006\u000b\u0007\u0003\u0002\u0003\u0004\u0002$$00\u0002/\u0002", + "\u0003\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002\u0002", + "\u0007\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002\u0002", + "\u000b\u0003\u0002\u0002\u0002\u0003\u000e\u0003\u0002\u0002\u0002\u0005", + "\u0012\u0003\u0002\u0002\u0002\u0007&\u0003\u0002\u0002\u0002\t(\u0003", + "\u0002\u0002\u0002\u000b*\u0003\u0002\u0002\u0002\r\u000f\u0005\t\u0005", + "\u0002\u000e\r\u0003\u0002\u0002\u0002\u000f\u0010\u0003\u0002\u0002", + "\u0002\u0010\u000e\u0003\u0002\u0002\u0002\u0010\u0011\u0003\u0002\u0002", + "\u0002\u0011\u0004\u0003\u0002\u0002\u0002\u0012\u0016\u0005\u0007\u0004", + "\u0002\u0013\u0015\u0005\t\u0005\u0002\u0014\u0013\u0003\u0002\u0002", + "\u0002\u0015\u0018\u0003\u0002\u0002\u0002\u0016\u0014\u0003\u0002\u0002", + "\u0002\u0016\u0017\u0003\u0002\u0002\u0002\u0017 \u0003\u0002\u0002", + "\u0002\u0018\u0016\u0003\u0002\u0002\u0002\u0019\u001d\u0005\u000b\u0006", + "\u0002\u001a\u001c\u0005\t\u0005\u0002\u001b\u001a\u0003\u0002\u0002", + "\u0002\u001c\u001f\u0003\u0002\u0002\u0002\u001d\u001b\u0003\u0002\u0002", + "\u0002\u001d\u001e\u0003\u0002\u0002\u0002\u001e!\u0003\u0002\u0002", + "\u0002\u001f\u001d\u0003\u0002\u0002\u0002 \u0019\u0003\u0002\u0002", + "\u0002!\"\u0003\u0002\u0002\u0002\" \u0003\u0002\u0002\u0002\"#\u0003", + "\u0002\u0002\u0002#$\u0003\u0002\u0002\u0002$%\u0005\u0007\u0004\u0002", + "%\u0006\u0003\u0002\u0002\u0002&\'\u0007$\u0002\u0002\'\b\u0003\u0002", + "\u0002\u0002()\n\u0002\u0002\u0002)\n\u0003\u0002\u0002\u0002*+\u0007", + "0\u0002\u0002+\f\u0003\u0002\u0002\u0002\u0007\u0002\u0010\u0016\u001d", + "\"\u0002"].join(""); + + +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); + +export default class FqnLexer extends antlr4.Lexer { + + static grammarFileName = "Fqn.g4"; + static channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + static modeNames = [ "DEFAULT_MODE" ]; + static literalNames = [ null, null, null, "'\"'", null, "'.'" ]; + static symbolicNames = [ null, "NAME", "NAME_WITH_RESERVED", "QUOTE", "NON_RESERVED", + "RESERVED" ]; + static ruleNames = [ "NAME", "NAME_WITH_RESERVED", "QUOTE", "NON_RESERVED", + "RESERVED" ]; + + constructor(input) { + super(input) + this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); + } + + get atn() { + return atn; + } +} + +FqnLexer.EOF = antlr4.Token.EOF; +FqnLexer.NAME = 1; +FqnLexer.NAME_WITH_RESERVED = 2; +FqnLexer.QUOTE = 3; +FqnLexer.NON_RESERVED = 4; +FqnLexer.RESERVED = 5; + + + diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.tokens b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.tokens new file mode 100644 index 000000000000..f0ba459b28bd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnLexer.tokens @@ -0,0 +1,7 @@ +NAME=1 +NAME_WITH_RESERVED=2 +QUOTE=3 +NON_RESERVED=4 +RESERVED=5 +'"'=3 +'.'=5 diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnListener.js b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnListener.js new file mode 100644 index 000000000000..ff586e013bfc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnListener.js @@ -0,0 +1,36 @@ +// Generated from /Users/harsha/Code/OpenMetadata/openmetadata-ui/src/main/resources/ui/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/Fqn.g4 by ANTLR 4.9.2 +// jshint ignore: start +import antlr4 from 'antlr4'; + +// This class defines a complete listener for a parse tree produced by FqnParser. +export default class FqnListener extends antlr4.tree.ParseTreeListener { + + // Enter a parse tree produced by FqnParser#fqn. + enterFqn(ctx) { + } + + // Exit a parse tree produced by FqnParser#fqn. + exitFqn(ctx) { + } + + + // Enter a parse tree produced by FqnParser#unquotedName. + enterUnquotedName(ctx) { + } + + // Exit a parse tree produced by FqnParser#unquotedName. + exitUnquotedName(ctx) { + } + + + // Enter a parse tree produced by FqnParser#quotedName. + enterQuotedName(ctx) { + } + + // Exit a parse tree produced by FqnParser#quotedName. + exitQuotedName(ctx) { + } + + + +} \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnParser.js b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnParser.js new file mode 100644 index 000000000000..4aa5c35fb480 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/FqnParser.js @@ -0,0 +1,276 @@ +// Generated from /Users/harsha/Code/OpenMetadata/openmetadata-ui/src/main/resources/ui/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/Fqn.g4 by ANTLR 4.9.2 +// jshint ignore: start +import antlr4 from 'antlr4'; +import FqnListener from './FqnListener.js'; + +const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", + "\u5964\u0003\u0007\u0015\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0003", + "\u0002\u0003\u0002\u0003\u0002\u0007\u0002\n\n\u0002\f\u0002\u000e\u0002", + "\r\u000b\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0005", + "\u0003\u0013\n\u0003\u0003\u0003\u0002\u0002\u0004\u0002\u0004\u0002", + "\u0002\u0002\u0014\u0002\u0006\u0003\u0002\u0002\u0002\u0004\u0012\u0003", + "\u0002\u0002\u0002\u0006\u000b\u0005\u0004\u0003\u0002\u0007\b\u0007", + "\u0007\u0002\u0002\b\n\u0005\u0004\u0003\u0002\t\u0007\u0003\u0002\u0002", + "\u0002\n\r\u0003\u0002\u0002\u0002\u000b\t\u0003\u0002\u0002\u0002\u000b", + "\f\u0003\u0002\u0002\u0002\f\u000e\u0003\u0002\u0002\u0002\r\u000b\u0003", + "\u0002\u0002\u0002\u000e\u000f\u0007\u0002\u0002\u0003\u000f\u0003\u0003", + "\u0002\u0002\u0002\u0010\u0013\u0007\u0003\u0002\u0002\u0011\u0013\u0007", + "\u0004\u0002\u0002\u0012\u0010\u0003\u0002\u0002\u0002\u0012\u0011\u0003", + "\u0002\u0002\u0002\u0013\u0005\u0003\u0002\u0002\u0002\u0004\u000b\u0012"].join(""); + + +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); + +const sharedContextCache = new antlr4.PredictionContextCache(); + +export default class FqnParser extends antlr4.Parser { + + static grammarFileName = "Fqn.g4"; + static literalNames = [ null, null, null, "'\"'", null, "'.'" ]; + static symbolicNames = [ null, "NAME", "NAME_WITH_RESERVED", "QUOTE", + "NON_RESERVED", "RESERVED" ]; + static ruleNames = [ "fqn", "name" ]; + + constructor(input) { + super(input); + this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); + this.ruleNames = FqnParser.ruleNames; + this.literalNames = FqnParser.literalNames; + this.symbolicNames = FqnParser.symbolicNames; + } + + get atn() { + return atn; + } + + + + fqn() { + let localctx = new FqnContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, FqnParser.RULE_fqn); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 4; + this.name(); + this.state = 9; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FqnParser.RESERVED) { + this.state = 5; + this.match(FqnParser.RESERVED); + this.state = 6; + this.name(); + this.state = 11; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 12; + this.match(FqnParser.EOF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + name() { + let localctx = new NameContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, FqnParser.RULE_name); + try { + this.state = 16; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FqnParser.NAME: + localctx = new UnquotedNameContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 14; + this.match(FqnParser.NAME); + break; + case FqnParser.NAME_WITH_RESERVED: + localctx = new QuotedNameContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 15; + this.match(FqnParser.NAME_WITH_RESERVED); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + +} + +FqnParser.EOF = antlr4.Token.EOF; +FqnParser.NAME = 1; +FqnParser.NAME_WITH_RESERVED = 2; +FqnParser.QUOTE = 3; +FqnParser.NON_RESERVED = 4; +FqnParser.RESERVED = 5; + +FqnParser.RULE_fqn = 0; +FqnParser.RULE_name = 1; + +class FqnContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = FqnParser.RULE_fqn; + } + + name = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(NameContext); + } else { + return this.getTypedRuleContext(NameContext,i); + } + }; + + EOF() { + return this.getToken(FqnParser.EOF, 0); + }; + + RESERVED = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FqnParser.RESERVED); + } else { + return this.getToken(FqnParser.RESERVED, i); + } + }; + + + enterRule(listener) { + if(listener instanceof FqnListener ) { + listener.enterFqn(this); + } + } + + exitRule(listener) { + if(listener instanceof FqnListener ) { + listener.exitFqn(this); + } + } + + +} + + + +class NameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = FqnParser.RULE_name; + } + + + + copyFrom(ctx) { + super.copyFrom(ctx); + } + +} + + +class QuotedNameContext extends NameContext { + + constructor(parser, ctx) { + super(parser); + super.copyFrom(ctx); + } + + NAME_WITH_RESERVED() { + return this.getToken(FqnParser.NAME_WITH_RESERVED, 0); + }; + + enterRule(listener) { + if(listener instanceof FqnListener ) { + listener.enterQuotedName(this); + } + } + + exitRule(listener) { + if(listener instanceof FqnListener ) { + listener.exitQuotedName(this); + } + } + + +} + +FqnParser.QuotedNameContext = QuotedNameContext; + +class UnquotedNameContext extends NameContext { + + constructor(parser, ctx) { + super(parser); + super.copyFrom(ctx); + } + + NAME() { + return this.getToken(FqnParser.NAME, 0); + }; + + enterRule(listener) { + if(listener instanceof FqnListener ) { + listener.enterUnquotedName(this); + } + } + + exitRule(listener) { + if(listener instanceof FqnListener ) { + listener.exitUnquotedName(this); + } + } + + +} + +FqnParser.UnquotedNameContext = UnquotedNameContext; + + +FqnParser.FqnContext = FqnContext; +FqnParser.NameContext = NameContext; diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUri.interp b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUri.interp new file mode 100644 index 000000000000..146729db8915 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUri.interp @@ -0,0 +1,49 @@ +token literal names: +null +'jdbc:' +'/' +null +null +null +null +null +null +null +null +null +'?' +'.' +':' +'&' +null + +token symbolic names: +null +null +null +DATABASE_TYPE +URI_SEPARATOR +PORT_NUMBER +IDENTIFIER +HOST_NAME +IPV4_ADDRESS +IPV6_ADDRESS +HEXDIGIT +CONNECTION_ARG +CONNECTION_ARG_INIT +PERIOD +COLON +AMP +WS + +rule names: +jdbcUrl +schemaTable +databaseName +schemaName +tableName +serverName + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 18, 64, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 3, 2, 3, 2, 3, 2, 5, 2, 18, 10, 2, 3, 2, 5, 2, 21, 10, 2, 3, 2, 3, 2, 5, 2, 25, 10, 2, 3, 2, 3, 2, 3, 2, 3, 2, 7, 2, 31, 10, 2, 12, 2, 14, 2, 34, 11, 2, 5, 2, 36, 10, 2, 3, 2, 5, 2, 39, 10, 2, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 45, 10, 3, 3, 3, 3, 3, 3, 4, 5, 4, 50, 10, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 62, 10, 7, 3, 7, 2, 2, 8, 2, 4, 6, 8, 10, 12, 2, 2, 2, 69, 2, 14, 3, 2, 2, 2, 4, 40, 3, 2, 2, 2, 6, 49, 3, 2, 2, 2, 8, 51, 3, 2, 2, 2, 10, 53, 3, 2, 2, 2, 12, 61, 3, 2, 2, 2, 14, 15, 7, 3, 2, 2, 15, 17, 7, 5, 2, 2, 16, 18, 5, 12, 7, 2, 17, 16, 3, 2, 2, 2, 17, 18, 3, 2, 2, 2, 18, 20, 3, 2, 2, 2, 19, 21, 7, 7, 2, 2, 20, 19, 3, 2, 2, 2, 20, 21, 3, 2, 2, 2, 21, 24, 3, 2, 2, 2, 22, 23, 7, 4, 2, 2, 23, 25, 5, 6, 4, 2, 24, 22, 3, 2, 2, 2, 24, 25, 3, 2, 2, 2, 25, 35, 3, 2, 2, 2, 26, 27, 7, 14, 2, 2, 27, 32, 7, 13, 2, 2, 28, 29, 7, 17, 2, 2, 29, 31, 7, 13, 2, 2, 30, 28, 3, 2, 2, 2, 31, 34, 3, 2, 2, 2, 32, 30, 3, 2, 2, 2, 32, 33, 3, 2, 2, 2, 33, 36, 3, 2, 2, 2, 34, 32, 3, 2, 2, 2, 35, 26, 3, 2, 2, 2, 35, 36, 3, 2, 2, 2, 36, 38, 3, 2, 2, 2, 37, 39, 5, 4, 3, 2, 38, 37, 3, 2, 2, 2, 38, 39, 3, 2, 2, 2, 39, 3, 3, 2, 2, 2, 40, 44, 7, 16, 2, 2, 41, 42, 5, 8, 5, 2, 42, 43, 7, 15, 2, 2, 43, 45, 3, 2, 2, 2, 44, 41, 3, 2, 2, 2, 44, 45, 3, 2, 2, 2, 45, 46, 3, 2, 2, 2, 46, 47, 5, 10, 6, 2, 47, 5, 3, 2, 2, 2, 48, 50, 7, 8, 2, 2, 49, 48, 3, 2, 2, 2, 49, 50, 3, 2, 2, 2, 50, 7, 3, 2, 2, 2, 51, 52, 7, 8, 2, 2, 52, 9, 3, 2, 2, 2, 53, 54, 7, 8, 2, 2, 54, 11, 3, 2, 2, 2, 55, 62, 7, 9, 2, 2, 56, 62, 7, 10, 2, 2, 57, 62, 7, 11, 2, 2, 58, 59, 7, 6, 2, 2, 59, 62, 7, 8, 2, 2, 60, 62, 7, 6, 2, 2, 61, 55, 3, 2, 2, 2, 61, 56, 3, 2, 2, 2, 61, 57, 3, 2, 2, 2, 61, 58, 3, 2, 2, 2, 61, 60, 3, 2, 2, 2, 62, 13, 3, 2, 2, 2, 11, 17, 20, 24, 32, 35, 38, 44, 49, 61] \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUri.tokens b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUri.tokens new file mode 100644 index 000000000000..bd3f9f104cce --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUri.tokens @@ -0,0 +1,22 @@ +T__0=1 +T__1=2 +DATABASE_TYPE=3 +URI_SEPARATOR=4 +PORT_NUMBER=5 +IDENTIFIER=6 +HOST_NAME=7 +IPV4_ADDRESS=8 +IPV6_ADDRESS=9 +HEXDIGIT=10 +CONNECTION_ARG=11 +CONNECTION_ARG_INIT=12 +PERIOD=13 +COLON=14 +AMP=15 +WS=16 +'jdbc:'=1 +'/'=2 +'?'=12 +'.'=13 +':'=14 +'&'=15 diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.interp b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.interp new file mode 100644 index 000000000000..8b3b10927b71 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.interp @@ -0,0 +1,65 @@ +token literal names: +null +'jdbc:' +'/' +null +null +null +null +null +null +null +null +null +'?' +'.' +':' +'&' +null + +token symbolic names: +null +null +null +DATABASE_TYPE +URI_SEPARATOR +PORT_NUMBER +IDENTIFIER +HOST_NAME +IPV4_ADDRESS +IPV6_ADDRESS +HEXDIGIT +CONNECTION_ARG +CONNECTION_ARG_INIT +PERIOD +COLON +AMP +WS + +rule names: +T__0 +T__1 +DATABASE_TYPE +URI_SEPARATOR +PORT_NUMBER +IDENTIFIER +HOST_NAME +IPV4_ADDRESS +IPV6_ADDRESS +HEXDIGIT +CONNECTION_ARG +CONNECTION_ARG_INIT +PERIOD +COLON +AMP +WS + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 18, 216, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 111, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 122, 10, 5, 3, 6, 3, 6, 6, 6, 126, 10, 6, 13, 6, 14, 6, 127, 3, 7, 3, 7, 7, 7, 132, 10, 7, 12, 7, 14, 7, 135, 11, 7, 3, 8, 3, 8, 3, 8, 7, 8, 140, 10, 8, 12, 8, 14, 8, 143, 11, 8, 3, 8, 3, 8, 3, 9, 3, 9, 6, 9, 149, 10, 9, 13, 9, 14, 9, 150, 3, 9, 3, 9, 6, 9, 155, 10, 9, 13, 9, 14, 9, 156, 3, 9, 3, 9, 6, 9, 161, 10, 9, 13, 9, 14, 9, 162, 3, 9, 3, 9, 6, 9, 167, 10, 9, 13, 9, 14, 9, 168, 3, 10, 3, 10, 3, 10, 6, 10, 174, 10, 10, 13, 10, 14, 10, 175, 3, 10, 3, 10, 6, 10, 180, 10, 10, 13, 10, 14, 10, 181, 7, 10, 184, 10, 10, 12, 10, 14, 10, 187, 11, 10, 3, 10, 3, 10, 3, 10, 5, 10, 192, 10, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 6, 17, 211, 10, 17, 13, 17, 14, 17, 212, 3, 17, 3, 17, 2, 2, 18, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 3, 2, 9, 3, 2, 50, 59, 4, 2, 67, 92, 99, 124, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 6, 2, 47, 48, 50, 59, 67, 92, 99, 124, 5, 2, 50, 59, 67, 92, 99, 124, 5, 2, 50, 59, 67, 72, 99, 104, 5, 2, 11, 12, 15, 15, 34, 34, 2, 237, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 3, 35, 3, 2, 2, 2, 5, 41, 3, 2, 2, 2, 7, 110, 3, 2, 2, 2, 9, 121, 3, 2, 2, 2, 11, 123, 3, 2, 2, 2, 13, 129, 3, 2, 2, 2, 15, 136, 3, 2, 2, 2, 17, 146, 3, 2, 2, 2, 19, 170, 3, 2, 2, 2, 21, 195, 3, 2, 2, 2, 23, 197, 3, 2, 2, 2, 25, 201, 3, 2, 2, 2, 27, 203, 3, 2, 2, 2, 29, 205, 3, 2, 2, 2, 31, 207, 3, 2, 2, 2, 33, 210, 3, 2, 2, 2, 35, 36, 7, 108, 2, 2, 36, 37, 7, 102, 2, 2, 37, 38, 7, 100, 2, 2, 38, 39, 7, 101, 2, 2, 39, 40, 7, 60, 2, 2, 40, 4, 3, 2, 2, 2, 41, 42, 7, 49, 2, 2, 42, 6, 3, 2, 2, 2, 43, 44, 7, 111, 2, 2, 44, 45, 7, 123, 2, 2, 45, 46, 7, 117, 2, 2, 46, 47, 7, 115, 2, 2, 47, 111, 7, 110, 2, 2, 48, 49, 7, 114, 2, 2, 49, 50, 7, 113, 2, 2, 50, 51, 7, 117, 2, 2, 51, 52, 7, 118, 2, 2, 52, 53, 7, 105, 2, 2, 53, 54, 7, 116, 2, 2, 54, 55, 7, 103, 2, 2, 55, 56, 7, 117, 2, 2, 56, 57, 7, 115, 2, 2, 57, 111, 7, 110, 2, 2, 58, 59, 7, 113, 2, 2, 59, 60, 7, 116, 2, 2, 60, 61, 7, 99, 2, 2, 61, 62, 7, 101, 2, 2, 62, 63, 7, 110, 2, 2, 63, 64, 7, 103, 2, 2, 64, 65, 7, 60, 2, 2, 65, 66, 7, 118, 2, 2, 66, 67, 7, 106, 2, 2, 67, 68, 7, 107, 2, 2, 68, 111, 7, 112, 2, 2, 69, 70, 7, 101, 2, 2, 70, 71, 7, 110, 2, 2, 71, 72, 7, 107, 2, 2, 72, 73, 7, 101, 2, 2, 73, 74, 7, 109, 2, 2, 74, 75, 7, 106, 2, 2, 75, 76, 7, 113, 2, 2, 76, 77, 7, 119, 2, 2, 77, 78, 7, 117, 2, 2, 78, 111, 7, 103, 2, 2, 79, 80, 7, 118, 2, 2, 80, 81, 7, 116, 2, 2, 81, 82, 7, 107, 2, 2, 82, 83, 7, 112, 2, 2, 83, 111, 7, 113, 2, 2, 84, 85, 7, 114, 2, 2, 85, 86, 7, 116, 2, 2, 86, 87, 7, 103, 2, 2, 87, 88, 7, 117, 2, 2, 88, 89, 7, 118, 2, 2, 89, 111, 7, 113, 2, 2, 90, 91, 7, 120, 2, 2, 91, 92, 7, 103, 2, 2, 92, 93, 7, 116, 2, 2, 93, 94, 7, 118, 2, 2, 94, 95, 7, 107, 2, 2, 95, 96, 7, 101, 2, 2, 96, 111, 7, 99, 2, 2, 97, 98, 7, 106, 2, 2, 98, 99, 7, 107, 2, 2, 99, 100, 7, 120, 2, 2, 100, 101, 7, 103, 2, 2, 101, 111, 7, 52, 2, 2, 102, 103, 7, 116, 2, 2, 103, 104, 7, 103, 2, 2, 104, 105, 7, 102, 2, 2, 105, 106, 7, 117, 2, 2, 106, 107, 7, 106, 2, 2, 107, 108, 7, 107, 2, 2, 108, 109, 7, 104, 2, 2, 109, 111, 7, 118, 2, 2, 110, 43, 3, 2, 2, 2, 110, 48, 3, 2, 2, 2, 110, 58, 3, 2, 2, 2, 110, 69, 3, 2, 2, 2, 110, 79, 3, 2, 2, 2, 110, 84, 3, 2, 2, 2, 110, 90, 3, 2, 2, 2, 110, 97, 3, 2, 2, 2, 110, 102, 3, 2, 2, 2, 111, 8, 3, 2, 2, 2, 112, 113, 7, 60, 2, 2, 113, 114, 7, 49, 2, 2, 114, 122, 7, 49, 2, 2, 115, 116, 7, 60, 2, 2, 116, 117, 7, 66, 2, 2, 117, 118, 7, 49, 2, 2, 118, 122, 7, 49, 2, 2, 119, 120, 7, 60, 2, 2, 120, 122, 7, 66, 2, 2, 121, 112, 3, 2, 2, 2, 121, 115, 3, 2, 2, 2, 121, 119, 3, 2, 2, 2, 122, 10, 3, 2, 2, 2, 123, 125, 5, 29, 15, 2, 124, 126, 9, 2, 2, 2, 125, 124, 3, 2, 2, 2, 126, 127, 3, 2, 2, 2, 127, 125, 3, 2, 2, 2, 127, 128, 3, 2, 2, 2, 128, 12, 3, 2, 2, 2, 129, 133, 9, 3, 2, 2, 130, 132, 9, 4, 2, 2, 131, 130, 3, 2, 2, 2, 132, 135, 3, 2, 2, 2, 133, 131, 3, 2, 2, 2, 133, 134, 3, 2, 2, 2, 134, 14, 3, 2, 2, 2, 135, 133, 3, 2, 2, 2, 136, 137, 5, 9, 5, 2, 137, 141, 9, 3, 2, 2, 138, 140, 9, 5, 2, 2, 139, 138, 3, 2, 2, 2, 140, 143, 3, 2, 2, 2, 141, 139, 3, 2, 2, 2, 141, 142, 3, 2, 2, 2, 142, 144, 3, 2, 2, 2, 143, 141, 3, 2, 2, 2, 144, 145, 9, 6, 2, 2, 145, 16, 3, 2, 2, 2, 146, 148, 5, 9, 5, 2, 147, 149, 9, 2, 2, 2, 148, 147, 3, 2, 2, 2, 149, 150, 3, 2, 2, 2, 150, 148, 3, 2, 2, 2, 150, 151, 3, 2, 2, 2, 151, 152, 3, 2, 2, 2, 152, 154, 5, 27, 14, 2, 153, 155, 9, 2, 2, 2, 154, 153, 3, 2, 2, 2, 155, 156, 3, 2, 2, 2, 156, 154, 3, 2, 2, 2, 156, 157, 3, 2, 2, 2, 157, 158, 3, 2, 2, 2, 158, 160, 5, 27, 14, 2, 159, 161, 9, 2, 2, 2, 160, 159, 3, 2, 2, 2, 161, 162, 3, 2, 2, 2, 162, 160, 3, 2, 2, 2, 162, 163, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 166, 5, 27, 14, 2, 165, 167, 9, 2, 2, 2, 166, 165, 3, 2, 2, 2, 167, 168, 3, 2, 2, 2, 168, 166, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 18, 3, 2, 2, 2, 170, 171, 5, 9, 5, 2, 171, 173, 7, 93, 2, 2, 172, 174, 5, 21, 11, 2, 173, 172, 3, 2, 2, 2, 174, 175, 3, 2, 2, 2, 175, 173, 3, 2, 2, 2, 175, 176, 3, 2, 2, 2, 176, 185, 3, 2, 2, 2, 177, 179, 5, 29, 15, 2, 178, 180, 5, 21, 11, 2, 179, 178, 3, 2, 2, 2, 180, 181, 3, 2, 2, 2, 181, 179, 3, 2, 2, 2, 181, 182, 3, 2, 2, 2, 182, 184, 3, 2, 2, 2, 183, 177, 3, 2, 2, 2, 184, 187, 3, 2, 2, 2, 185, 183, 3, 2, 2, 2, 185, 186, 3, 2, 2, 2, 186, 191, 3, 2, 2, 2, 187, 185, 3, 2, 2, 2, 188, 189, 5, 29, 15, 2, 189, 190, 5, 17, 9, 2, 190, 192, 3, 2, 2, 2, 191, 188, 3, 2, 2, 2, 191, 192, 3, 2, 2, 2, 192, 193, 3, 2, 2, 2, 193, 194, 7, 95, 2, 2, 194, 20, 3, 2, 2, 2, 195, 196, 9, 7, 2, 2, 196, 22, 3, 2, 2, 2, 197, 198, 5, 13, 7, 2, 198, 199, 7, 63, 2, 2, 199, 200, 5, 13, 7, 2, 200, 24, 3, 2, 2, 2, 201, 202, 7, 65, 2, 2, 202, 26, 3, 2, 2, 2, 203, 204, 7, 48, 2, 2, 204, 28, 3, 2, 2, 2, 205, 206, 7, 60, 2, 2, 206, 30, 3, 2, 2, 2, 207, 208, 7, 40, 2, 2, 208, 32, 3, 2, 2, 2, 209, 211, 9, 8, 2, 2, 210, 209, 3, 2, 2, 2, 211, 212, 3, 2, 2, 2, 212, 210, 3, 2, 2, 2, 212, 213, 3, 2, 2, 2, 213, 214, 3, 2, 2, 2, 214, 215, 8, 17, 2, 2, 215, 34, 3, 2, 2, 2, 17, 2, 110, 121, 127, 133, 141, 150, 156, 162, 168, 175, 181, 185, 191, 212, 3, 8, 2, 2] \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.js b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.js new file mode 100644 index 000000000000..02fab549d79a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.js @@ -0,0 +1,198 @@ +// Generated from /Users/harsha/Code/OpenMetadata/openmetadata-ui/src/main/resources/ui/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/JdbcUri.g4 by ANTLR 4.9.2 +// jshint ignore: start +import antlr4 from 'antlr4'; + + + +const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", + "\u5964\u0002\u0012\u00d8\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003", + "\u0004\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007", + "\t\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", + "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", + "\t\u0010\u0004\u0011\t\u0011\u0003\u0002\u0003\u0002\u0003\u0002\u0003", + "\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0005", + "\u0004o\n\u0004\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", + "\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0005\u0005z", + "\n\u0005\u0003\u0006\u0003\u0006\u0006\u0006~\n\u0006\r\u0006\u000e", + "\u0006\u007f\u0003\u0007\u0003\u0007\u0007\u0007\u0084\n\u0007\f\u0007", + "\u000e\u0007\u0087\u000b\u0007\u0003\b\u0003\b\u0003\b\u0007\b\u008c", + "\n\b\f\b\u000e\b\u008f\u000b\b\u0003\b\u0003\b\u0003\t\u0003\t\u0006", + "\t\u0095\n\t\r\t\u000e\t\u0096\u0003\t\u0003\t\u0006\t\u009b\n\t\r\t", + "\u000e\t\u009c\u0003\t\u0003\t\u0006\t\u00a1\n\t\r\t\u000e\t\u00a2\u0003", + "\t\u0003\t\u0006\t\u00a7\n\t\r\t\u000e\t\u00a8\u0003\n\u0003\n\u0003", + "\n\u0006\n\u00ae\n\n\r\n\u000e\n\u00af\u0003\n\u0003\n\u0006\n\u00b4", + "\n\n\r\n\u000e\n\u00b5\u0007\n\u00b8\n\n\f\n\u000e\n\u00bb\u000b\n\u0003", + "\n\u0003\n\u0003\n\u0005\n\u00c0\n\n\u0003\n\u0003\n\u0003\u000b\u0003", + "\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003\r\u0003\r\u0003\u000e\u0003", + "\u000e\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0011\u0006", + "\u0011\u00d3\n\u0011\r\u0011\u000e\u0011\u00d4\u0003\u0011\u0003\u0011", + "\u0002\u0002\u0012\u0003\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b", + "\u0007\r\b\u000f\t\u0011\n\u0013\u000b\u0015\f\u0017\r\u0019\u000e\u001b", + "\u000f\u001d\u0010\u001f\u0011!\u0012\u0003\u0002\t\u0003\u00022;\u0004", + "\u0002C\\c|\u0006\u00022;C\\aac|\u0006\u0002/02;C\\c|\u0005\u00022;", + "C\\c|\u0005\u00022;CHch\u0005\u0002\u000b\f\u000f\u000f\"\"\u0002\u00ed", + "\u0002\u0003\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002", + "\u0002\u0007\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002", + "\u0002\u000b\u0003\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002", + "\u0002\u000f\u0003\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002", + "\u0002\u0013\u0003\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002", + "\u0002\u0017\u0003\u0002\u0002\u0002\u0002\u0019\u0003\u0002\u0002\u0002", + "\u0002\u001b\u0003\u0002\u0002\u0002\u0002\u001d\u0003\u0002\u0002\u0002", + "\u0002\u001f\u0003\u0002\u0002\u0002\u0002!\u0003\u0002\u0002\u0002", + "\u0003#\u0003\u0002\u0002\u0002\u0005)\u0003\u0002\u0002\u0002\u0007", + "n\u0003\u0002\u0002\u0002\ty\u0003\u0002\u0002\u0002\u000b{\u0003\u0002", + "\u0002\u0002\r\u0081\u0003\u0002\u0002\u0002\u000f\u0088\u0003\u0002", + "\u0002\u0002\u0011\u0092\u0003\u0002\u0002\u0002\u0013\u00aa\u0003\u0002", + "\u0002\u0002\u0015\u00c3\u0003\u0002\u0002\u0002\u0017\u00c5\u0003\u0002", + "\u0002\u0002\u0019\u00c9\u0003\u0002\u0002\u0002\u001b\u00cb\u0003\u0002", + "\u0002\u0002\u001d\u00cd\u0003\u0002\u0002\u0002\u001f\u00cf\u0003\u0002", + "\u0002\u0002!\u00d2\u0003\u0002\u0002\u0002#$\u0007l\u0002\u0002$%\u0007", + "f\u0002\u0002%&\u0007d\u0002\u0002&\'\u0007e\u0002\u0002\'(\u0007<\u0002", + "\u0002(\u0004\u0003\u0002\u0002\u0002)*\u00071\u0002\u0002*\u0006\u0003", + "\u0002\u0002\u0002+,\u0007o\u0002\u0002,-\u0007{\u0002\u0002-.\u0007", + "u\u0002\u0002./\u0007s\u0002\u0002/o\u0007n\u0002\u000201\u0007r\u0002", + "\u000212\u0007q\u0002\u000223\u0007u\u0002\u000234\u0007v\u0002\u0002", + "45\u0007i\u0002\u000256\u0007t\u0002\u000267\u0007g\u0002\u000278\u0007", + "u\u0002\u000289\u0007s\u0002\u00029o\u0007n\u0002\u0002:;\u0007q\u0002", + "\u0002;<\u0007t\u0002\u0002<=\u0007c\u0002\u0002=>\u0007e\u0002\u0002", + ">?\u0007n\u0002\u0002?@\u0007g\u0002\u0002@A\u0007<\u0002\u0002AB\u0007", + "v\u0002\u0002BC\u0007j\u0002\u0002CD\u0007k\u0002\u0002Do\u0007p\u0002", + "\u0002EF\u0007e\u0002\u0002FG\u0007n\u0002\u0002GH\u0007k\u0002\u0002", + "HI\u0007e\u0002\u0002IJ\u0007m\u0002\u0002JK\u0007j\u0002\u0002KL\u0007", + "q\u0002\u0002LM\u0007w\u0002\u0002MN\u0007u\u0002\u0002No\u0007g\u0002", + "\u0002OP\u0007v\u0002\u0002PQ\u0007t\u0002\u0002QR\u0007k\u0002\u0002", + "RS\u0007p\u0002\u0002So\u0007q\u0002\u0002TU\u0007r\u0002\u0002UV\u0007", + "t\u0002\u0002VW\u0007g\u0002\u0002WX\u0007u\u0002\u0002XY\u0007v\u0002", + "\u0002Yo\u0007q\u0002\u0002Z[\u0007x\u0002\u0002[\\\u0007g\u0002\u0002", + "\\]\u0007t\u0002\u0002]^\u0007v\u0002\u0002^_\u0007k\u0002\u0002_`\u0007", + "e\u0002\u0002`o\u0007c\u0002\u0002ab\u0007j\u0002\u0002bc\u0007k\u0002", + "\u0002cd\u0007x\u0002\u0002de\u0007g\u0002\u0002eo\u00074\u0002\u0002", + "fg\u0007t\u0002\u0002gh\u0007g\u0002\u0002hi\u0007f\u0002\u0002ij\u0007", + "u\u0002\u0002jk\u0007j\u0002\u0002kl\u0007k\u0002\u0002lm\u0007h\u0002", + "\u0002mo\u0007v\u0002\u0002n+\u0003\u0002\u0002\u0002n0\u0003\u0002", + "\u0002\u0002n:\u0003\u0002\u0002\u0002nE\u0003\u0002\u0002\u0002nO\u0003", + "\u0002\u0002\u0002nT\u0003\u0002\u0002\u0002nZ\u0003\u0002\u0002\u0002", + "na\u0003\u0002\u0002\u0002nf\u0003\u0002\u0002\u0002o\b\u0003\u0002", + "\u0002\u0002pq\u0007<\u0002\u0002qr\u00071\u0002\u0002rz\u00071\u0002", + "\u0002st\u0007<\u0002\u0002tu\u0007B\u0002\u0002uv\u00071\u0002\u0002", + "vz\u00071\u0002\u0002wx\u0007<\u0002\u0002xz\u0007B\u0002\u0002yp\u0003", + "\u0002\u0002\u0002ys\u0003\u0002\u0002\u0002yw\u0003\u0002\u0002\u0002", + "z\n\u0003\u0002\u0002\u0002{}\u0005\u001d\u000f\u0002|~\t\u0002\u0002", + "\u0002}|\u0003\u0002\u0002\u0002~\u007f\u0003\u0002\u0002\u0002\u007f", + "}\u0003\u0002\u0002\u0002\u007f\u0080\u0003\u0002\u0002\u0002\u0080", + "\f\u0003\u0002\u0002\u0002\u0081\u0085\t\u0003\u0002\u0002\u0082\u0084", + "\t\u0004\u0002\u0002\u0083\u0082\u0003\u0002\u0002\u0002\u0084\u0087", + "\u0003\u0002\u0002\u0002\u0085\u0083\u0003\u0002\u0002\u0002\u0085\u0086", + "\u0003\u0002\u0002\u0002\u0086\u000e\u0003\u0002\u0002\u0002\u0087\u0085", + "\u0003\u0002\u0002\u0002\u0088\u0089\u0005\t\u0005\u0002\u0089\u008d", + "\t\u0003\u0002\u0002\u008a\u008c\t\u0005\u0002\u0002\u008b\u008a\u0003", + "\u0002\u0002\u0002\u008c\u008f\u0003\u0002\u0002\u0002\u008d\u008b\u0003", + "\u0002\u0002\u0002\u008d\u008e\u0003\u0002\u0002\u0002\u008e\u0090\u0003", + "\u0002\u0002\u0002\u008f\u008d\u0003\u0002\u0002\u0002\u0090\u0091\t", + "\u0006\u0002\u0002\u0091\u0010\u0003\u0002\u0002\u0002\u0092\u0094\u0005", + "\t\u0005\u0002\u0093\u0095\t\u0002\u0002\u0002\u0094\u0093\u0003\u0002", + "\u0002\u0002\u0095\u0096\u0003\u0002\u0002\u0002\u0096\u0094\u0003\u0002", + "\u0002\u0002\u0096\u0097\u0003\u0002\u0002\u0002\u0097\u0098\u0003\u0002", + "\u0002\u0002\u0098\u009a\u0005\u001b\u000e\u0002\u0099\u009b\t\u0002", + "\u0002\u0002\u009a\u0099\u0003\u0002\u0002\u0002\u009b\u009c\u0003\u0002", + "\u0002\u0002\u009c\u009a\u0003\u0002\u0002\u0002\u009c\u009d\u0003\u0002", + "\u0002\u0002\u009d\u009e\u0003\u0002\u0002\u0002\u009e\u00a0\u0005\u001b", + "\u000e\u0002\u009f\u00a1\t\u0002\u0002\u0002\u00a0\u009f\u0003\u0002", + "\u0002\u0002\u00a1\u00a2\u0003\u0002\u0002\u0002\u00a2\u00a0\u0003\u0002", + "\u0002\u0002\u00a2\u00a3\u0003\u0002\u0002\u0002\u00a3\u00a4\u0003\u0002", + "\u0002\u0002\u00a4\u00a6\u0005\u001b\u000e\u0002\u00a5\u00a7\t\u0002", + "\u0002\u0002\u00a6\u00a5\u0003\u0002\u0002\u0002\u00a7\u00a8\u0003\u0002", + "\u0002\u0002\u00a8\u00a6\u0003\u0002\u0002\u0002\u00a8\u00a9\u0003\u0002", + "\u0002\u0002\u00a9\u0012\u0003\u0002\u0002\u0002\u00aa\u00ab\u0005\t", + "\u0005\u0002\u00ab\u00ad\u0007]\u0002\u0002\u00ac\u00ae\u0005\u0015", + "\u000b\u0002\u00ad\u00ac\u0003\u0002\u0002\u0002\u00ae\u00af\u0003\u0002", + "\u0002\u0002\u00af\u00ad\u0003\u0002\u0002\u0002\u00af\u00b0\u0003\u0002", + "\u0002\u0002\u00b0\u00b9\u0003\u0002\u0002\u0002\u00b1\u00b3\u0005\u001d", + "\u000f\u0002\u00b2\u00b4\u0005\u0015\u000b\u0002\u00b3\u00b2\u0003\u0002", + "\u0002\u0002\u00b4\u00b5\u0003\u0002\u0002\u0002\u00b5\u00b3\u0003\u0002", + "\u0002\u0002\u00b5\u00b6\u0003\u0002\u0002\u0002\u00b6\u00b8\u0003\u0002", + "\u0002\u0002\u00b7\u00b1\u0003\u0002\u0002\u0002\u00b8\u00bb\u0003\u0002", + "\u0002\u0002\u00b9\u00b7\u0003\u0002\u0002\u0002\u00b9\u00ba\u0003\u0002", + "\u0002\u0002\u00ba\u00bf\u0003\u0002\u0002\u0002\u00bb\u00b9\u0003\u0002", + "\u0002\u0002\u00bc\u00bd\u0005\u001d\u000f\u0002\u00bd\u00be\u0005\u0011", + "\t\u0002\u00be\u00c0\u0003\u0002\u0002\u0002\u00bf\u00bc\u0003\u0002", + "\u0002\u0002\u00bf\u00c0\u0003\u0002\u0002\u0002\u00c0\u00c1\u0003\u0002", + "\u0002\u0002\u00c1\u00c2\u0007_\u0002\u0002\u00c2\u0014\u0003\u0002", + "\u0002\u0002\u00c3\u00c4\t\u0007\u0002\u0002\u00c4\u0016\u0003\u0002", + "\u0002\u0002\u00c5\u00c6\u0005\r\u0007\u0002\u00c6\u00c7\u0007?\u0002", + "\u0002\u00c7\u00c8\u0005\r\u0007\u0002\u00c8\u0018\u0003\u0002\u0002", + "\u0002\u00c9\u00ca\u0007A\u0002\u0002\u00ca\u001a\u0003\u0002\u0002", + "\u0002\u00cb\u00cc\u00070\u0002\u0002\u00cc\u001c\u0003\u0002\u0002", + "\u0002\u00cd\u00ce\u0007<\u0002\u0002\u00ce\u001e\u0003\u0002\u0002", + "\u0002\u00cf\u00d0\u0007(\u0002\u0002\u00d0 \u0003\u0002\u0002\u0002", + "\u00d1\u00d3\t\b\u0002\u0002\u00d2\u00d1\u0003\u0002\u0002\u0002\u00d3", + "\u00d4\u0003\u0002\u0002\u0002\u00d4\u00d2\u0003\u0002\u0002\u0002\u00d4", + "\u00d5\u0003\u0002\u0002\u0002\u00d5\u00d6\u0003\u0002\u0002\u0002\u00d6", + "\u00d7\b\u0011\u0002\u0002\u00d7\"\u0003\u0002\u0002\u0002\u0011\u0002", + "ny\u007f\u0085\u008d\u0096\u009c\u00a2\u00a8\u00af\u00b5\u00b9\u00bf", + "\u00d4\u0003\b\u0002\u0002"].join(""); + + +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); + +export default class JdbcUriLexer extends antlr4.Lexer { + + static grammarFileName = "JdbcUri.g4"; + static channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + static modeNames = [ "DEFAULT_MODE" ]; + static literalNames = [ null, "'jdbc:'", "'/'", null, null, null, null, + null, null, null, null, null, "'?'", "'.'", "':'", + "'&'" ]; + static symbolicNames = [ null, null, null, "DATABASE_TYPE", "URI_SEPARATOR", + "PORT_NUMBER", "IDENTIFIER", "HOST_NAME", "IPV4_ADDRESS", + "IPV6_ADDRESS", "HEXDIGIT", "CONNECTION_ARG", + "CONNECTION_ARG_INIT", "PERIOD", "COLON", "AMP", + "WS" ]; + static ruleNames = [ "T__0", "T__1", "DATABASE_TYPE", "URI_SEPARATOR", + "PORT_NUMBER", "IDENTIFIER", "HOST_NAME", "IPV4_ADDRESS", + "IPV6_ADDRESS", "HEXDIGIT", "CONNECTION_ARG", "CONNECTION_ARG_INIT", + "PERIOD", "COLON", "AMP", "WS" ]; + + constructor(input) { + super(input) + this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); + } + + get atn() { + return atn; + } +} + +JdbcUriLexer.EOF = antlr4.Token.EOF; +JdbcUriLexer.T__0 = 1; +JdbcUriLexer.T__1 = 2; +JdbcUriLexer.DATABASE_TYPE = 3; +JdbcUriLexer.URI_SEPARATOR = 4; +JdbcUriLexer.PORT_NUMBER = 5; +JdbcUriLexer.IDENTIFIER = 6; +JdbcUriLexer.HOST_NAME = 7; +JdbcUriLexer.IPV4_ADDRESS = 8; +JdbcUriLexer.IPV6_ADDRESS = 9; +JdbcUriLexer.HEXDIGIT = 10; +JdbcUriLexer.CONNECTION_ARG = 11; +JdbcUriLexer.CONNECTION_ARG_INIT = 12; +JdbcUriLexer.PERIOD = 13; +JdbcUriLexer.COLON = 14; +JdbcUriLexer.AMP = 15; +JdbcUriLexer.WS = 16; + + + diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.tokens b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.tokens new file mode 100644 index 000000000000..bd3f9f104cce --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriLexer.tokens @@ -0,0 +1,22 @@ +T__0=1 +T__1=2 +DATABASE_TYPE=3 +URI_SEPARATOR=4 +PORT_NUMBER=5 +IDENTIFIER=6 +HOST_NAME=7 +IPV4_ADDRESS=8 +IPV6_ADDRESS=9 +HEXDIGIT=10 +CONNECTION_ARG=11 +CONNECTION_ARG_INIT=12 +PERIOD=13 +COLON=14 +AMP=15 +WS=16 +'jdbc:'=1 +'/'=2 +'?'=12 +'.'=13 +':'=14 +'&'=15 diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriListener.js b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriListener.js new file mode 100644 index 000000000000..18e5416f7e9d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriListener.js @@ -0,0 +1,63 @@ +// Generated from /Users/harsha/Code/OpenMetadata/openmetadata-ui/src/main/resources/ui/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/JdbcUri.g4 by ANTLR 4.9.2 +// jshint ignore: start +import antlr4 from 'antlr4'; + +// This class defines a complete listener for a parse tree produced by JdbcUriParser. +export default class JdbcUriListener extends antlr4.tree.ParseTreeListener { + + // Enter a parse tree produced by JdbcUriParser#jdbcUrl. + enterJdbcUrl(ctx) { + } + + // Exit a parse tree produced by JdbcUriParser#jdbcUrl. + exitJdbcUrl(ctx) { + } + + + // Enter a parse tree produced by JdbcUriParser#schemaTable. + enterSchemaTable(ctx) { + } + + // Exit a parse tree produced by JdbcUriParser#schemaTable. + exitSchemaTable(ctx) { + } + + + // Enter a parse tree produced by JdbcUriParser#databaseName. + enterDatabaseName(ctx) { + } + + // Exit a parse tree produced by JdbcUriParser#databaseName. + exitDatabaseName(ctx) { + } + + + // Enter a parse tree produced by JdbcUriParser#schemaName. + enterSchemaName(ctx) { + } + + // Exit a parse tree produced by JdbcUriParser#schemaName. + exitSchemaName(ctx) { + } + + + // Enter a parse tree produced by JdbcUriParser#tableName. + enterTableName(ctx) { + } + + // Exit a parse tree produced by JdbcUriParser#tableName. + exitTableName(ctx) { + } + + + // Enter a parse tree produced by JdbcUriParser#serverName. + enterServerName(ctx) { + } + + // Exit a parse tree produced by JdbcUriParser#serverName. + exitServerName(ctx) { + } + + + +} \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriParser.js b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriParser.js new file mode 100644 index 000000000000..a951a26de856 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/antlr/JdbcUriParser.js @@ -0,0 +1,647 @@ +// Generated from /Users/harsha/Code/OpenMetadata/openmetadata-ui/src/main/resources/ui/../../../../../openmetadata-spec/src/main/antlr4/org/openmetadata/schema/JdbcUri.g4 by ANTLR 4.9.2 +// jshint ignore: start +import antlr4 from 'antlr4'; +import JdbcUriListener from './JdbcUriListener.js'; + +const serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786", + "\u5964\u0003\u0012@\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", + "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", + "\u0003\u0002\u0003\u0002\u0003\u0002\u0005\u0002\u0012\n\u0002\u0003", + "\u0002\u0005\u0002\u0015\n\u0002\u0003\u0002\u0003\u0002\u0005\u0002", + "\u0019\n\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0007", + "\u0002\u001f\n\u0002\f\u0002\u000e\u0002\"\u000b\u0002\u0005\u0002$", + "\n\u0002\u0003\u0002\u0005\u0002\'\n\u0002\u0003\u0003\u0003\u0003\u0003", + "\u0003\u0003\u0003\u0005\u0003-\n\u0003\u0003\u0003\u0003\u0003\u0003", + "\u0004\u0005\u00042\n\u0004\u0003\u0005\u0003\u0005\u0003\u0006\u0003", + "\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0005\u0007>\n\u0007\u0003\u0007\u0002\u0002\b\u0002\u0004\u0006", + "\b\n\f\u0002\u0002\u0002E\u0002\u000e\u0003\u0002\u0002\u0002\u0004", + "(\u0003\u0002\u0002\u0002\u00061\u0003\u0002\u0002\u0002\b3\u0003\u0002", + "\u0002\u0002\n5\u0003\u0002\u0002\u0002\f=\u0003\u0002\u0002\u0002\u000e", + "\u000f\u0007\u0003\u0002\u0002\u000f\u0011\u0007\u0005\u0002\u0002\u0010", + "\u0012\u0005\f\u0007\u0002\u0011\u0010\u0003\u0002\u0002\u0002\u0011", + "\u0012\u0003\u0002\u0002\u0002\u0012\u0014\u0003\u0002\u0002\u0002\u0013", + "\u0015\u0007\u0007\u0002\u0002\u0014\u0013\u0003\u0002\u0002\u0002\u0014", + "\u0015\u0003\u0002\u0002\u0002\u0015\u0018\u0003\u0002\u0002\u0002\u0016", + "\u0017\u0007\u0004\u0002\u0002\u0017\u0019\u0005\u0006\u0004\u0002\u0018", + "\u0016\u0003\u0002\u0002\u0002\u0018\u0019\u0003\u0002\u0002\u0002\u0019", + "#\u0003\u0002\u0002\u0002\u001a\u001b\u0007\u000e\u0002\u0002\u001b", + " \u0007\r\u0002\u0002\u001c\u001d\u0007\u0011\u0002\u0002\u001d\u001f", + "\u0007\r\u0002\u0002\u001e\u001c\u0003\u0002\u0002\u0002\u001f\"\u0003", + "\u0002\u0002\u0002 \u001e\u0003\u0002\u0002\u0002 !\u0003\u0002\u0002", + "\u0002!$\u0003\u0002\u0002\u0002\" \u0003\u0002\u0002\u0002#\u001a\u0003", + "\u0002\u0002\u0002#$\u0003\u0002\u0002\u0002$&\u0003\u0002\u0002\u0002", + "%\'\u0005\u0004\u0003\u0002&%\u0003\u0002\u0002\u0002&\'\u0003\u0002", + "\u0002\u0002\'\u0003\u0003\u0002\u0002\u0002(,\u0007\u0010\u0002\u0002", + ")*\u0005\b\u0005\u0002*+\u0007\u000f\u0002\u0002+-\u0003\u0002\u0002", + "\u0002,)\u0003\u0002\u0002\u0002,-\u0003\u0002\u0002\u0002-.\u0003\u0002", + "\u0002\u0002./\u0005\n\u0006\u0002/\u0005\u0003\u0002\u0002\u000202", + "\u0007\b\u0002\u000210\u0003\u0002\u0002\u000212\u0003\u0002\u0002\u0002", + "2\u0007\u0003\u0002\u0002\u000234\u0007\b\u0002\u00024\t\u0003\u0002", + "\u0002\u000256\u0007\b\u0002\u00026\u000b\u0003\u0002\u0002\u00027>", + "\u0007\t\u0002\u00028>\u0007\n\u0002\u00029>\u0007\u000b\u0002\u0002", + ":;\u0007\u0006\u0002\u0002;>\u0007\b\u0002\u0002<>\u0007\u0006\u0002", + "\u0002=7\u0003\u0002\u0002\u0002=8\u0003\u0002\u0002\u0002=9\u0003\u0002", + "\u0002\u0002=:\u0003\u0002\u0002\u0002=<\u0003\u0002\u0002\u0002>\r", + "\u0003\u0002\u0002\u0002\u000b\u0011\u0014\u0018 #&,1="].join(""); + + +const atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +const decisionsToDFA = atn.decisionToState.map( (ds, index) => new antlr4.dfa.DFA(ds, index) ); + +const sharedContextCache = new antlr4.PredictionContextCache(); + +export default class JdbcUriParser extends antlr4.Parser { + + static grammarFileName = "JdbcUri.g4"; + static literalNames = [ null, "'jdbc:'", "'/'", null, null, null, null, + null, null, null, null, null, "'?'", "'.'", + "':'", "'&'" ]; + static symbolicNames = [ null, null, null, "DATABASE_TYPE", "URI_SEPARATOR", + "PORT_NUMBER", "IDENTIFIER", "HOST_NAME", "IPV4_ADDRESS", + "IPV6_ADDRESS", "HEXDIGIT", "CONNECTION_ARG", + "CONNECTION_ARG_INIT", "PERIOD", "COLON", "AMP", + "WS" ]; + static ruleNames = [ "jdbcUrl", "schemaTable", "databaseName", "schemaName", + "tableName", "serverName" ]; + + constructor(input) { + super(input); + this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); + this.ruleNames = JdbcUriParser.ruleNames; + this.literalNames = JdbcUriParser.literalNames; + this.symbolicNames = JdbcUriParser.symbolicNames; + } + + get atn() { + return atn; + } + + + + jdbcUrl() { + let localctx = new JdbcUrlContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, JdbcUriParser.RULE_jdbcUrl); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 12; + this.match(JdbcUriParser.T__0); + this.state = 13; + this.match(JdbcUriParser.DATABASE_TYPE); + this.state = 15; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << JdbcUriParser.URI_SEPARATOR) | (1 << JdbcUriParser.HOST_NAME) | (1 << JdbcUriParser.IPV4_ADDRESS) | (1 << JdbcUriParser.IPV6_ADDRESS))) !== 0)) { + this.state = 14; + this.serverName(); + } + + this.state = 18; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===JdbcUriParser.PORT_NUMBER) { + this.state = 17; + this.match(JdbcUriParser.PORT_NUMBER); + } + + this.state = 22; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===JdbcUriParser.T__1) { + this.state = 20; + this.match(JdbcUriParser.T__1); + this.state = 21; + this.databaseName(); + } + + this.state = 33; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===JdbcUriParser.CONNECTION_ARG_INIT) { + this.state = 24; + this.match(JdbcUriParser.CONNECTION_ARG_INIT); + this.state = 25; + this.match(JdbcUriParser.CONNECTION_ARG); + this.state = 30; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===JdbcUriParser.AMP) { + this.state = 26; + this.match(JdbcUriParser.AMP); + this.state = 27; + this.match(JdbcUriParser.CONNECTION_ARG); + this.state = 32; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 36; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===JdbcUriParser.COLON) { + this.state = 35; + this.schemaTable(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + schemaTable() { + let localctx = new SchemaTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, JdbcUriParser.RULE_schemaTable); + try { + this.enterOuterAlt(localctx, 1); + this.state = 38; + this.match(JdbcUriParser.COLON); + this.state = 42; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,6,this._ctx); + if(la_===1) { + this.state = 39; + this.schemaName(); + this.state = 40; + this.match(JdbcUriParser.PERIOD); + + } + this.state = 44; + this.tableName(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + databaseName() { + let localctx = new DatabaseNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, JdbcUriParser.RULE_databaseName); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 47; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===JdbcUriParser.IDENTIFIER) { + this.state = 46; + this.match(JdbcUriParser.IDENTIFIER); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + schemaName() { + let localctx = new SchemaNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, JdbcUriParser.RULE_schemaName); + try { + this.enterOuterAlt(localctx, 1); + this.state = 49; + this.match(JdbcUriParser.IDENTIFIER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + tableName() { + let localctx = new TableNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, JdbcUriParser.RULE_tableName); + try { + this.enterOuterAlt(localctx, 1); + this.state = 51; + this.match(JdbcUriParser.IDENTIFIER); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + + + serverName() { + let localctx = new ServerNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 10, JdbcUriParser.RULE_serverName); + try { + this.state = 59; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,8,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 53; + this.match(JdbcUriParser.HOST_NAME); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 54; + this.match(JdbcUriParser.IPV4_ADDRESS); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 55; + this.match(JdbcUriParser.IPV6_ADDRESS); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 56; + this.match(JdbcUriParser.URI_SEPARATOR); + this.state = 57; + this.match(JdbcUriParser.IDENTIFIER); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 58; + this.match(JdbcUriParser.URI_SEPARATOR); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; + } + + +} + +JdbcUriParser.EOF = antlr4.Token.EOF; +JdbcUriParser.T__0 = 1; +JdbcUriParser.T__1 = 2; +JdbcUriParser.DATABASE_TYPE = 3; +JdbcUriParser.URI_SEPARATOR = 4; +JdbcUriParser.PORT_NUMBER = 5; +JdbcUriParser.IDENTIFIER = 6; +JdbcUriParser.HOST_NAME = 7; +JdbcUriParser.IPV4_ADDRESS = 8; +JdbcUriParser.IPV6_ADDRESS = 9; +JdbcUriParser.HEXDIGIT = 10; +JdbcUriParser.CONNECTION_ARG = 11; +JdbcUriParser.CONNECTION_ARG_INIT = 12; +JdbcUriParser.PERIOD = 13; +JdbcUriParser.COLON = 14; +JdbcUriParser.AMP = 15; +JdbcUriParser.WS = 16; + +JdbcUriParser.RULE_jdbcUrl = 0; +JdbcUriParser.RULE_schemaTable = 1; +JdbcUriParser.RULE_databaseName = 2; +JdbcUriParser.RULE_schemaName = 3; +JdbcUriParser.RULE_tableName = 4; +JdbcUriParser.RULE_serverName = 5; + +class JdbcUrlContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = JdbcUriParser.RULE_jdbcUrl; + } + + DATABASE_TYPE() { + return this.getToken(JdbcUriParser.DATABASE_TYPE, 0); + }; + + serverName() { + return this.getTypedRuleContext(ServerNameContext,0); + }; + + PORT_NUMBER() { + return this.getToken(JdbcUriParser.PORT_NUMBER, 0); + }; + + databaseName() { + return this.getTypedRuleContext(DatabaseNameContext,0); + }; + + CONNECTION_ARG_INIT() { + return this.getToken(JdbcUriParser.CONNECTION_ARG_INIT, 0); + }; + + CONNECTION_ARG = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(JdbcUriParser.CONNECTION_ARG); + } else { + return this.getToken(JdbcUriParser.CONNECTION_ARG, i); + } + }; + + + schemaTable() { + return this.getTypedRuleContext(SchemaTableContext,0); + }; + + AMP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(JdbcUriParser.AMP); + } else { + return this.getToken(JdbcUriParser.AMP, i); + } + }; + + + enterRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.enterJdbcUrl(this); + } + } + + exitRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.exitJdbcUrl(this); + } + } + + +} + + + +class SchemaTableContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = JdbcUriParser.RULE_schemaTable; + } + + COLON() { + return this.getToken(JdbcUriParser.COLON, 0); + }; + + tableName() { + return this.getTypedRuleContext(TableNameContext,0); + }; + + schemaName() { + return this.getTypedRuleContext(SchemaNameContext,0); + }; + + PERIOD() { + return this.getToken(JdbcUriParser.PERIOD, 0); + }; + + enterRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.enterSchemaTable(this); + } + } + + exitRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.exitSchemaTable(this); + } + } + + +} + + + +class DatabaseNameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = JdbcUriParser.RULE_databaseName; + } + + IDENTIFIER() { + return this.getToken(JdbcUriParser.IDENTIFIER, 0); + }; + + enterRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.enterDatabaseName(this); + } + } + + exitRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.exitDatabaseName(this); + } + } + + +} + + + +class SchemaNameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = JdbcUriParser.RULE_schemaName; + } + + IDENTIFIER() { + return this.getToken(JdbcUriParser.IDENTIFIER, 0); + }; + + enterRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.enterSchemaName(this); + } + } + + exitRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.exitSchemaName(this); + } + } + + +} + + + +class TableNameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = JdbcUriParser.RULE_tableName; + } + + IDENTIFIER() { + return this.getToken(JdbcUriParser.IDENTIFIER, 0); + }; + + enterRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.enterTableName(this); + } + } + + exitRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.exitTableName(this); + } + } + + +} + + + +class ServerNameContext extends antlr4.ParserRuleContext { + + constructor(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + super(parent, invokingState); + this.parser = parser; + this.ruleIndex = JdbcUriParser.RULE_serverName; + } + + HOST_NAME() { + return this.getToken(JdbcUriParser.HOST_NAME, 0); + }; + + IPV4_ADDRESS() { + return this.getToken(JdbcUriParser.IPV4_ADDRESS, 0); + }; + + IPV6_ADDRESS() { + return this.getToken(JdbcUriParser.IPV6_ADDRESS, 0); + }; + + URI_SEPARATOR() { + return this.getToken(JdbcUriParser.URI_SEPARATOR, 0); + }; + + IDENTIFIER() { + return this.getToken(JdbcUriParser.IDENTIFIER, 0); + }; + + enterRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.enterServerName(this); + } + } + + exitRule(listener) { + if(listener instanceof JdbcUriListener ) { + listener.exitServerName(this); + } + } + + +} + + + + +JdbcUriParser.JdbcUrlContext = JdbcUrlContext; +JdbcUriParser.SchemaTableContext = SchemaTableContext; +JdbcUriParser.DatabaseNameContext = DatabaseNameContext; +JdbcUriParser.SchemaNameContext = SchemaNameContext; +JdbcUriParser.TableNameContext = TableNameContext; +JdbcUriParser.ServerNameContext = ServerNameContext; diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/addGlossaryToAssetsRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/addGlossaryToAssetsRequest.ts new file mode 100644 index 000000000000..79fb2d2d58e5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/addGlossaryToAssetsRequest.ts @@ -0,0 +1,186 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Request for adding a glossary to assets + */ +export interface AddGlossaryToAssetsRequest { + /** + * List of assets to be created against which the glossary needs to be added. + */ + assets?: EntityReference[]; + /** + * If true, the request will be validated but no changes will be made + */ + dryRun?: boolean; + /** + * Glossary Tags to be added + */ + glossaryTags?: TagLabel[]; + /** + * Operation to be performed + */ + operation?: Operation; +} + +/** + * List of assets to be created against which the glossary needs to be added. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Operation to be performed + */ +export enum Operation { + AddAssets = "AddAssets", + AddGlossaryTags = "AddGlossaryTags", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/addTagToAssetsRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/addTagToAssetsRequest.ts new file mode 100644 index 000000000000..d5597cf922ce --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/addTagToAssetsRequest.ts @@ -0,0 +1,95 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Request for adding a tag to assets + */ +export interface AddTagToAssetsRequest { + /** + * List of assets to be created against which the tag needs to be added. + */ + assets?: EntityReference[]; + /** + * If true, the request will be validated but no changes will be made + */ + dryRun?: boolean; + /** + * Operation to be performed + */ + operation?: Operation; +} + +/** + * List of assets to be created against which the tag needs to be added. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Operation to be performed + */ +export enum Operation { + AddAssets = "AddAssets", + AddClassificationTags = "AddClassificationTags", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/analytics/createWebAnalyticEvent.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/analytics/createWebAnalyticEvent.ts new file mode 100644 index 000000000000..bbd4a09ffef7 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/analytics/createWebAnalyticEvent.ts @@ -0,0 +1,109 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Payload to create a web analytic event + */ +export interface CreateWebAnalyticEvent { + /** + * Description of the report definition. + */ + description?: string; + /** + * Display Name the report definition. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * dimension(s) and metric(s) for a report + */ + eventType: WebAnalyticEventType; + /** + * Name that identifies this report definition. + */ + name: string; + /** + * Owners of this report definition + */ + owners?: EntityReference[]; +} + +/** + * dimension(s) and metric(s) for a report + * + * event type + */ +export enum WebAnalyticEventType { + CustomEvent = "CustomEvent", + PageView = "PageView", +} + +/** + * Owners of this report definition + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/automations/createWorkflow.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/automations/createWorkflow.ts new file mode 100644 index 000000000000..f43c7ccf6062 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/automations/createWorkflow.ts @@ -0,0 +1,3573 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A unit of work that will be triggered as an API call to the OpenMetadata server. + */ +export interface CreateWorkflow { + /** + * Description of the test connection def. + */ + description?: string; + /** + * Display Name that identifies this workflow definition. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Name of the workflow. + */ + name: string; + /** + * Owners of this workflow. + */ + owners?: EntityReference[]; + /** + * Request body for a specific workflow type + */ + request: TestServiceConnectionRequest; + /** + * Response to the request. + */ + response?: TestConnectionResult; + /** + * Workflow computation status. + */ + status?: WorkflowStatus; + /** + * Type of the workflow. + */ + workflowType: WorkflowType; +} + +/** + * Owners of this workflow. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Request body for a specific workflow type + * + * Test Service Connection to test user provided configuration is valid or not. + */ +export interface TestServiceConnectionRequest { + /** + * Connection object. + */ + connection?: RequestConnection; + /** + * Type of the connection to test such as Snowflake, MySQL, Looker, etc. + */ + connectionType?: string; + /** + * Secrets Manager Provider to use for fetching secrets. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * Optional value that identifies this service name. + */ + serviceName?: string; + /** + * Type of service such as Database, Dashboard, Messaging, etc. + */ + serviceType?: ServiceType; +} + +/** + * Connection object. + * + * API Service Connection. + * + * Database Connection. + * + * Dashboard Connection. + * + * Pipeline Connection. + * + * MlModel Connection. + * + * Metadata Service Connection. + * + * Storage Connection. + * + * search Connection. + */ +export interface RequestConnection { + config?: ConfigClass; +} + +/** + * REST Connection Config + * + * Google BigQuery Connection Config + * + * Google BigTable Connection Config + * + * AWS Athena Connection Config + * + * Azure SQL Connection Config + * + * Clickhouse Connection Config + * + * Databricks Connection Config + * + * Db2 Connection Config + * + * DeltaLake Database Connection Config + * + * Druid Connection Config + * + * DynamoDB Connection Config + * + * Glue Connection Config + * + * Hive SQL Connection Config + * + * Impala SQL Connection Config + * + * MariaDB Database Connection Config + * + * Mssql Database Connection Config + * + * Mysql Database Connection Config + * + * SQLite Database Connection Config + * + * Oracle Database Connection Config + * + * Postgres Database Connection Config + * + * Presto Database Connection Config + * + * Redshift Connection Config + * + * Salesforce Connection Config + * + * SingleStore Database Connection Config + * + * Snowflake Connection Config + * + * Trino Connection Config + * + * Vertica Connection Config + * + * PinotDB Database Connection Config + * + * Datalake Connection Config + * + * Domo Database Connection Config + * + * Custom Database Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Sap Hana Database Connection Config + * + * MongoDB Connection Config + * + * Couchbase Connection Config + * + * Greenplum Database Connection Config + * + * Doris Database Connection Config + * + * UnityCatalog Connection Config + * + * SAS Connection Config + * + * Iceberg Catalog Connection Config + * + * Teradata Database Connection Config + * + * Sap ERP Database Connection Config + * + * Synapse Database Connection Config + * + * Exasol Database Connection Config + * + * Looker Connection Config + * + * Metabase Connection Config + * + * PowerBI Connection Config + * + * PowerBIReportServer Connection Config + * + * Redash Connection Config + * + * Superset Connection Config + * + * Tableau Connection Config + * + * Mode Connection Config + * + * Custom Dashboard Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Domo Dashboard Connection Config + * + * QuickSight Connection Config + * + * Qlik Sense Connection Config + * + * Lightdash Connection Config + * + * MicroStrategy Connection Config + * + * Qlik Cloud Connection Config + * + * Sigma Connection Config + * + * Kafka Connection Config + * + * Redpanda Connection Config + * + * Kinesis Connection Config + * + * Custom Messaging Service Connection to build a source that is not supported by + * OpenMetadata yet. + * + * Airflow Metadata Database Connection Config + * + * Glue Pipeline Connection Config + * + * Airbyte Metadata Database Connection Config + * + * Fivetran Metadata Database Connection Config + * + * Flink Metadata Connection Config + * + * Dagster Metadata Database Connection Config + * + * Nifi Metadata Pipeline Connection Config + * + * Domo Pipeline Connection Config + * + * Custom Pipeline Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Spline Metadata Database Connection Config + * + * Spark Metadata Pipeline Connection Config + * + * OpenLineage Connection Config + * + * KafkaConnect Connection Config + * + * DBTCloud Connection Config + * + * Matillion Connection + * + * Azure Data Factory Connection Config + * + * Stitch Connection + * + * MlFlow Connection Config + * + * Sklearn Connection Config + * + * Custom MlModel Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * SageMaker Connection Config + * + * Google VertexAI Connection Config + * + * Amundsen Connection Config + * + * Metadata to ElasticSearch Connection Config + * + * OpenMetadata Connection Config + * + * Atlas Connection Config + * + * Alation Connection Config + * + * Alation Sink Connection Config + * + * S3 Connection. + * + * ADLS Connection. + * + * GCS Connection. + * + * Custom Storage Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * ElasticSearch Connection. + * + * OpenSearch Connection. + * + * Custom Search Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface ConfigClass { + /** + * Open API Schema URL. + */ + openAPISchemaURL?: string; + /** + * Supports Metadata Extraction. + */ + supportsMetadataExtraction?: boolean; + /** + * Generated Token to connect to OpenAPI Schema. + * + * Generated Token to connect to Databricks. + * + * token to connect to Qlik Cloud. + * + * To Connect to Dagster Cloud + * + * Generated Token to connect to DBTCloud. + * + * Token to connect to Stitch api doc + */ + token?: string; + /** + * REST API Type + * + * Service Type + * + * Custom database service type + * + * Custom dashboard service type + * + * Custom messaging service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * Custom search service type + */ + type?: RESTType; + /** + * If using Metastore, Key-Value pairs that will be used to add configs to the SparkSession. + */ + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * GCP Credentials + * + * Azure Credentials + */ + credentials?: GCPCredentials; + /** + * BigQuery APIs URL. + * + * Host and port of the AzureSQL service. + * + * Host and port of the Clickhouse service. + * + * Host and port of the Databricks service. + * + * Host and port of the DB2 service. + * + * Host and port of the Druid service. + * + * Host and port of the Hive service. + * + * Host and port of the Impala service. + * + * Host and port of the MariaDB service. + * + * Host and port of the MSSQL service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Host and port of the Oracle service. + * + * Host and port of the source service. + * + * Host and port of the Presto service. + * + * Host and port of the Redshift service. + * + * Host and port of the SingleStore service. + * + * Host and port of the Trino service. + * + * Host and port of the Vertica service. + * + * Host and port of the PinotDB Broker service. + * + * Host and port of the MongoDB service when using the `mongodb` connection scheme. Only + * host when using the `mongodb+srv` scheme. + * + * Host and port of the Doris service. + * + * Host and port of the Teradata service. + * + * Host and Port of the SAP ERP instance. + * + * Host and port of the Azure Synapse service. + * + * URL to the Looker instance. + * + * Host and Port of the Metabase instance. + * + * Dashboard URL for PowerBI service. + * + * Dashboard URL for PowerBI Report Server. + * + * URL for the Redash instance + * + * URL for the superset instance. + * + * Tableau Server. + * + * URL for the mode instance. + * + * URL for the Qlik instance. + * + * Address for your running Lightdash instance + * + * Host and Port of the MicroStrategy instance. + * + * Host and Port of the Qlik Cloud instance. + * + * Sigma API url. + * + * Pipeline Service Management/UI URI. + * + * Pipeline Service Management/UI URL. + * + * Spline REST Server Host & Port. + * + * KafkaConnect Service Management/UI URI. + * + * Host and port of the Stitch API host + * + * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: + * bolt://localhost:7687. + * + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + * + * Host and port of the Atlas service. + * + * Host and port of the Alation service. + * + * Host and port of the ElasticSearch service. + * + * Host and port of the OpenSearch service. + */ + hostPort?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + * + * Mongo connection scheme options. + * + * Couchbase driver scheme options. + * + * Http/Https connection scheme + */ + scheme?: string; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + /** + * Supports Lineage Extraction. + */ + supportsLineageExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + /** + * Supports Usage Extraction. + */ + supportsUsageExtraction?: boolean; + /** + * Taxonomy location used to fetch policy tags + */ + taxonomyLocation?: string; + /** + * Project IDs used to fetch policy tags + */ + taxonomyProjectID?: string[]; + /** + * Location used to query INFORMATION_SCHEMA.JOBS_BY_PROJECT to fetch usage data. You can + * pass multi-regions, such as `us` or `eu`, or you specific region. Australia and Asia + * multi-regions are not yet in GA. + */ + usageLocation?: string; + awsConfig?: AWSCredentials; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * S3 Staging Directory. Example: s3://postgres/input/ + */ + s3StagingDir?: string; + /** + * Athena workgroup. + */ + workgroup?: string; + /** + * This parameter determines the mode of authentication for connecting to AzureSQL using + * ODBC. If 'Active Directory Password' is selected, you need to provide the password. If + * 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with AzureSQL. + * + * This parameter determines the mode of authentication for connecting to Azure Synapse + * using ODBC. If 'Active Directory Password' is selected, you need to provide the password. + * If 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with Azure Synapse. + */ + authenticationMode?: any[] | boolean | number | null | AuthenticationModeObject | string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + * + * Database of the data source. + * + * Initial Redshift database to connect to. If you want to ingest all databases, set + * ingestAllDatabases to true. + */ + database?: string; + /** + * SQLAlchemy driver for AzureSQL. + * + * ODBC driver version in case of pyodbc connection. + */ + driver?: string; + /** + * Ingest data from all databases in Azuresql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Mssql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Redshift. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Greenplum. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Azure Synapse. You can use databaseFilterPattern on top + * of this. + */ + ingestAllDatabases?: boolean; + /** + * Password to connect to AzureSQL. + * + * Password to connect to Clickhouse. + * + * Password to connect to DB2. + * + * Password to connect to Druid. + * + * Password to connect to Hive. + * + * Password to connect to Impala. + * + * Password to connect to MariaDB. + * + * Password to connect to MSSQL. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to Oracle. + * + * Password to connect to Presto. + * + * Password to connect to Redshift. + * + * Password to connect to the Salesforce. + * + * Password to connect to SingleStore. + * + * Password to connect to Snowflake. + * + * Password to connect to Vertica. + * + * password to connect to the PinotDB. + * + * Password to connect to MongoDB. + * + * Password to connect to Couchbase. + * + * Password to connect to Doris. + * + * Password to connect to SAS Viya + * + * Password to connect to Teradata. + * + * Password to connect to Azure Synapse. + * + * Password to connect to Exasol. + * + * Password to connect to Metabase. + * + * Password to connect to PowerBI report server. + * + * Password to connect to MicroStrategy. + * + * Password to connect to Airbyte. + * + * password to connect to the Amundsen Neo4j Connection. + * + * password to connect to the Atlas. + * + * OpenSearch Password for Login + */ + password?: string; + /** + * Username to connect to AzureSQL. This user should have privileges to read the metadata. + * + * Username to connect to Clickhouse. This user should have privileges to read all the + * metadata in Clickhouse. + * + * Username to connect to DB2. This user should have privileges to read all the metadata in + * DB2. + * + * Username to connect to Druid. This user should have privileges to read all the metadata + * in Druid. + * + * Username to connect to Hive. This user should have privileges to read all the metadata in + * Hive. + * + * Username to connect to Impala. This user should have privileges to read all the metadata + * in Impala. + * + * Username to connect to MariaDB. This user should have privileges to read all the metadata + * in MariaDB. + * + * Username to connect to MSSQL. This user should have privileges to read all the metadata + * in MsSQL. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to Oracle. This user should have privileges to read all the metadata + * in Oracle. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to Presto. This user should have privileges to read all the metadata + * in Postgres. + * + * Username to connect to Redshift. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to the Salesforce. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to SingleStore. This user should have privileges to read all the + * metadata in MySQL. + * + * Username to connect to Snowflake. This user should have privileges to read all the + * metadata in Snowflake. + * + * Username to connect to Trino. This user should have privileges to read all the metadata + * in Trino. + * + * Username to connect to Vertica. This user should have privileges to read all the metadata + * in Vertica. + * + * username to connect to the PinotDB. This user should have privileges to read all the + * metadata in PinotDB. + * + * Username to connect to MongoDB. This user should have privileges to read all the metadata + * in MongoDB. + * + * Username to connect to Couchbase. This user should have privileges to read all the + * metadata in Couchbase. + * + * Username to connect to Greenplum. This user should have privileges to read all the + * metadata in Greenplum. + * + * Username to connect to Doris. This user should have privileges to read all the metadata + * in Doris. + * + * Username to connect to SAS Viya. + * + * Username to connect to Teradata. This user should have privileges to read all the + * metadata in Teradata. + * + * Username to connect to Azure Synapse. This user should have privileges to read all the + * metadata in Azure Synapse. + * + * Username to connect to Exasol. This user should have privileges to read all the metadata + * in Exasol. + * + * Username to connect to Metabase. This user should have privileges to read all the + * metadata in Metabase. + * + * Username to connect to PowerBI report server. + * + * Username for Redash + * + * Username to connect to MicroStrategy. This user should have privileges to read all the + * metadata in MicroStrategy. + * + * Username to connect to Airbyte. + * + * username to connect to the Amundsen Neo4j Connection. + * + * username to connect to the Atlas. This user should have privileges to read all the + * metadata in Atlas. + * + * OpenSearch Username for Login + */ + username?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + * + * Optional name to give to the schema in OpenMetadata. If left blank, we will use default + * as the schema name + */ + databaseSchema?: string; + /** + * Clickhouse SQL connection duration. + */ + duration?: number; + /** + * Use HTTPS Protocol for connection with clickhouse + */ + https?: boolean; + /** + * Path to key file for establishing secure connection + */ + keyfile?: string; + /** + * Establish secure connection with clickhouse + */ + secure?: boolean; + /** + * Catalog of the data source(Example: hive_metastore). This is optional parameter, if you + * would like to restrict the metadata reading to a single catalog. When left blank, + * OpenMetadata Ingestion attempts to scan all the catalog. + * + * Presto catalog + * + * Catalog of the data source. + */ + catalog?: IcebergCatalog | string; + /** + * The maximum amount of time (in seconds) to wait for a successful connection to the data + * source. If the connection attempt takes longer than this timeout period, an error will be + * returned. + */ + connectionTimeout?: number; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + supportsViewLineageExtraction?: boolean; + /** + * Available sources to fetch the metadata. + * + * Available sources to fetch files. + * + * Available sources to fetch metadata. + */ + configSource?: DeltaLakeConfigurationSource; + /** + * Authentication mode to connect to hive. + */ + auth?: AuthEnum; + /** + * Authentication options to pass to Hive connector. These options are based on SQLAlchemy. + * + * Authentication options to pass to Impala connector. These options are based on SQLAlchemy. + */ + authOptions?: string; + /** + * If authenticating with Kerberos specify the Kerberos service name + */ + kerberosServiceName?: string; + /** + * Hive Metastore Connection Details + */ + metastoreConnection?: HiveMetastoreConnectionDetails; + /** + * Authentication mode to connect to Impala. + */ + authMechanism?: AuthMechanismEnum; + /** + * Establish secure connection with Impala + */ + useSSL?: boolean; + /** + * Choose Auth Config Type. + * + * Types of methods used to authenticate to the tableau instance + * + * Types of methods used to authenticate to the alation instance + */ + authType?: AuthConfigurationType | NoConfigAuthenticationTypes; + /** + * SSL Configuration details. + * + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: SSLConfigObject; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * This directory will be used to set the LD_LIBRARY_PATH env variable. It is required if + * you need to enable thick connection mode. By default, we bring instant client 19 and + * point to /instantclient. + */ + instantClientDirectory?: string; + /** + * Connect with oracle by either passing service name or database schema name. + */ + oracleConnectionType?: OracleConnectionType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + sslMode?: SSLMode; + /** + * Protocol ( Connection Argument ) to connect to Presto. + */ + protocol?: string; + /** + * Verify ( Connection Argument for SSL ) to connect to Presto. + * + * Verify ( Connection Argument for SSL ) to connect to Trino. + */ + verify?: string; + /** + * Salesforce Organization ID is the unique identifier for your Salesforce identity + */ + organizationId?: string; + /** + * API version of the Salesforce instance + */ + salesforceApiVersion?: string; + /** + * Domain of Salesforce instance + */ + salesforceDomain?: string; + /** + * Salesforce Security Token. + */ + securityToken?: string; + /** + * Salesforce Object Name. + */ + sobjectName?: string; + /** + * If the Snowflake URL is https://xyz1234.us-east-1.gcp.snowflakecomputing.com, then the + * account is xyz1234.us-east-1.gcp + * + * Specifies an account string to override the default account string defined for the + * database user. Accounts are used by the database for workload management and resource + * usage monitoring. + */ + account?: string; + /** + * Optional configuration for ingestion to keep the client session active in case the + * ingestion process runs for longer durations. + */ + clientSessionKeepAlive?: boolean; + /** + * Optional configuration for ingestion of TRANSIENT tables, By default, it will skip the + * TRANSIENT tables. + */ + includeTransientTables?: boolean; + /** + * Connection to Snowflake instance via Private Key + */ + privateKey?: string; + /** + * Session query tag used to monitor usage on snowflake. To use a query tag snowflake user + * should have enough privileges to alter the session. + */ + queryTag?: string; + /** + * Snowflake Role. + */ + role?: string; + /** + * Snowflake Passphrase Key used with Private Key + */ + snowflakePrivatekeyPassphrase?: string; + /** + * Snowflake warehouse. + */ + warehouse?: string; + /** + * Proxies for the connection to Trino data source + */ + proxies?: { [key: string]: string }; + /** + * Pinot Controller Host and Port of the data source. + */ + pinotControllerHost?: string; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + /** + * Access token to connect to DOMO + * + * Access Token for Mode Dashboard + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + * + * User's Client ID. This user should have privileges to read all the metadata in Looker. + * + * client_id for PowerBI. + * + * client_id for Sigma. + */ + clientId?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret Token to connect DOMO + * + * Secret token to connect to DOMO + */ + secretToken?: string; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Choose between Database connection or HDB User Store connection. + * + * Choose between API or database connection fetch metadata from superset. + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Matillion Auth Configuration + * + * Choose between mysql and postgres connection for alation database + */ + connection?: ConnectionObject; + /** + * Couchbase connection Bucket options. + */ + bucket?: string; + /** + * Hostname of the Couchbase service. + */ + hostport?: string; + /** + * Enable dataflow for ingestion + */ + dataflows?: boolean; + /** + * Custom filter for dataflows + */ + dataflowsCustomFilter?: { [key: string]: any } | string; + /** + * Enable datatables for ingestion + */ + datatables?: boolean; + /** + * Custom filter for datatables + */ + dataTablesCustomFilter?: { [key: string]: any } | string; + /** + * Enable report for ingestion + */ + reports?: boolean; + /** + * Custom filter for reports + */ + reportsCustomFilter?: { [key: string]: any } | string; + /** + * Hostname of SAS Viya deployment. + */ + serverHost?: string; + /** + * Table property to look for the Owner. + */ + ownershipProperty?: string; + /** + * Specifies additional data needed by a logon mechanism, such as a secure token, + * Distinguished Name, or a domain/realm name. LOGDATA values are specific to each logon + * mechanism. + */ + logdata?: string; + /** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ + logmech?: Logmech; + /** + * Specifies the transaction mode for the connection + */ + tmode?: TransactionMode; + /** + * API key to authenticate with the SAP ERP APIs. + * + * API key of the redash instance to access. + * + * The personal access token you can generate in the Lightdash app under the user settings + * + * Fivetran API Secret. + */ + apiKey?: string; + /** + * Pagination limit used while querying the SAP ERP API for fetching the entities + * + * Pagination limit used while querying the tableau metadata API for getting data sources + * + * Pagination limit used for Alation APIs pagination + */ + paginationLimit?: number; + /** + * Boolean marking if we need to verify the SSL certs for KafkaConnect REST API. True by + * default. + * + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: boolean | VerifySSL; + /** + * Client SSL/TLS settings. + */ + tls?: SSLTLSSettings; + /** + * User's Client Secret. + * + * clientSecret for PowerBI. + * + * clientSecret for Sigma. + */ + clientSecret?: string; + /** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + */ + gitCredentials?: GitHubCredentials; + /** + * Authority URI for the PowerBI service. + */ + authorityURI?: string; + /** + * Entity Limit set here will be used to paginate the PowerBi APIs + */ + pagination_entity_per_page?: number; + /** + * Source to get the .pbit files to extract lineage information + */ + pbitFilesSource?: PowerBIPbitFilesSource; + /** + * PowerBI secrets. + */ + scope?: string[]; + /** + * Tenant ID for PowerBI. + */ + tenantId?: string; + /** + * Fetch the PowerBI metadata using admin APIs + */ + useAdminApis?: boolean; + /** + * Web Portal Virtual Directory Name. + */ + webPortalVirtualDirectory?: string; + /** + * Version of the Redash instance + */ + redashVersion?: string; + /** + * Tableau API version. + * + * Sigma API version. + * + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * Tableau Environment Name. + */ + env?: string; + /** + * Tableau Site Name. + */ + siteName?: string; + /** + * Tableau Site Url. + */ + siteUrl?: string; + /** + * Access Token Password for Mode Dashboard + */ + accessTokenPassword?: string; + /** + * Filter query parameter for some of the Mode API calls + */ + filterQueryParam?: string; + /** + * Mode Workspace Name + */ + workspaceName?: string; + /** + * AWS Account ID + */ + awsAccountId?: string; + /** + * The authentication method that the user uses to sign in. + */ + identityType?: IdentityType; + /** + * The Amazon QuickSight namespace that contains the dashboard IDs in this request ( To be + * provided when identityType is `ANONYMOUS` ) + */ + namespace?: string; + certificates?: QlikCertificatesBy; + /** + * Qlik Sense Base URL, used for genrating dashboard & chat url + */ + displayUrl?: string; + /** + * User Directory. + */ + userDirectory?: string; + /** + * User ID. + */ + userId?: string; + /** + * Validate Host Name + */ + validateHostName?: boolean; + /** + * The Project UUID for your Lightdash instance + */ + projectUUID?: string; + /** + * Use if your Lightdash instance is behind a proxy like (Cloud IAP) + */ + proxyAuthentication?: string; + /** + * The Space UUID for your Lightdash instance + */ + spaceUUID?: string; + /** + * Login Mode for Microstrategy's REST API connection. You can authenticate with one of the + * following authentication modes: `Standard (1)`, `Anonymous (8)`. Default will be + * `Standard (1)`. If you're using demo account for Microstrategy, it will be needed to + * authenticate through loginMode `8`. + */ + loginMode?: string; + /** + * MicroStrategy Project Name + * + * Project name to create the refreshToken. Can be anything + */ + projectName?: string; + /** + * basic.auth.user.info schema registry config property, Client HTTP credentials in the form + * of username:password. + */ + basicAuthUserInfo?: string; + /** + * Kafka bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + * + * Redpanda bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + */ + bootstrapServers?: string; + /** + * Confluent Kafka Consumer Config. From + * https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md + * + * Confluent Redpanda Consumer Config + */ + consumerConfig?: { [key: string]: any }; + /** + * sasl.mechanism Consumer Config property + */ + saslMechanism?: SaslMechanismType; + /** + * sasl.password consumer config property + */ + saslPassword?: string; + /** + * sasl.username consumer config property + */ + saslUsername?: string; + /** + * Confluent Kafka Schema Registry Config. From + * https://docs.confluent.io/5.5.1/clients/confluent-kafka-python/index.html#confluent_kafka.schema_registry.SchemaRegistryClient + * + * Confluent Redpanda Schema Registry Config. + */ + schemaRegistryConfig?: { [key: string]: any }; + /** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + */ + schemaRegistrySSL?: SchemaRegistrySSLClass; + /** + * Schema Registry Topic Suffix Name. The suffix to be appended to the topic name to get + * topic schema from registry. + */ + schemaRegistryTopicSuffixName?: string; + /** + * Confluent Kafka Schema Registry URL. + * + * Confluent Redpanda Schema Registry URL. + */ + schemaRegistryURL?: string; + /** + * security.protocol consumer config property + * + * Kafka security protocol config + */ + securityProtocol?: KafkaSecurityProtocol; + /** + * Pipeline Service Number Of Status + */ + numberOfStatus?: number; + /** + * Fivetran API Secret. + */ + apiSecret?: string; + /** + * Fivetran API Limit For Pagination. + */ + limit?: number; + /** + * URL to the Dagster instance + * + * DBT cloud Access URL. + */ + host?: string; + /** + * Connection Time Limit Between OM and Dagster Graphql API in second + */ + timeout?: number; + /** + * We support username/password or client certificate authentication + */ + nifiConfig?: NifiCredentialsConfiguration; + /** + * Spline UI Host & Port. + */ + uiHostPort?: string; + /** + * service type of the messaging source + */ + brokersUrl?: string; + /** + * consumer group name + */ + consumerGroupName?: string; + /** + * initial Kafka consumer offset + */ + consumerOffsets?: InitialConsumerOffsets; + /** + * max allowed wait time + */ + poolTimeout?: number; + /** + * SASL Configuration details. + */ + saslConfig?: SASLClientConfig; + /** + * max allowed inactivity time + */ + sessionTimeout?: number; + /** + * topic from where Open lineage events will be pulled + */ + topicName?: string; + /** + * We support username/password or No Authentication + */ + KafkaConnectConfig?: UsernamePasswordAuthentication; + /** + * Name of the Kafka Messaging Service associated with this KafkaConnect Pipeline Service. + * e.g. local_kafka + * + * service type of the messaging source + */ + messagingServiceName?: string[] | string; + /** + * ID of your DBT cloud account + */ + accountId?: string; + /** + * DBT cloud Metadata API URL. + */ + discoveryAPI?: string; + /** + * List of IDs of your DBT cloud jobs seperated by comma `,` + */ + jobIds?: string[]; + /** + * List of IDs of your DBT cloud projects seperated by comma `,` + */ + projectIds?: string[]; + /** + * The name of your azure data factory. + */ + factory_name?: string; + /** + * The name of your resource group the data factory is associated with. + */ + resource_group_name?: string; + /** + * Number of days in the past to filter pipeline runs. + */ + run_filter_days?: number; + /** + * The azure subscription identifier. + */ + subscription_id?: string; + /** + * Mlflow Model registry backend. E.g., + * mysql+pymysql://mlflow:password@localhost:3307/experiments + */ + registryUri?: string; + /** + * Mlflow Experiment tracking URI. E.g., http://localhost:5000 + */ + trackingUri?: string; + /** + * location/region of google cloud project + */ + location?: string; + /** + * Enable encryption for the Amundsen Neo4j Connection. + */ + encrypted?: boolean; + /** + * Maximum connection lifetime for the Amundsen Neo4j Connection. + */ + maxConnectionLifeTime?: number; + /** + * Enable SSL validation for the Amundsen Neo4j Connection. + */ + validateSSL?: boolean; + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * List of entities that you need to reindex + */ + entities?: string[]; + recreateIndex?: boolean; + runMode?: RunMode; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * service type of the data source. + */ + databaseServiceName?: string[]; + /** + * Name of the Entity Type available in Atlas. + */ + entity_type?: string; + /** + * Custom OpenMetadata Classification name for alation tags. + */ + alationTagClassificationName?: string; + /** + * Specifies if hidden datasources should be included while ingesting. + */ + includeHiddenDatasources?: boolean; + /** + * Specifies if undeployed datasources should be included while ingesting. + */ + includeUndeployedDatasources?: boolean; + /** + * Specifies if Dashboards are to be ingested while running the ingestion job. + */ + ingestDashboards?: boolean; + /** + * Specifies if Datasources are to be ingested while running the ingestion job. + */ + ingestDatasources?: boolean; + /** + * Specifies if Domains are to be ingested while running the ingestion job. + */ + ingestDomains?: boolean; + /** + * Specifies if Knowledge Articles are to be ingested while running the ingestion job. + */ + ingestKnowledgeArticles?: boolean; + /** + * Specifies if Users and Groups are to be ingested while running the ingestion job. + */ + ingestUsersAndGroups?: boolean; + datasourceLinks?: { [key: string]: string }; + /** + * Bucket Names of the data source. + */ + bucketNames?: string[]; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs?: number; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; +} + +/** + * We support username/password or No Authentication + * + * username/password auth + */ +export interface UsernamePasswordAuthentication { + /** + * KafkaConnect password to authenticate to the API. + */ + password?: string; + /** + * KafkaConnect user to authenticate to the API. + */ + username?: string; +} + +/** + * Authentication mode to connect to hive. + */ +export enum AuthEnum { + Basic = "BASIC", + Custom = "CUSTOM", + Gssapi = "GSSAPI", + Jwt = "JWT", + Kerberos = "KERBEROS", + LDAP = "LDAP", + None = "NONE", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Authentication mode to connect to Impala. + */ +export enum AuthMechanismEnum { + Gssapi = "GSSAPI", + Jwt = "JWT", + LDAP = "LDAP", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + * + * Types of methods used to authenticate to the tableau instance + * + * Basic Auth Credentials + * + * Access Token Auth Credentials + * + * Types of methods used to authenticate to the alation instance + * + * API Access Token Auth Credentials + * + * Basic Auth Configuration for ElasticSearch + * + * SSL Certificates By Path + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + * + * Password to access the service. + * + * Elastic Search Password for Login + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; + /** + * JWT to connect to source. + */ + jwt?: string; + /** + * Username to access the service. + * + * Elastic Search Username for Login + */ + username?: string; + /** + * Personal Access Token Name. + */ + personalAccessTokenName?: string; + /** + * Personal Access Token Secret. + */ + personalAccessTokenSecret?: string; + /** + * Access Token for the API + */ + accessToken?: string; + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Database Authentication types not requiring config. + */ +export enum NoConfigAuthenticationTypes { + OAuth2 = "OAuth2", +} + +export interface AuthenticationModeObject { + /** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ + authentication?: Authentication; + /** + * Connection Timeout from Connection String for AzureSQL. + * + * Connection Timeout from Connection String for Azure Synapse. + */ + connectionTimeout?: number; + /** + * Encrypt from Connection String for AzureSQL. + * + * Encrypt from Connection String for Azure Synapse. + */ + encrypt?: boolean; + /** + * Trust Server Certificate from Connection String for AzureSQL. + * + * Trust Server Certificate from Connection String for Azure Synapse. + */ + trustServerCertificate?: boolean; + [property: string]: any; +} + +/** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ +export enum Authentication { + ActiveDirectoryIntegrated = "ActiveDirectoryIntegrated", + ActiveDirectoryPassword = "ActiveDirectoryPassword", +} + +/** + * Iceberg Catalog configuration. + */ +export interface IcebergCatalog { + /** + * Catalog connection configuration, depending on your catalog type. + */ + connection: Connection; + /** + * Custom Database Name for your Iceberg Service. If not set it will be 'default'. + */ + databaseName?: string; + /** + * Catalog Name. + */ + name: string; + /** + * Warehouse Location. Used to specify a custom warehouse location if needed. + */ + warehouseLocation?: string; +} + +/** + * Catalog connection configuration, depending on your catalog type. + * + * Iceberg Hive Catalog configuration. + * + * Iceberg REST Catalog configuration. + * + * Iceberg Glue Catalog configuration. + * + * Iceberg DynamoDB Catalog configuration. + */ +export interface Connection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + * + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri?: string; + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + awsConfig?: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName?: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * Qlik Authentication Certificate By Values + * + * Qlik Authentication Certificate File Path + */ +export interface QlikCertificatesBy { + sslConfig?: SchemaRegistrySSLClass; + /** + * Client Certificate + */ + clientCertificate?: string; + /** + * Client Key Certificate. + */ + clientKeyCertificate?: string; + /** + * Root Certificate. + */ + rootCertificate?: string; + [property: string]: any; +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface SchemaRegistrySSLClass { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Available sources to fetch the metadata. + * + * Deltalake Metastore configuration. + * + * DeltaLake Storage Connection Config + * + * Available sources to fetch files. + * + * Local config source where no extra information needs to be sent. + * + * Azure Datalake Storage will ingest files in container + * + * DataLake GCS storage will ingest metadata of files + * + * DataLake S3 bucket will ingest metadata of files in bucket + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface DeltaLakeConfigurationSource { + /** + * pySpark App Name. + */ + appName?: string; + /** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + */ + connection?: ConfigSourceConnection; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + securityConfig?: SecurityConfigClass; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface ConfigSourceConnection { + /** + * Thrift connection to the metastore service. E.g., localhost:9083 + */ + metastoreHostPort?: string; + /** + * Driver class name for JDBC metastore. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionDriverName sparks property. E.g., + * org.mariadb.jdbc.Driver + */ + driverName?: string; + /** + * Class path to JDBC driver required for JDBC connection. The value will be mapped as + * spark.driver.extraClassPath sparks property. + */ + jdbcDriverClassPath?: string; + /** + * JDBC connection to the metastore database. E.g., jdbc:mysql://localhost:3306/demo_hive + */ + metastoreDb?: string; + /** + * Password to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionPassword sparks property. + */ + password?: string; + /** + * Username to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionUserName sparks property. + */ + username?: string; + /** + * Local path for the local file with metastore data. E.g., /tmp/metastore.db + */ + metastoreFilePath?: string; + securityConfig?: AWSCredentials; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + * + * GCP Credentials + * + * GCP credentials configs. + * + * AWS credentials configs. + */ +export interface SecurityConfigClass { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Choose between Database connection or HDB User Store connection. + * + * Sap Hana Database SQL Connection Config + * + * Sap Hana Database HDB User Store Connection Config + * + * Choose between API or database connection fetch metadata from superset. + * + * Superset API Connection Config + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Lineage Backend Connection Config + * + * SQLite Database Connection Config + * + * Matillion Auth Configuration + * + * Matillion ETL Auth Config + * + * Choose between mysql and postgres connection for alation database + */ +export interface ConnectionObject { + /** + * Database of the data source. + * + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Database Schema of the data source. This is an optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Hana service. + * + * Host and port of the source service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Matillion Host + */ + hostPort?: string; + /** + * Password to connect to Hana. + * + * Password for Superset. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to the Matillion. + */ + password?: string; + /** + * Username to connect to Hana. This user should have privileges to read all the metadata. + * + * Username for Superset. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to the Matillion. This user should have privileges to read all the + * metadata in Matillion. + */ + username?: string; + /** + * HDB Store User Key generated from the command `hdbuserstore SET + * ` + */ + userKey?: string; + /** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ + provider?: Provider; + /** + * SSL Configuration details. + */ + sslConfig?: ConnectionSSLConfig; + verifySSL?: VerifySSL; + /** + * Choose Auth Config Type. + */ + authType?: ConnectionAuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: ConnectionScheme; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: ConnectionType; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + supportsViewLineageExtraction?: boolean; + [property: string]: any; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface ConnectionAuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ +export enum Provider { + DB = "db", + LDAP = "ldap", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum ConnectionScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", + SqlitePysqlite = "sqlite+pysqlite", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + */ +export interface ConnectionSSLConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum ConnectionType { + Backend = "Backend", + MatillionETL = "MatillionETL", + Mysql = "Mysql", + Postgres = "Postgres", + SQLite = "SQLite", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + * + * Flag to verify SSL Certificate for OpenMetadata Server. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * initial Kafka consumer offset + */ +export enum InitialConsumerOffsets { + Earliest = "earliest", + Latest = "latest", +} + +/** + * GCP Credentials + * + * GCP credentials configs. + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + * + * Do not set any credentials. Note that credentials are required to extract .lkml views and + * their lineage. + * + * Credentials for a GitHub repository + * + * Credentials for a BitBucket repository + * + * Credentials for a Gitlab repository + */ +export interface GitHubCredentials { + repositoryName?: string; + repositoryOwner?: string; + token?: string; + /** + * Credentials Type + */ + type?: GitHubCredentialsType; + /** + * Main production branch of the repository. E.g., `main` + */ + branch?: string; +} + +/** + * Credentials Type + * + * GitHub Credentials type + * + * BitBucket Credentials type + * + * Gitlab Credentials type + */ +export enum GitHubCredentialsType { + BitBucket = "BitBucket", + GitHub = "GitHub", + Gitlab = "Gitlab", +} + +/** + * The authentication method that the user uses to sign in. + */ +export enum IdentityType { + Anonymous = "ANONYMOUS", + Iam = "IAM", + Quicksight = "QUICKSIGHT", +} + +/** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ +export enum Logmech { + Custom = "CUSTOM", + Jwt = "JWT", + Krb5 = "KRB5", + LDAP = "LDAP", + Td2 = "TD2", + Tdnego = "TDNEGO", +} + +/** + * Hive Metastore Connection Details + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface HiveMetastoreConnectionDetails { + /** + * Choose Auth Config Type. + */ + authType?: ConnectionAuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: HiveMetastoreConnectionDetailsScheme; + /** + * SSL Configuration details. + */ + sslConfig?: SchemaRegistrySSLClass; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: HiveMetastoreConnectionDetailsType; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum HiveMetastoreConnectionDetailsScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Service Type + * + * Service type. + */ +export enum HiveMetastoreConnectionDetailsType { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * We support username/password or client certificate authentication + * + * username/password auth + * + * client certificate auth + */ +export interface NifiCredentialsConfiguration { + /** + * Nifi password to authenticate to the API. + */ + password?: string; + /** + * Nifi user to authenticate to the API. + */ + username?: string; + /** + * Boolean marking if we need to verify the SSL certs for Nifi. False by default. + */ + verifySSL?: boolean; + /** + * Path to the root CA certificate + */ + certificateAuthorityPath?: string; + /** + * Path to the client certificate + */ + clientCertificatePath?: string; + /** + * Path to the client key + */ + clientkeyPath?: string; +} + +/** + * Connect with oracle by either passing service name or database schema name. + */ +export interface OracleConnectionType { + /** + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + */ + databaseSchema?: string; + /** + * The Oracle Service name is the TNS alias that you give when you remotely connect to your + * database. + */ + oracleServiceName?: string; + /** + * Pass the full constructed TNS string, e.g., + * (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1530)))(CONNECT_DATA=(SID=MYSERVICENAME))). + */ + oracleTNSConnection?: string; + [property: string]: any; +} + +/** + * Source to get the .pbit files to extract lineage information + * + * Local config source where no extra information needs to be sent. + * + * Azure storage config for pbit files + * + * GCS storage config for pbit files + * + * S3 storage config for pbit files + */ +export interface PowerBIPbitFilesSource { + /** + * Directory path for the pbit files + */ + path?: string; + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig?: SecurityConfigClass; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Azure = "azure", + Gcs = "gcs", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * This schema publisher run modes. + */ +export enum RunMode { + Batch = "batch", + Stream = "stream", +} + +/** + * SASL Configuration details. + * + * SASL client configuration. + */ +export interface SASLClientConfig { + /** + * SASL security mechanism + */ + saslMechanism?: SaslMechanismType; + /** + * The SASL authentication password. + */ + saslPassword?: string; + /** + * The SASL authentication username. + */ + saslUsername?: string; +} + +/** + * sasl.mechanism Consumer Config property + * + * SASL Mechanism consumer config property + * + * SASL security mechanism + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + * + * Secrets Manager Provider to use for fetching secrets. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * security.protocol consumer config property + * + * Kafka security protocol config + */ +export enum KafkaSecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslPlaintext = "SASL_PLAINTEXT", + SaslSSL = "SASL_SSL", +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Config + */ +export interface SSLConfigObject { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; + /** + * SSL Certificates + */ + certificates?: SSLCertificates; + [property: string]: any; +} + +/** + * SSL Certificates + * + * SSL Configuration details. + * + * SSL Certificates By Path + * + * SSL Certificates By Values + */ +export interface SSLCertificates { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} + +/** + * Client SSL/TLS settings. + */ +export enum SSLTLSSettings { + DisableTLS = "disable-tls", + IgnoreCertificate = "ignore-certificate", + ValidateCertificate = "validate-certificate", +} + +/** + * Specifies the transaction mode for the connection + */ +export enum TransactionMode { + ANSI = "ANSI", + Default = "DEFAULT", + Tera = "TERA", +} + +/** + * REST API Type + * + * REST API type + * + * Service Type + * + * Service type. + * + * service type + * + * Custom database service type + * + * Looker service type + * + * Metabase service type + * + * PowerBI service type + * + * PowerBIReportServer service type + * + * Redash service type + * + * Superset service type + * + * Tableau service type + * + * Mode service type + * + * Custom dashboard service type + * + * QuickSight service type + * + * Qlik sense service type + * + * Lightdash service type + * + * MicroStrategy service type + * + * Qlik Cloud service type + * + * Sigma service type + * + * Kafka service type + * + * Redpanda service type + * + * Custom messaging service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * Amundsen service type + * + * Metadata to Elastic Search type + * + * OpenMetadata service type + * + * S3 service type + * + * ADLS service type + * + * Gcs service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * ElasticSearch service type + * + * OpenSearch service type + * + * Custom search service type + */ +export enum RESTType { + Adls = "ADLS", + Airbyte = "Airbyte", + Airflow = "Airflow", + Alation = "Alation", + AlationSink = "AlationSink", + Amundsen = "Amundsen", + Athena = "Athena", + Atlas = "Atlas", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDashboard = "CustomDashboard", + CustomDatabase = "CustomDatabase", + CustomMessaging = "CustomMessaging", + CustomMlModel = "CustomMlModel", + CustomPipeline = "CustomPipeline", + CustomSearch = "CustomSearch", + CustomStorage = "CustomStorage", + DBTCloud = "DBTCloud", + Dagster = "Dagster", + DataFactory = "DataFactory", + Databricks = "Databricks", + DatabricksPipeline = "DatabricksPipeline", + Datalake = "Datalake", + Db2 = "Db2", + DeltaLake = "DeltaLake", + DomoDashboard = "DomoDashboard", + DomoDatabase = "DomoDatabase", + DomoPipeline = "DomoPipeline", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + ElasticSearch = "ElasticSearch", + Exasol = "Exasol", + Fivetran = "Fivetran", + Flink = "Flink", + Gcs = "GCS", + Glue = "Glue", + GluePipeline = "GluePipeline", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + Kafka = "Kafka", + KafkaConnect = "KafkaConnect", + Kinesis = "Kinesis", + Lightdash = "Lightdash", + Looker = "Looker", + MariaDB = "MariaDB", + Matillion = "Matillion", + Metabase = "Metabase", + MetadataES = "MetadataES", + MicroStrategy = "MicroStrategy", + Mlflow = "Mlflow", + Mode = "Mode", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Nifi = "Nifi", + OpenLineage = "OpenLineage", + OpenMetadata = "OpenMetadata", + OpenSearch = "OpenSearch", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + Presto = "Presto", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + REST = "Rest", + Redash = "Redash", + Redpanda = "Redpanda", + Redshift = "Redshift", + S3 = "S3", + SAS = "SAS", + SQLite = "SQLite", + SageMaker = "SageMaker", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + Sigma = "Sigma", + SingleStore = "SingleStore", + Sklearn = "Sklearn", + Snowflake = "Snowflake", + Spark = "Spark", + Spline = "Spline", + Stitch = "Stitch", + Superset = "Superset", + Synapse = "Synapse", + Tableau = "Tableau", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + VertexAI = "VertexAI", + Vertica = "Vertica", +} + +/** + * Type of service such as Database, Dashboard, Messaging, etc. + * + * This schema defines the service types entities which requires a connection. + */ +export enum ServiceType { + API = "Api", + Dashboard = "Dashboard", + Database = "Database", + Messaging = "Messaging", + Metadata = "Metadata", + MlModel = "MlModel", + Pipeline = "Pipeline", + Search = "Search", + Storage = "Storage", +} + +/** + * Response to the request. + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} + +/** + * Workflow computation status. + * + * Enum defining possible Workflow status + */ +export enum WorkflowStatus { + Failed = "Failed", + Pending = "Pending", + Running = "Running", + Successful = "Successful", +} + +/** + * Type of the workflow. + * + * This enum defines the type for which this workflow applies to. + */ +export enum WorkflowType { + TestConnection = "TEST_CONNECTION", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/bulkAssets.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/bulkAssets.ts new file mode 100644 index 000000000000..b31dbdaf3232 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/bulkAssets.ts @@ -0,0 +1,79 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Represents schema for adding bulk relationships to an entity. + */ +export interface BulkAssets { + /** + * List of assets to be created against which the glossary needs to be added. + */ + assets?: EntityReference[]; +} + +/** + * List of assets to be created against which the glossary needs to be added. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/classification/createClassification.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/classification/createClassification.ts new file mode 100644 index 000000000000..003849c664cb --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/classification/createClassification.ts @@ -0,0 +1,52 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create classification request + */ +export interface CreateClassification { + /** + * Description of the classification. + */ + description: string; + /** + * Display Name that identifies this classification. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Tags under this classification are mutually exclusive. When mutually exclusive is `true` + * the tags from this classification are used to **classify** an entity. An entity can only + * be in one class - example, it can only be either `tier1` or `tier2` and not both. When + * mutually exclusive is `false`, the tags from this classification are used to + * **categorize** an entity. An entity can be in multiple categories simultaneously - + * example a customer can be `newCustomer` and `atRisk` simultaneously. + */ + mutuallyExclusive?: boolean; + name: string; + provider?: ProviderType; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/classification/createTag.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/classification/createTag.ts new file mode 100644 index 000000000000..b9a92049bfd6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/classification/createTag.ts @@ -0,0 +1,81 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create tag API request + */ +export interface CreateTag { + /** + * Fully qualified names of tags associated with this tag + */ + associatedTags?: string[]; + /** + * Name of the classification that this tag is part of. + */ + classification?: string; + /** + * Unique name of the classification + */ + description: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Children tags under this group are mutually exclusive. When mutually exclusive is `true` + * the tags from this group are used to **classify** an entity. An entity can only be in one + * class - example, it can only be either `tier1` or `tier2` and not both. When mutually + * exclusive is `false`, the tags from this group are used to **categorize** an entity. An + * entity can be in multiple categories simultaneously - example a customer can be + * `newCustomer` and `atRisk` simultaneously. + */ + mutuallyExclusive?: boolean; + name: string; + /** + * Fully qualified name of the parent tag. When null, the term is at the root of the + * classification. + */ + parent?: string; + provider?: ProviderType; + style?: Style; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/classification/loadTags.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/classification/loadTags.ts new file mode 100644 index 000000000000..ee14c1102eaf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/classification/loadTags.ts @@ -0,0 +1,118 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Load classifications and tags + */ +export interface LoadTags { + createClassification: CreateClassificationRequest; + createTags?: CreateTagRequest[]; +} + +/** + * Create classification request + */ +export interface CreateClassificationRequest { + /** + * Description of the classification. + */ + description: string; + /** + * Display Name that identifies this classification. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Tags under this classification are mutually exclusive. When mutually exclusive is `true` + * the tags from this classification are used to **classify** an entity. An entity can only + * be in one class - example, it can only be either `tier1` or `tier2` and not both. When + * mutually exclusive is `false`, the tags from this classification are used to + * **categorize** an entity. An entity can be in multiple categories simultaneously - + * example a customer can be `newCustomer` and `atRisk` simultaneously. + */ + mutuallyExclusive?: boolean; + name: string; + provider?: ProviderType; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * Create tag API request + */ +export interface CreateTagRequest { + /** + * Fully qualified names of tags associated with this tag + */ + associatedTags?: string[]; + /** + * Name of the classification that this tag is part of. + */ + classification?: string; + /** + * Unique name of the classification + */ + description: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Children tags under this group are mutually exclusive. When mutually exclusive is `true` + * the tags from this group are used to **classify** an entity. An entity can only be in one + * class - example, it can only be either `tier1` or `tier2` and not both. When mutually + * exclusive is `false`, the tags from this group are used to **categorize** an entity. An + * entity can be in multiple categories simultaneously - example a customer can be + * `newCustomer` and `atRisk` simultaneously. + */ + mutuallyExclusive?: boolean; + name: string; + /** + * Fully qualified name of the parent tag. When null, the term is at the root of the + * classification. + */ + parent?: string; + provider?: ProviderType; + style?: Style; +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/createBot.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/createBot.ts new file mode 100644 index 000000000000..2ec4c8b65a3f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/createBot.ts @@ -0,0 +1,51 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create bot API request + */ +export interface CreateBot { + /** + * Bot user name created for this bot on behalf of which the bot performs all the + * operations, such as updating description, responding on the conversation threads, etc. + */ + botUser: string; + /** + * Description of the bot. + */ + description?: string; + /** + * Name used for display purposes. Example 'FirstName LastName'. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Name of the bot. + */ + name: string; + provider?: ProviderType; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/createEventPublisherJob.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/createEventPublisherJob.ts new file mode 100644 index 000000000000..0698e72122b5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/createEventPublisherJob.ts @@ -0,0 +1,80 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Event Publisher Run Result. + */ +export interface CreateEventPublisherJob { + /** + * Provide After in case of failure to start reindexing after the issue is solved + */ + afterCursor?: string; + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Name of the result + */ + name?: string; + /** + * Publisher Type + */ + publisherType?: PublisherType; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * This schema publisher run modes. + */ + runMode?: RunMode; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; +} + +/** + * Publisher Type + * + * This schema event Publisher Types + */ +export enum PublisherType { + ElasticSearch = "elasticSearch", + Kafka = "kafka", +} + +/** + * This schema publisher run modes. + */ +export enum RunMode { + Batch = "batch", + Stream = "stream", +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/createType.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/createType.ts new file mode 100644 index 000000000000..8d94642e11fa --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/createType.ts @@ -0,0 +1,52 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create a Type to be used for extending entities. + */ +export interface CreateType { + category?: Category; + /** + * Optional description of the type. + */ + description: string; + /** + * Display Name that identifies this Type. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Unique name that identifies a Type. + */ + name: string; + /** + * Namespace or group to which this type belongs to. + */ + nameSpace: string; + /** + * JSON schema encoded as string. This will be used to validate the type values. + */ + schema: string; +} + +/** + * Metadata category to which a type belongs to. + */ +export enum Category { + Entity = "entity", + Field = "field", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createAPICollection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createAPICollection.ts new file mode 100644 index 000000000000..6003ec1ae447 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createAPICollection.ts @@ -0,0 +1,261 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create API Collection entity request + */ +export interface CreateAPICollection { + /** + * All the API's fullyQualifiedNames included in this API Collection. + */ + apiEndpoints?: string[]; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the API Collection instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this API Collection. It could be title or label from the + * source services + */ + displayName?: string; + /** + * Fully qualified name of the domain the API Collection belongs to. + */ + domain?: string; + /** + * EndPoint URL for the API Collection. Capture the Root URL of the collection. + */ + endpointURL?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this API Collection. + */ + name: string; + /** + * Owners of this API Collection + */ + owners?: EntityReference[]; + /** + * Link to the API service fully qualified name where this API collection is hosted in + */ + service: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Tags for this API Collection + */ + tags?: TagLabel[]; +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this API Collection + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createAPIEndpoint.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createAPIEndpoint.ts new file mode 100644 index 000000000000..6709ba6a75c1 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createAPIEndpoint.ts @@ -0,0 +1,384 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create a APIEndpoint entity request + */ +export interface CreateAPIEndpoint { + /** + * Reference to API Collection that contains this API Endpoint. + */ + apiCollection: string; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the APIEndpoint instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this APIEndpoint. + */ + displayName?: string; + /** + * Fully qualified name of the domain the API belongs to. + */ + domain?: string; + /** + * EndPoint URL for the API Collection. Capture the Root URL of the collection. + */ + endpointURL: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this APIEndpoint instance uniquely. We use operationId from OpenAPI + * specification. + */ + name: string; + /** + * Owners of this topic + */ + owners?: EntityReference[]; + /** + * Request Method for the API Endpoint. + */ + requestMethod?: APIRequestMethod; + /** + * Request Schema for the API Endpoint. + */ + requestSchema?: APISchema; + /** + * Response Schema for the API Endpoint. + */ + responseSchema?: APISchema; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of topic. + */ + sourceUrl?: string; + /** + * Tags for this topic + */ + tags?: TagLabel[]; +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this topic + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Request Method for the API Endpoint. + * + * This schema defines the Request Method type for APIs . + */ +export enum APIRequestMethod { + Connect = "CONNECT", + Delete = "DELETE", + Get = "GET", + Head = "HEAD", + Options = "OPTIONS", + Patch = "PATCH", + Post = "POST", + Put = "PUT", + Trace = "TRACE", +} + +/** + * Request Schema for the API Endpoint. + * + * This schema defines the API Endpoint entity's request/response schema. + * + * Response Schema for the API Endpoint. + */ +export interface APISchema { + /** + * Columns in this schema. + */ + schemaFields?: Field[]; + /** + * Schema used for message serialization. + */ + schemaType?: SchemaType; + [property: string]: any; +} + +/** + * This schema defines the nested object to capture protobuf/avro/jsonschema of topic's + * schema. + */ +export interface Field { + /** + * Child fields if dataType or arrayDataType is `map`, `record`, `message` + */ + children?: Field[]; + /** + * Data type of the field (int, date etc.). + */ + dataType: DataTypeTopic; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this field name. + */ + displayName?: string; + fullyQualifiedName?: string; + name: string; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the field (int, date etc.). + * + * This enum defines the type of data defined in schema. + */ +export enum DataTypeTopic { + Array = "ARRAY", + Boolean = "BOOLEAN", + Bytes = "BYTES", + Date = "DATE", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Int = "INT", + Long = "LONG", + Map = "MAP", + Null = "NULL", + Record = "RECORD", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Union = "UNION", + Unknown = "UNKNOWN", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Schema used for message serialization. + * + * Schema type used for the message. + */ +export enum SchemaType { + Avro = "Avro", + JSON = "JSON", + None = "None", + Other = "Other", + Protobuf = "Protobuf", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createChart.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createChart.ts new file mode 100644 index 000000000000..7fa87ee60a96 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createChart.ts @@ -0,0 +1,274 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Chart entity request + */ +export interface CreateChart { + chartType?: ChartType; + /** + * List of fully qualified name of dashboards containing this Chart. + */ + dashboards?: string[]; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the chart instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this Chart. It could be title or label from the source + * services + */ + displayName?: string; + /** + * Fully qualified name of the domain the Chart belongs to. + */ + domain?: string; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this Chart. + */ + name: string; + /** + * Owners of this chart + */ + owners?: EntityReference[]; + /** + * Link to the chart service where this chart is hosted in + */ + service: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Chart URL suffix from its service. + */ + sourceUrl?: string; + /** + * Tags for this chart + */ + tags?: TagLabel[]; +} + +/** + * This schema defines the type used for describing different types of charts. + */ +export enum ChartType { + Area = "Area", + Bar = "Bar", + BoxPlot = "BoxPlot", + Histogram = "Histogram", + Line = "Line", + Other = "Other", + Pie = "Pie", + Scatter = "Scatter", + Table = "Table", + Text = "Text", +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this chart + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createContainer.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createContainer.ts new file mode 100644 index 000000000000..2d9c6cd1da12 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createContainer.ts @@ -0,0 +1,685 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Container Model entity request + */ +export interface CreateContainer { + /** + * References to the container's data model, if data is structured, or null otherwise + */ + dataModel?: ContainerDataModel; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the Container instance. + */ + description?: string; + /** + * Display Name that identifies this Container model. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Container belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * File & data formats identified for the container: e.g. dataFormats=[csv, json]. These + * can be present both when the container has a dataModel or not + */ + fileFormats?: FileFormat[]; + /** + * Full path of the container/file. + */ + fullPath?: string; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this Container model. + */ + name: string; + /** + * The number of objects/files this container has. + */ + numberOfObjects?: number; + /** + * Owner of this database + */ + owners?: EntityReference[]; + /** + * Link to the parent container under which this entity sits. + */ + parent?: EntityReference; + /** + * Optional prefix path defined for this container + */ + prefix?: string; + /** + * Link to the storage service where this container is hosted in. + */ + service: string; + /** + * The total size in KB this container has. + */ + size?: number; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of container. + */ + sourceUrl?: string; + /** + * Tags for this Container Model + */ + tags?: TagLabel[]; +} + +/** + * References to the container's data model, if data is structured, or null otherwise + * + * This captures information about how the container's data is modeled, if it has a schema. + */ +export interface ContainerDataModel { + /** + * Columns belonging to this container's schema + */ + columns: Column[]; + /** + * Whether the data under this container is partitioned by some property, eg. + * eventTime=yyyy-mm-dd + */ + isPartitioned?: boolean; +} + +/** + * This schema defines the type for a column in a table. + */ +export interface Column { + /** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + */ + arrayDataType?: DataType; + /** + * Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`. + */ + children?: Column[]; + /** + * Column level constraint. + */ + constraint?: Constraint; + /** + * List of Custom Metrics registered for a table. + */ + customMetrics?: CustomMetric[]; + /** + * Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, + * `varchar(20)` has dataType as `varchar` and dataLength as `20`. + */ + dataLength?: number; + /** + * Data type of the column (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + fullyQualifiedName?: string; + /** + * Json schema only if the dataType is JSON else null. + */ + jsonSchema?: string; + name: string; + /** + * Ordinal position of the column. + */ + ordinalPosition?: number; + /** + * The precision of a numeric is the total count of significant digits in the whole number, + * that is, the number of digits to both sides of the decimal point. Precision is applicable + * Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric + * types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + precision?: number; + /** + * Latest Data profile for a Column. + */ + profile?: ColumnProfile; + /** + * The scale of a numeric is the count of decimal digits in the fractional part, to the + * right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non + * Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + scale?: number; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + * + * This enum defines the type of data stored in a column. + * + * Data type of the column (int, date etc.). + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * Column level constraint. + * + * This enum defines the type for column constraint. + */ +export enum Constraint { + NotNull = "NOT_NULL", + Null = "NULL", + PrimaryKey = "PRIMARY_KEY", + Unique = "UNIQUE", +} + +/** + * Custom Metric definition that we will associate with a column. + */ +export interface CustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the Metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Unique identifier of this Custom Metric instance. + */ + id?: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Custom Metric. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Owners of this Custom Metric. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to the parent container under which this entity sits. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Latest Data profile for a Column. + * + * This schema defines the type to capture the table's column profile. + */ +export interface ColumnProfile { + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Number of values that contain distinct values. + */ + distinctCount?: number; + /** + * Proportion of distinct values in a column. + */ + distinctProportion?: number; + /** + * No.of Rows that contain duplicates in a column. + */ + duplicateCount?: number; + /** + * First quartile of a column. + */ + firstQuartile?: number; + /** + * Histogram of a column. + */ + histogram?: any[] | boolean | HistogramClass | number | number | null | string; + /** + * Inter quartile range of a column. + */ + interQuartileRange?: number; + /** + * Maximum value in a column. + */ + max?: number | string; + /** + * Maximum string length in a column. + */ + maxLength?: number; + /** + * Avg value in a column. + */ + mean?: number; + /** + * Median of a column. + */ + median?: number; + /** + * Minimum value in a column. + */ + min?: number | string; + /** + * Minimum string length in a column. + */ + minLength?: number; + /** + * Missing count is calculated by subtracting valuesCount - validCount. + */ + missingCount?: number; + /** + * Missing Percentage is calculated by taking percentage of validCount/valuesCount. + */ + missingPercentage?: number; + /** + * Column Name. + */ + name: string; + /** + * Non parametric skew of a column. + */ + nonParametricSkew?: number; + /** + * No.of null values in a column. + */ + nullCount?: number; + /** + * No.of null value proportion in columns. + */ + nullProportion?: number; + /** + * Standard deviation of a column. + */ + stddev?: number; + /** + * Median value in a column. + */ + sum?: number; + /** + * First quartile of a column. + */ + thirdQuartile?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; + /** + * No. of unique values in the column. + */ + uniqueCount?: number; + /** + * Proportion of number of unique values in a column. + */ + uniqueProportion?: number; + /** + * Total count of valid values in this column. + */ + validCount?: number; + /** + * Total count of the values in this column. + */ + valuesCount?: number; + /** + * Percentage of values in this column with respect to row count. + */ + valuesPercentage?: number; + /** + * Variance of a column. + */ + variance?: number; +} + +/** + * Profiling results of a Custom Metric. + */ +export interface CustomMetricProfile { + /** + * Custom metric name. + */ + name?: string; + /** + * Profiling results for the metric. + */ + value?: number; +} + +export interface HistogramClass { + /** + * Boundaries of Histogram. + */ + boundaries?: any[]; + /** + * Frequencies of Histogram. + */ + frequencies?: any[]; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * This schema defines the file formats for the object/files within a container. + */ +export enum FileFormat { + Avro = "avro", + CSV = "csv", + Gz = "gz", + JSON = "json", + Parquet = "parquet", + Tsv = "tsv", + Zip = "zip", + Zstd = "zstd", +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createCustomProperty.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createCustomProperty.ts new file mode 100644 index 000000000000..ca85eb8c89dc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createCustomProperty.ts @@ -0,0 +1,115 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Custom Property Model entity request + */ +export interface CreateCustomProperty { + /** + * Config to define constraints around CustomProperty. + */ + customPropertyConfig?: CustomPropertyConfig; + /** + * Description of the Container instance. + */ + description?: string; + /** + * Name that identifies this Custom Property model. + */ + name: string; + /** + * Property Type. + */ + propertyType: EntityReference; +} + +/** + * Config to define constraints around CustomProperty. + * + * Config to define constraints around CustomProperty + */ +export interface CustomPropertyConfig { + config?: string[] | Config | string; +} + +/** + * Applies to Enum type, this config is used to define list of enum values + * + * Custom property configuration for table-type property where all column data types are + * strings. + */ +export interface Config { + multiSelect?: boolean; + values?: string[]; + /** + * List of column names defined at the entity type level. + */ + columns?: string[]; + maxColumns?: number; + minColumns?: number; +} + +/** + * Property Type. + * + * Reference to a property type. Only property types are allowed and entity types are not + * allowed as custom properties to extend an existing entity + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDashboard.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDashboard.ts new file mode 100644 index 000000000000..95fbee5d7c19 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDashboard.ts @@ -0,0 +1,278 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Dashboard entity request + */ +export interface CreateDashboard { + /** + * List of fully qualified name of charts included in this Dashboard. + */ + charts?: string[]; + dashboardType?: DashboardType; + /** + * List of fully qualified name of data models included in this Dashboard. + */ + dataModels?: string[]; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the database instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this Dashboard. It could be title or label from the source + * services + */ + displayName?: string; + /** + * Fully qualified name of the domain the Dashboard belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this dashboard. + */ + name: string; + /** + * Owners of this dashboard + */ + owners?: EntityReference[]; + /** + * Name of the project / workspace / collection in which the dashboard is contained + */ + project?: string; + /** + * Link to the dashboard service fully qualified name where this dashboard is hosted in + */ + service: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Dashboard URL suffix from its service. + */ + sourceUrl?: string; + /** + * Tags for this dashboard + */ + tags?: TagLabel[]; +} + +/** + * This schema defines the type used for describing different types of dashboards. + */ +export enum DashboardType { + Dashboard = "Dashboard", + Report = "Report", +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this dashboard + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDashboardDataModel.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDashboardDataModel.ts new file mode 100644 index 000000000000..dcc37c397372 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDashboardDataModel.ts @@ -0,0 +1,679 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Dashboard Data Model entity request. + */ +export interface CreateDashboardDataModel { + /** + * Columns from the data model. + */ + columns: Column[]; + dataModelType: DataModelType; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the data model instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this data model. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Dashboard Data Model belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this data model. + */ + name: string; + /** + * Owners of this data model. + */ + owners?: EntityReference[]; + /** + * Name of the project / workspace / collection in which the dataModel is contained + */ + project?: string; + /** + * Link to the data model service where this data model is hosted in. + */ + service: string; + /** + * Service type where this data model is hosted in. + */ + serviceType?: DashboardServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * In case the Data Model is based on a SQL query. + */ + sql?: string; + /** + * Tags for this data model. + */ + tags?: TagLabel[]; +} + +/** + * This schema defines the type for a column in a table. + */ +export interface Column { + /** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + */ + arrayDataType?: DataType; + /** + * Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`. + */ + children?: Column[]; + /** + * Column level constraint. + */ + constraint?: Constraint; + /** + * List of Custom Metrics registered for a table. + */ + customMetrics?: CustomMetric[]; + /** + * Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, + * `varchar(20)` has dataType as `varchar` and dataLength as `20`. + */ + dataLength?: number; + /** + * Data type of the column (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + fullyQualifiedName?: string; + /** + * Json schema only if the dataType is JSON else null. + */ + jsonSchema?: string; + name: string; + /** + * Ordinal position of the column. + */ + ordinalPosition?: number; + /** + * The precision of a numeric is the total count of significant digits in the whole number, + * that is, the number of digits to both sides of the decimal point. Precision is applicable + * Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric + * types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + precision?: number; + /** + * Latest Data profile for a Column. + */ + profile?: ColumnProfile; + /** + * The scale of a numeric is the count of decimal digits in the fractional part, to the + * right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non + * Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + scale?: number; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + * + * This enum defines the type of data stored in a column. + * + * Data type of the column (int, date etc.). + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * Column level constraint. + * + * This enum defines the type for column constraint. + */ +export enum Constraint { + NotNull = "NOT_NULL", + Null = "NULL", + PrimaryKey = "PRIMARY_KEY", + Unique = "UNIQUE", +} + +/** + * Custom Metric definition that we will associate with a column. + */ +export interface CustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the Metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Unique identifier of this Custom Metric instance. + */ + id?: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Custom Metric. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Owners of this Custom Metric. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * User, Pipeline, Query that created,updated or accessed the data asset + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Latest Data profile for a Column. + * + * This schema defines the type to capture the table's column profile. + */ +export interface ColumnProfile { + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Number of values that contain distinct values. + */ + distinctCount?: number; + /** + * Proportion of distinct values in a column. + */ + distinctProportion?: number; + /** + * No.of Rows that contain duplicates in a column. + */ + duplicateCount?: number; + /** + * First quartile of a column. + */ + firstQuartile?: number; + /** + * Histogram of a column. + */ + histogram?: any[] | boolean | HistogramClass | number | number | null | string; + /** + * Inter quartile range of a column. + */ + interQuartileRange?: number; + /** + * Maximum value in a column. + */ + max?: number | string; + /** + * Maximum string length in a column. + */ + maxLength?: number; + /** + * Avg value in a column. + */ + mean?: number; + /** + * Median of a column. + */ + median?: number; + /** + * Minimum value in a column. + */ + min?: number | string; + /** + * Minimum string length in a column. + */ + minLength?: number; + /** + * Missing count is calculated by subtracting valuesCount - validCount. + */ + missingCount?: number; + /** + * Missing Percentage is calculated by taking percentage of validCount/valuesCount. + */ + missingPercentage?: number; + /** + * Column Name. + */ + name: string; + /** + * Non parametric skew of a column. + */ + nonParametricSkew?: number; + /** + * No.of null values in a column. + */ + nullCount?: number; + /** + * No.of null value proportion in columns. + */ + nullProportion?: number; + /** + * Standard deviation of a column. + */ + stddev?: number; + /** + * Median value in a column. + */ + sum?: number; + /** + * First quartile of a column. + */ + thirdQuartile?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; + /** + * No. of unique values in the column. + */ + uniqueCount?: number; + /** + * Proportion of number of unique values in a column. + */ + uniqueProportion?: number; + /** + * Total count of valid values in this column. + */ + validCount?: number; + /** + * Total count of the values in this column. + */ + valuesCount?: number; + /** + * Percentage of values in this column with respect to row count. + */ + valuesPercentage?: number; + /** + * Variance of a column. + */ + variance?: number; +} + +/** + * Profiling results of a Custom Metric. + */ +export interface CustomMetricProfile { + /** + * Custom metric name. + */ + name?: string; + /** + * Profiling results for the metric. + */ + value?: number; +} + +export interface HistogramClass { + /** + * Boundaries of Histogram. + */ + boundaries?: any[]; + /** + * Frequencies of Histogram. + */ + frequencies?: any[]; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * This schema defines the type used for describing different types of data models. + */ +export enum DataModelType { + LookMlExplore = "LookMlExplore", + LookMlView = "LookMlView", + MetabaseDataModel = "MetabaseDataModel", + PowerBIDataModel = "PowerBIDataModel", + QlikDataModel = "QlikDataModel", + QuickSightDataModel = "QuickSightDataModel", + SigmaDataModel = "SigmaDataModel", + SupersetDataModel = "SupersetDataModel", + TableauDataModel = "TableauDataModel", + TableauEmbeddedDatasource = "TableauEmbeddedDatasource", + TableauPublishedDatasource = "TableauPublishedDatasource", +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Service type where this data model is hosted in. + * + * Type of Dashboard service - Superset, Looker, Redash, Tableau, Metabase, PowerBi, Mode, + * or Lightdash + */ +export enum DashboardServiceType { + CustomDashboard = "CustomDashboard", + DomoDashboard = "DomoDashboard", + Lightdash = "Lightdash", + Looker = "Looker", + Metabase = "Metabase", + MicroStrategy = "MicroStrategy", + Mode = "Mode", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + Redash = "Redash", + Sigma = "Sigma", + Superset = "Superset", + Tableau = "Tableau", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDatabase.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDatabase.ts new file mode 100644 index 000000000000..e75f46156fc1 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDatabase.ts @@ -0,0 +1,267 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Database entity request + */ +export interface CreateDatabase { + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Some databases don't support a database/catalog in the hierarchy and use default + * database. For example, `MySql`. For such databases, set this flag to true to indicate + * that this is a default database. + */ + default?: boolean; + /** + * Description of the database instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this database. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Database belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this database instance uniquely. + */ + name: string; + /** + * Owners of this database + */ + owners?: EntityReference[]; + /** + * Retention period of the data in the database. Period is expressed as duration in ISO 8601 + * format in UTC. Example - `P23DT23H`. + */ + retentionPeriod?: string; + /** + * Link to the database service fully qualified name where this database is hosted in + */ + service: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of database. + */ + sourceUrl?: string; + /** + * Tags for this Database Service. + */ + tags?: TagLabel[]; +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this database + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDatabaseSchema.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDatabaseSchema.ts new file mode 100644 index 000000000000..d719f6756308 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDatabaseSchema.ts @@ -0,0 +1,261 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Database Schema entity request + */ +export interface CreateDatabaseSchema { + /** + * Link to the database fully qualified name where this schema is hosted in + */ + database: string; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the schema instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this database schema. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Database Schema belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this database schema instance uniquely. + */ + name: string; + /** + * Owners of this schema + */ + owners?: EntityReference[]; + /** + * Retention period of the data in the database. Period is expressed as duration in ISO 8601 + * format in UTC. Example - `P23DT23H`. + */ + retentionPeriod?: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of database schema. + */ + sourceUrl?: string; + /** + * Tags for this table + */ + tags?: TagLabel[]; +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this schema + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createGlossary.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createGlossary.ts new file mode 100644 index 000000000000..8b316785a4ad --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createGlossary.ts @@ -0,0 +1,211 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Glossary entity request + */ +export interface CreateGlossary { + /** + * Description of the glossary instance. + */ + description: string; + /** + * Display Name that identifies this glossary. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Glossary belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Glossary terms that are direct children in this glossary are mutually exclusive. When + * mutually exclusive is `true` only one term can be used to label an entity. When mutually + * exclusive is `false`, multiple terms from this group can be used to label an entity. + */ + mutuallyExclusive?: boolean; + /** + * Name that identifies this glossary. + */ + name: string; + /** + * Owners of this glossary + */ + owners?: EntityReference[]; + provider?: ProviderType; + /** + * User references of the reviewers for this glossary. + */ + reviewers?: EntityReference[]; + /** + * Tags for this glossary + */ + tags?: TagLabel[]; +} + +/** + * Owners of this glossary + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createGlossaryTerm.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createGlossaryTerm.ts new file mode 100644 index 000000000000..d30ef4356a8e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createGlossaryTerm.ts @@ -0,0 +1,240 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Glossary term entity request + */ +export interface CreateGlossaryTerm { + /** + * Description of the glossary term. + */ + description: string; + /** + * Display Name that identifies this glossary term. + */ + displayName?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * FullyQualifiedName of the glossary that this term is part of. + */ + glossary: string; + /** + * Glossary terms that are children of this term are mutually exclusive. When mutually + * exclusive is `true` only one term can be used to label an entity from this group. When + * mutually exclusive is `false`, multiple terms from this group can be used to label an + * entity. + */ + mutuallyExclusive?: boolean; + /** + * Preferred name for the glossary term. + */ + name: string; + /** + * Owners of this glossary term. + */ + owners?: EntityReference[]; + /** + * Fully qualified name of the parent glossary term. + */ + parent?: string; + provider?: ProviderType; + /** + * Link to a reference from an external glossary. + */ + references?: TermReference[]; + /** + * Other array of glossary term fully qualified names that are related to this glossary term. + */ + relatedTerms?: string[]; + /** + * User or Team references of the reviewers for this glossary. + */ + reviewers?: EntityReference[]; + style?: Style; + /** + * Alternate names that are synonyms or near-synonyms for the glossary term. + */ + synonyms?: string[]; + /** + * Tags for this glossary term. + */ + tags?: TagLabel[]; +} + +/** + * Owners of this glossary term. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +export interface TermReference { + /** + * Name that identifies the source of an external glossary term. Example `HealthCare.gov`. + */ + endpoint?: string; + /** + * Name that identifies the source of an external glossary term. Example `HealthCare.gov`. + */ + name?: string; +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createMetric.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createMetric.ts new file mode 100644 index 000000000000..95541d18f125 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createMetric.ts @@ -0,0 +1,291 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Metric entity request + */ +export interface CreateMetric { + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the metric instance. + */ + description?: string; + /** + * Display Name that identifies this metric. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Metric belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Metric's granularity. + */ + granularity?: MetricGranularity; + /** + * Expression used to compute the metric. + */ + metricExpression?: MetricExpression; + /** + * Type of the metric. + */ + metricType?: MetricType; + /** + * Name that identifies this metric. + */ + name: string; + /** + * Owners of this metric + */ + owners?: EntityReference[]; + /** + * Other array of related metric fully qualified names that are related to this Metric. + */ + relatedMetrics?: string[]; + /** + * Tags for this metric + */ + tags?: TagLabel[]; + /** + * Unit of measurement for the metric. + */ + unitOfMeasurement?: UnitOfMeasurement; +} + +/** + * Metric's granularity. + * + * This schema defines the type of Metric's granularity. + */ +export enum MetricGranularity { + Day = "DAY", + Hour = "HOUR", + Minute = "MINUTE", + Month = "MONTH", + Quarter = "QUARTER", + Second = "SECOND", + Week = "WEEK", + Year = "YEAR", +} + +/** + * Expression used to compute the metric. + */ +export interface MetricExpression { + /** + * This schema defines the type of the language used for Metric Formula's Code. + */ + code?: string; + /** + * This schema defines the type of the language used for Metric Expression Code. + */ + language?: Language; +} + +/** + * This schema defines the type of the language used for Metric Expression Code. + */ +export enum Language { + External = "External", + Java = "Java", + JavaScript = "JavaScript", + Python = "Python", + SQL = "SQL", +} + +/** + * Type of the metric. + * + * This schema defines the type of Metric. + */ +export enum MetricType { + Average = "AVERAGE", + Count = "COUNT", + Max = "MAX", + Median = "MEDIAN", + Min = "MIN", + Mode = "MODE", + Other = "OTHER", + Percentage = "PERCENTAGE", + Ratio = "RATIO", + StandardDeviation = "STANDARD_DEVIATION", + Sum = "SUM", + Variance = "VARIANCE", +} + +/** + * Owners of this metric + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Unit of measurement for the metric. + * + * This schema defines the type of Metric's unit of measurement. + */ +export enum UnitOfMeasurement { + Count = "COUNT", + Dollars = "DOLLARS", + Events = "EVENTS", + Percentage = "PERCENTAGE", + Requests = "REQUESTS", + Size = "SIZE", + Timestamp = "TIMESTAMP", + Transactions = "TRANSACTIONS", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createMlModel.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createMlModel.ts new file mode 100644 index 000000000000..70b543a7080d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createMlModel.ts @@ -0,0 +1,398 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Ml Model entity request + */ +export interface CreateMlModel { + /** + * Algorithm used to train the ML Model + */ + algorithm?: string; + /** + * Performance Dashboard fqn to track metric evolution + */ + dashboard?: string; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the ML model instance. How it was trained and for what it is used. + */ + description?: string; + /** + * Display Name that identifies this ML model. It could be title or label from the source + * services + */ + displayName?: string; + /** + * Fully qualified name of the domain the MLModel belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Features used to train the ML Model. + */ + mlFeatures?: MlFeature[]; + /** + * Hyper Parameters used to train the ML Model. + */ + mlHyperParameters?: MlHyperParameter[]; + /** + * Location containing the ML Model. It can be a storage layer and/or a container repository. + */ + mlStore?: MlStore; + /** + * Name that identifies this ML model. + */ + name: string; + /** + * Owners of this database + */ + owners?: EntityReference[]; + /** + * Endpoint that makes the ML Model available, e.g,. a REST API serving the data or + * computing predictions. + */ + server?: string; + /** + * Link to the MLModel service fqn where this pipeline is hosted in + */ + service: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of mlModel. + */ + sourceUrl?: string; + /** + * Tags for this ML Model + */ + tags?: TagLabel[]; + /** + * For supervised ML Models, the value to estimate. + */ + target?: string; +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Description of the Data Source (e.g., a Table). + * + * Owners of this database + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for an ML Feature used in an ML Model. + */ +export interface MlFeature { + /** + * Data type of the column (numerical vs. categorical). + */ + dataType?: FeatureType; + /** + * Description of the ML Feature. + */ + description?: string; + /** + * Description of the algorithm used to compute the feature, e.g., PCA, bucketing... + */ + featureAlgorithm?: string; + /** + * Columns used to create the ML Feature. + */ + featureSources?: FeatureSource[]; + fullyQualifiedName?: string; + name?: string; + /** + * Tags associated with the feature. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the column (numerical vs. categorical). + * + * This enum defines the type of data stored in a ML Feature. + */ +export enum FeatureType { + Categorical = "categorical", + Numerical = "numerical", +} + +/** + * This schema defines the sources of a ML Feature. + */ +export interface FeatureSource { + /** + * Description of the Data Source (e.g., a Table). + */ + dataSource?: EntityReference; + /** + * Data type of the source (int, date etc.). + */ + dataType?: FeatureSourceDataType; + /** + * Description of the feature source. + */ + description?: string; + fullyQualifiedName?: string; + name?: string; + /** + * Tags associated with the feature source. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the source (int, date etc.). + * + * This enum defines the type of data of a ML Feature source. + */ +export enum FeatureSourceDataType { + Array = "array", + Boolean = "boolean", + Date = "date", + Integer = "integer", + Number = "number", + Object = "object", + String = "string", + Timestamp = "timestamp", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * This schema defines the type for an ML HyperParameter used in an ML Model. + */ +export interface MlHyperParameter { + /** + * Description of the Hyper Parameter. + */ + description?: string; + /** + * Hyper parameter name. + */ + name?: string; + /** + * Hyper parameter value. + */ + value?: string; +} + +/** + * Location containing the ML Model. It can be a storage layer and/or a container repository. + */ +export interface MlStore { + /** + * Container Repository with the ML Model image. + */ + imageRepository?: string; + /** + * Storage Layer containing the ML Model data. + */ + storage?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createPipeline.ts new file mode 100644 index 000000000000..a8caca8a53c5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createPipeline.ts @@ -0,0 +1,330 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Pipeline entity request + */ +export interface CreatePipeline { + /** + * Concurrency of the Pipeline + */ + concurrency?: number; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the pipeline instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this Pipeline. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Pipeline belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this pipeline instance uniquely. + */ + name: string; + /** + * Owners of this pipeline + */ + owners?: EntityReference[]; + /** + * Pipeline Code Location + */ + pipelineLocation?: string; + /** + * Scheduler Interval for the pipeline in cron format. + */ + scheduleInterval?: string; + /** + * Link to the pipeline service fqn where this pipeline is hosted in + */ + service: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Pipeline URL suffix to visit/manage. This URL points to respective pipeline service UI + */ + sourceUrl?: string; + /** + * Start date of the workflow + */ + startDate?: Date; + /** + * Tags for this Pipeline. + */ + tags?: TagLabel[]; + /** + * All the tasks that are part of pipeline. + */ + tasks?: Task[]; +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this pipeline + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +export interface Task { + /** + * Description of this Task. + */ + description?: string; + /** + * Display Name that identifies this Task. It could be title or label from the pipeline + * services. + */ + displayName?: string; + /** + * All the tasks that are downstream of this task. + */ + downstreamTasks?: string[]; + /** + * end date for the task. + */ + endDate?: string; + /** + * A unique name that identifies a pipeline in the format + * 'ServiceName.PipelineName.TaskName'. + */ + fullyQualifiedName?: string; + /** + * Name that identifies this task instance uniquely. + */ + name: string; + /** + * Owners of this task. + */ + owners?: EntityReference[]; + /** + * Task URL to visit/manage. This URL points to respective pipeline service UI. + */ + sourceUrl?: string; + /** + * start date for the task. + */ + startDate?: string; + /** + * Tags for this task. + */ + tags?: TagLabel[]; + /** + * SQL used in the task. Can be used to determine the lineage. + */ + taskSQL?: string; + /** + * Type of the Task. Usually refers to the class it implements. + */ + taskType?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createQuery.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createQuery.ts new file mode 100644 index 000000000000..3f66d27d658c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createQuery.ts @@ -0,0 +1,236 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Query Request + */ +export interface CreateQuery { + /** + * Description of the query instance. + */ + description?: string; + /** + * SQL dialect. + */ + dialect?: string; + /** + * Display Name that identifies this query. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * How long did the query took to run in milliseconds. + */ + duration?: number; + /** + * Flag to check if query is to be excluded while processing usage + */ + exclude_usage?: boolean; + /** + * Name of a Query in case of User Creation. + */ + name?: string; + /** + * Owners of this entity + */ + owners?: EntityReference[]; + /** + * Flag if this query has already been successfully processed for lineage + */ + processedLineage?: boolean; + /** + * SQL Query definition. + */ + query: string; + /** + * SQL query type + */ + query_type?: string; + /** + * Date on which the query ran. + */ + queryDate?: number; + /** + * list of entities to which the query is joined. + */ + queryUsedIn?: EntityReference[]; + /** + * Link to the database service fully qualified name where this query has been run + */ + service: string; + /** + * Tags for this Query + */ + tags?: TagLabel[]; + /** + * Entity that triggered the query. E.g., a Stored Procedure or a Pipeline Task. + */ + triggeredBy?: EntityReference; + /** + * List of users who ran the query but does not exist in OpenMetadata. + */ + usedBy?: string[]; + /** + * UserName of the user running the query. + */ + users?: string[]; +} + +/** + * Owners of this entity + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Entity that triggered the query. E.g., a Stored Procedure or a Pipeline Task. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createSearchIndex.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createSearchIndex.ts new file mode 100644 index 000000000000..66e45a7417f8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createSearchIndex.ts @@ -0,0 +1,397 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create a SearchIndex entity request + */ +export interface CreateSearchIndex { + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the SearchIndex instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this SearchIndex. + */ + displayName?: string; + /** + * Fully qualified name of the domain the SearchIndex belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Fields in this SearchIndex. + */ + fields: SearchIndexField[]; + /** + * Whether the entity is index or index template. + */ + indexType?: IndexType; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this SearchIndex instance uniquely. + */ + name: string; + /** + * Owners of this SearchIndex + */ + owners?: EntityReference[]; + /** + * Contains key/value pair of searchIndex settings. + */ + searchIndexSettings?: { [key: string]: any }; + /** + * Fully qualified name of the search service where this searchIndex is hosted in + */ + service: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Tags for this SearchIndex + */ + tags?: CreateSearchIndexTag[]; +} + +/** + * This schema defines the type for a field in a searchIndex. + */ +export interface SearchIndexField { + /** + * Child columns if dataType has properties. + */ + children?: SearchIndexField[]; + /** + * Data type of the searchIndex (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. + */ + dataTypeDisplay?: string; + /** + * Description of the field. + */ + description?: string; + /** + * Display Name that identifies this searchIndexField name. + */ + displayName?: string; + fullyQualifiedName?: string; + name: string; + /** + * Tags associated with the column. + */ + tags?: FieldTag[]; +} + +/** + * Data type of the searchIndex (int, date etc.). + * + * This enum defines the type of data stored in a searchIndex. + */ +export enum DataType { + AggregateMetricDouble = "AGGREGATE_METRIC_DOUBLE", + AnnotatedText = "ANNOTATED-TEXT", + Array = "ARRAY", + Binary = "BINARY", + Boolean = "BOOLEAN", + Byte = "BYTE", + Completion = "COMPLETION", + ConstantKeyword = "CONSTANT_KEYWORD", + Date = "DATE", + Datetime = "DATETIME", + DenseVector = "DENSE_VECTOR", + Double = "DOUBLE", + Flattened = "FLATTENED", + Float = "FLOAT", + GeoPoint = "GEO_POINT", + GeoShape = "GEO_SHAPE", + HalfFloat = "HALF_FLOAT", + Histogram = "HISTOGRAM", + IP = "IP", + Integer = "INTEGER", + Join = "JOIN", + Keyword = "KEYWORD", + Long = "LONG", + Murmur3 = "MURMUR3", + Nested = "NESTED", + Number = "NUMBER", + Object = "OBJECT", + Percolator = "PERCOLATOR", + Point = "POINT", + Range = "RANGE", + RankFeature = "RANK_FEATURE", + RankFeatures = "RANK_FEATURES", + ScaledFloat = "SCALED_FLOAT", + SearchAsYouType = "SEARCH_AS_YOU_TYPE", + Shape = "SHAPE", + Short = "SHORT", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Unknown = "UNKNOWN", + UnsignedLong = "UNSIGNED_LONG", + Version = "VERSION", + Wildcard = "WILDCARD", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface FieldTag { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Whether the entity is index or index template. + */ +export enum IndexType { + Index = "Index", + IndexTemplate = "IndexTemplate", +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this SearchIndex + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface CreateSearchIndexTag { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createStoredProcedure.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createStoredProcedure.ts new file mode 100644 index 000000000000..0f4fe9aabaa9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createStoredProcedure.ts @@ -0,0 +1,297 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Stored Procedure Request + */ +export interface CreateStoredProcedure { + /** + * Link to the database schema fully qualified name where this stored procedure is hosted in + */ + databaseSchema?: string; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the Stored Procedure. + */ + description?: string; + /** + * Display Name that identifies this Stored Procedure. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Stored Procedure belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name of a Stored Procedure. + */ + name: string; + /** + * Owners of this entity + */ + owners?: EntityReference[]; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of database schema. + */ + sourceUrl?: string; + /** + * SQL Query definition. + */ + storedProcedureCode: any[] | boolean | number | number | null | StoredProcedureCodeObject | string; + /** + * Type of the Stored Procedure. + */ + storedProcedureType?: StoredProcedureType; + /** + * Tags for this StoredProcedure. + */ + tags?: TagLabel[]; +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this entity + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +export interface StoredProcedureCodeObject { + /** + * This schema defines the type of the language used for Stored Procedure's Code. + */ + code?: string; + /** + * This schema defines the type of the language used for Stored Procedure's Code. + */ + language?: Language; + [property: string]: any; +} + +/** + * This schema defines the type of the language used for Stored Procedure's Code. + */ +export enum Language { + External = "External", + Java = "Java", + JavaScript = "JavaScript", + Python = "Python", + SQL = "SQL", +} + +/** + * Type of the Stored Procedure. + * + * This schema defines the type of the type of Procedures + */ +export enum StoredProcedureType { + StoredProcedure = "StoredProcedure", + Udf = "UDF", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTable.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTable.ts new file mode 100644 index 000000000000..8b74e7ff8dae --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTable.ts @@ -0,0 +1,928 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema corresponding to a table that belongs to a database + */ +export interface CreateTable { + /** + * Name of the tables in the database + */ + columns: Column[]; + /** + * FullyQualified name of the Schema corresponding to this table + */ + databaseSchema: string; + dataModel?: DataModel; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of entity instance. + */ + description?: string; + /** + * Display Name that identifies this table. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * File format in case of file/datalake tables. + */ + fileFormat?: FileFormat; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Full storage path in case of external and managed tables. + */ + locationPath?: string; + /** + * Name that identifies the this entity instance uniquely. Same as id if when name is not + * unique + */ + name: string; + /** + * Owners of this entity + */ + owners?: EntityReference[]; + /** + * Retention period of the data in the database. Period is expressed as duration in ISO 8601 + * format in UTC. Example - `P23DT23H`. + */ + retentionPeriod?: string; + /** + * DDL for Tables and Views + */ + schemaDefinition?: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of table. + */ + sourceUrl?: string; + tableConstraints?: TableConstraint[]; + tablePartition?: TablePartition; + tableProfilerConfig?: TableProfilerConfig; + tableType?: TableType; + /** + * Tags for this table + */ + tags?: TagLabel[]; +} + +/** + * This schema defines the type for a column in a table. + */ +export interface Column { + /** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + */ + arrayDataType?: DataType; + /** + * Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`. + */ + children?: Column[]; + /** + * Column level constraint. + */ + constraint?: Constraint; + /** + * List of Custom Metrics registered for a table. + */ + customMetrics?: CustomMetric[]; + /** + * Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, + * `varchar(20)` has dataType as `varchar` and dataLength as `20`. + */ + dataLength?: number; + /** + * Data type of the column (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + fullyQualifiedName?: string; + /** + * Json schema only if the dataType is JSON else null. + */ + jsonSchema?: string; + name: string; + /** + * Ordinal position of the column. + */ + ordinalPosition?: number; + /** + * The precision of a numeric is the total count of significant digits in the whole number, + * that is, the number of digits to both sides of the decimal point. Precision is applicable + * Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric + * types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + precision?: number; + /** + * Latest Data profile for a Column. + */ + profile?: ColumnProfile; + /** + * The scale of a numeric is the count of decimal digits in the fractional part, to the + * right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non + * Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + scale?: number; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + * + * This enum defines the type of data stored in a column. + * + * Data type of the column (int, date etc.). + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * Column level constraint. + * + * This enum defines the type for column constraint. + */ +export enum Constraint { + NotNull = "NOT_NULL", + Null = "NULL", + PrimaryKey = "PRIMARY_KEY", + Unique = "UNIQUE", +} + +/** + * Custom Metric definition that we will associate with a column. + */ +export interface CustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the Metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Unique identifier of this Custom Metric instance. + */ + id?: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Custom Metric. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Owners of this Custom Metric. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * User, Pipeline, Query that created,updated or accessed the data asset + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Latest Data profile for a Column. + * + * This schema defines the type to capture the table's column profile. + */ +export interface ColumnProfile { + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Number of values that contain distinct values. + */ + distinctCount?: number; + /** + * Proportion of distinct values in a column. + */ + distinctProportion?: number; + /** + * No.of Rows that contain duplicates in a column. + */ + duplicateCount?: number; + /** + * First quartile of a column. + */ + firstQuartile?: number; + /** + * Histogram of a column. + */ + histogram?: any[] | boolean | HistogramClass | number | number | null | string; + /** + * Inter quartile range of a column. + */ + interQuartileRange?: number; + /** + * Maximum value in a column. + */ + max?: number | string; + /** + * Maximum string length in a column. + */ + maxLength?: number; + /** + * Avg value in a column. + */ + mean?: number; + /** + * Median of a column. + */ + median?: number; + /** + * Minimum value in a column. + */ + min?: number | string; + /** + * Minimum string length in a column. + */ + minLength?: number; + /** + * Missing count is calculated by subtracting valuesCount - validCount. + */ + missingCount?: number; + /** + * Missing Percentage is calculated by taking percentage of validCount/valuesCount. + */ + missingPercentage?: number; + /** + * Column Name. + */ + name: string; + /** + * Non parametric skew of a column. + */ + nonParametricSkew?: number; + /** + * No.of null values in a column. + */ + nullCount?: number; + /** + * No.of null value proportion in columns. + */ + nullProportion?: number; + /** + * Standard deviation of a column. + */ + stddev?: number; + /** + * Median value in a column. + */ + sum?: number; + /** + * First quartile of a column. + */ + thirdQuartile?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; + /** + * No. of unique values in the column. + */ + uniqueCount?: number; + /** + * Proportion of number of unique values in a column. + */ + uniqueProportion?: number; + /** + * Total count of valid values in this column. + */ + validCount?: number; + /** + * Total count of the values in this column. + */ + valuesCount?: number; + /** + * Percentage of values in this column with respect to row count. + */ + valuesPercentage?: number; + /** + * Variance of a column. + */ + variance?: number; +} + +/** + * Profiling results of a Custom Metric. + */ +export interface CustomMetricProfile { + /** + * Custom metric name. + */ + name?: string; + /** + * Profiling results for the metric. + */ + value?: number; +} + +export interface HistogramClass { + /** + * Boundaries of Histogram. + */ + boundaries?: any[]; + /** + * Frequencies of Histogram. + */ + frequencies?: any[]; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * This captures information about how the table is modeled. Currently only DBT and DDL + * model is supported. + */ +export interface DataModel { + /** + * Columns from the schema defined during modeling. In case of DBT, the metadata here comes + * from `schema.yaml`. + */ + columns?: Column[]; + /** + * Description of the Table from the model. + */ + description?: string; + generatedAt?: Date; + modelType: ModelType; + /** + * Owners of this Table. + */ + owners?: EntityReference[]; + /** + * Path to sql definition file. + */ + path?: string; + /** + * This corresponds to rws SQL from `.sql` in DBT. This might be null when SQL + * query need not be compiled as done in DBT. + */ + rawSql?: string; + /** + * Resource Type of the model. + */ + resourceType?: string; + /** + * This corresponds to compile SQL from `.sql` in DBT. In cases where + * compilation is not necessary, this corresponds to SQL that created the table. + */ + sql?: string; + /** + * Tags for this data model. + */ + tags?: TagLabel[]; + /** + * Fully qualified name of Models/tables used for in `sql` for creating this table. + */ + upstream?: string[]; +} + +export enum ModelType { + DDL = "DDL", + Dbt = "DBT", +} + +/** + * File format in case of file/datalake tables. + */ +export enum FileFormat { + Avro = "avro", + CSV = "csv", + JSON = "json", + JSONGz = "json.gz", + JSONZip = "json.zip", + Jsonl = "jsonl", + JsonlGz = "jsonl.gz", + JsonlZip = "jsonl.zip", + Parquet = "parquet", + Tsv = "tsv", +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * This enum defines the type for table constraint. + */ +export interface TableConstraint { + /** + * List of column names corresponding to the constraint. + */ + columns?: string[]; + constraintType?: ConstraintType; + /** + * List of referred columns for the constraint. + */ + referredColumns?: string[]; + relationshipType?: RelationshipType; +} + +export enum ConstraintType { + DistKey = "DIST_KEY", + ForeignKey = "FOREIGN_KEY", + PrimaryKey = "PRIMARY_KEY", + SortKey = "SORT_KEY", + Unique = "UNIQUE", +} + +export enum RelationshipType { + ManyToMany = "MANY_TO_MANY", + ManyToOne = "MANY_TO_ONE", + OneToMany = "ONE_TO_MANY", + OneToOne = "ONE_TO_ONE", +} + +/** + * This schema defines the partition column of a table and format the partition is created. + */ +export interface TablePartition { + /** + * List of column partitions with their type and interval. + */ + columns?: PartitionColumnDetails[]; +} + +/** + * This schema defines the partition column of a table and format the partition is created. + */ +export interface PartitionColumnDetails { + /** + * List of column names corresponding to the partition. + */ + columnName?: string; + /** + * partition interval , example hourly, daily, monthly. + */ + interval?: string; + intervalType?: PartitionIntervalTypes; +} + +/** + * type of partition interval + */ +export enum PartitionIntervalTypes { + ColumnValue = "COLUMN-VALUE", + Enum = "ENUM", + IngestionTime = "INGESTION-TIME", + Injected = "INJECTED", + IntegerRange = "INTEGER-RANGE", + Other = "OTHER", + TimeUnit = "TIME-UNIT", +} + +/** + * This schema defines the type for Table profile config. + */ +export interface TableProfilerConfig { + /** + * Option to turn on/off column metric computation. If enabled, profiler will compute column + * level metrics. + */ + computeColumnMetrics?: boolean; + /** + * Option to turn on/off table metric computation. If enabled, profiler will compute table + * level metrics. + */ + computeTableMetrics?: boolean; + /** + * column names to exclude from profiling. + */ + excludeColumns?: string[]; + /** + * Only run profiler on included columns with specific metrics. + */ + includeColumns?: ColumnProfilerConfig[]; + /** + * Partitioning configuration + */ + partitioning?: PartitionProfilerConfig; + /** + * Users' raw SQL query to fetch sample data and profile the table + */ + profileQuery?: string; + /** + * Percentage of data or no. of rows used to compute the profiler metrics and run data + * quality tests + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * Number of sample rows to ingest when 'Generate Sample Data' is enabled + */ + sampleDataCount?: number; + samplingMethodType?: SamplingMethodType; + [property: string]: any; +} + +/** + * This schema defines the type for Table profile config include Columns. + */ +export interface ColumnProfilerConfig { + /** + * Column Name of the table to be included. + */ + columnName?: string; + /** + * Include only following metrics. + */ + metrics?: string[]; + [property: string]: any; +} + +/** + * Partitioning configuration + * + * This schema defines the partition configuration used by profiler. + */ +export interface PartitionProfilerConfig { + /** + * whether to use partition + */ + enablePartitioning?: boolean; + /** + * name of the column to use for the partition + */ + partitionColumnName?: string; + /** + * end of the integer range for partitioning + */ + partitionIntegerRangeEnd?: number; + /** + * start of the integer range for partitioning + */ + partitionIntegerRangeStart?: number; + /** + * The interval to use for the partitioning + */ + partitionInterval?: number; + partitionIntervalType?: PartitionIntervalTypes; + /** + * unit used for the partition interval + */ + partitionIntervalUnit?: PartitionIntervalUnit; + /** + * unit used for the partition interval + */ + partitionValues?: any[]; + [property: string]: any; +} + +/** + * unit used for the partition interval + */ +export enum PartitionIntervalUnit { + Day = "DAY", + Hour = "HOUR", + Month = "MONTH", + Year = "YEAR", +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * This schema defines the type used for describing different types of tables. + */ +export enum TableType { + Dynamic = "Dynamic", + External = "External", + Foreign = "Foreign", + Iceberg = "Iceberg", + Local = "Local", + MaterializedView = "MaterializedView", + Partitioned = "Partitioned", + Regular = "Regular", + SecureView = "SecureView", + Transient = "Transient", + View = "View", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTableProfile.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTableProfile.ts new file mode 100644 index 000000000000..9771b20d6890 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTableProfile.ts @@ -0,0 +1,262 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema corresponding to a table profile that belongs to a table + */ +export interface CreateTableProfile { + /** + * List of local column profiles of the table. + */ + columnProfile?: ColumnProfile[]; + /** + * List of system profiles for the table. + */ + systemProfile?: SystemProfile[]; + /** + * Table Profile. + */ + tableProfile: TableProfile; +} + +/** + * This schema defines the type to capture the table's column profile. + */ +export interface ColumnProfile { + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Number of values that contain distinct values. + */ + distinctCount?: number; + /** + * Proportion of distinct values in a column. + */ + distinctProportion?: number; + /** + * No.of Rows that contain duplicates in a column. + */ + duplicateCount?: number; + /** + * First quartile of a column. + */ + firstQuartile?: number; + /** + * Histogram of a column. + */ + histogram?: any[] | boolean | HistogramClass | number | number | null | string; + /** + * Inter quartile range of a column. + */ + interQuartileRange?: number; + /** + * Maximum value in a column. + */ + max?: number | string; + /** + * Maximum string length in a column. + */ + maxLength?: number; + /** + * Avg value in a column. + */ + mean?: number; + /** + * Median of a column. + */ + median?: number; + /** + * Minimum value in a column. + */ + min?: number | string; + /** + * Minimum string length in a column. + */ + minLength?: number; + /** + * Missing count is calculated by subtracting valuesCount - validCount. + */ + missingCount?: number; + /** + * Missing Percentage is calculated by taking percentage of validCount/valuesCount. + */ + missingPercentage?: number; + /** + * Column Name. + */ + name: string; + /** + * Non parametric skew of a column. + */ + nonParametricSkew?: number; + /** + * No.of null values in a column. + */ + nullCount?: number; + /** + * No.of null value proportion in columns. + */ + nullProportion?: number; + /** + * Standard deviation of a column. + */ + stddev?: number; + /** + * Median value in a column. + */ + sum?: number; + /** + * First quartile of a column. + */ + thirdQuartile?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; + /** + * No. of unique values in the column. + */ + uniqueCount?: number; + /** + * Proportion of number of unique values in a column. + */ + uniqueProportion?: number; + /** + * Total count of valid values in this column. + */ + validCount?: number; + /** + * Total count of the values in this column. + */ + valuesCount?: number; + /** + * Percentage of values in this column with respect to row count. + */ + valuesPercentage?: number; + /** + * Variance of a column. + */ + variance?: number; +} + +/** + * Profiling results of a Custom Metric. + */ +export interface CustomMetricProfile { + /** + * Custom metric name. + */ + name?: string; + /** + * Profiling results for the metric. + */ + value?: number; +} + +export interface HistogramClass { + /** + * Boundaries of Histogram. + */ + boundaries?: any[]; + /** + * Frequencies of Histogram. + */ + frequencies?: any[]; +} + +/** + * This schema defines the System Profile object holding profile data from system tables. + */ +export interface SystemProfile { + /** + * Operation performed. + */ + operation?: DMLOperationType; + /** + * Number of rows affected. + */ + rowsAffected?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp?: number; + [property: string]: any; +} + +/** + * Operation performed. + * + * This schema defines the type of DML operation. + */ +export enum DMLOperationType { + Delete = "DELETE", + Insert = "INSERT", + Update = "UPDATE", +} + +/** + * Table Profile. + * + * This schema defines the type to capture the table's data profile. + */ +export interface TableProfile { + /** + * No.of columns in the table. + */ + columnCount?: number; + /** + * Table creation time. + */ + createDateTime?: Date; + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Percentage of data or no. of rows we want to execute the profiler and tests on + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * No.of rows in the table. This is always executed on the whole table. + */ + rowCount?: number; + samplingMethodType?: SamplingMethodType; + /** + * Table size in GB + */ + sizeInByte?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTopic.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTopic.ts new file mode 100644 index 000000000000..dffa245160fd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/createTopic.ts @@ -0,0 +1,395 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create a topic entity request + */ +export interface CreateTopic { + /** + * Topic clean up policy. For Kafka - `cleanup.policy` configuration. + */ + cleanupPolicies?: CleanupPolicy[]; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of the topic instance. What it has and how to use it. + */ + description?: string; + /** + * Display Name that identifies this topic. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Topic belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Maximum message size in bytes. For Kafka - `max.message.bytes` configuration. + */ + maximumMessageSize?: number; + messageSchema?: Topic; + /** + * Minimum number replicas in sync to control durability. For Kafka - `min.insync.replicas` + * configuration. + */ + minimumInSyncReplicas?: number; + /** + * Name that identifies this topic instance uniquely. + */ + name: string; + /** + * Owners of this topic + */ + owners?: EntityReference[]; + /** + * Number of partitions into which the topic is divided. + */ + partitions: number; + /** + * Replication Factor in integer (more than 1). + */ + replicationFactor?: number; + /** + * Maximum size of a partition in bytes before old data is discarded. For Kafka - + * `retention.bytes` configuration. + */ + retentionSize?: number; + /** + * Retention time in milliseconds. For Kafka - `retention.ms` configuration. + */ + retentionTime?: number; + /** + * Fully qualified name of the messaging service where this topic is hosted in + */ + service: string; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of topic. + */ + sourceUrl?: string; + /** + * Tags for this topic + */ + tags?: TagLabel[]; + /** + * Contains key/value pair of topic configuration. + */ + topicConfig?: { [key: string]: any }; +} + +/** + * Topic clean up policy. For Kafka - `cleanup.policy` configuration. + */ +export enum CleanupPolicy { + Compact = "compact", + Delete = "delete", +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this topic + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the Topic entity. A topic is a feed into which message are published + * to by publishers and read from by consumers in a messaging service. + */ +export interface Topic { + /** + * Columns in this schema. + */ + schemaFields?: Field[]; + /** + * Schema used for message serialization. Optional as some topics may not have associated + * schemas. + */ + schemaText?: string; + /** + * Schema used for message serialization. + */ + schemaType?: SchemaType; + [property: string]: any; +} + +/** + * This schema defines the nested object to capture protobuf/avro/jsonschema of topic's + * schema. + */ +export interface Field { + /** + * Child fields if dataType or arrayDataType is `map`, `record`, `message` + */ + children?: Field[]; + /** + * Data type of the field (int, date etc.). + */ + dataType: DataTypeTopic; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this field name. + */ + displayName?: string; + fullyQualifiedName?: string; + name: string; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the field (int, date etc.). + * + * This enum defines the type of data defined in schema. + */ +export enum DataTypeTopic { + Array = "ARRAY", + Boolean = "BOOLEAN", + Bytes = "BYTES", + Date = "DATE", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Int = "INT", + Long = "LONG", + Map = "MAP", + Null = "NULL", + Record = "RECORD", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Union = "UNION", + Unknown = "UNKNOWN", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Schema used for message serialization. + * + * Schema type used for the message. + */ +export enum SchemaType { + Avro = "Avro", + JSON = "JSON", + None = "None", + Other = "Other", + Protobuf = "Protobuf", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/loadGlossary.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/loadGlossary.ts new file mode 100644 index 000000000000..b0f366bd019e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/loadGlossary.ts @@ -0,0 +1,293 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Load a glossary + */ +export interface LoadGlossary { + createGlossary: CreateGlossaryRequest; + createTerms?: CreateGlossaryTermRequest[]; +} + +/** + * Create Glossary entity request + */ +export interface CreateGlossaryRequest { + /** + * Description of the glossary instance. + */ + description: string; + /** + * Display Name that identifies this glossary. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Glossary belongs to. + */ + domain?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Glossary terms that are direct children in this glossary are mutually exclusive. When + * mutually exclusive is `true` only one term can be used to label an entity. When mutually + * exclusive is `false`, multiple terms from this group can be used to label an entity. + */ + mutuallyExclusive?: boolean; + /** + * Name that identifies this glossary. + */ + name: string; + /** + * Owners of this glossary + */ + owners?: EntityReference[]; + provider?: ProviderType; + /** + * User references of the reviewers for this glossary. + */ + reviewers?: EntityReference[]; + /** + * Tags for this glossary + */ + tags?: TagLabel[]; +} + +/** + * Owners of this glossary + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Create Glossary term entity request + */ +export interface CreateGlossaryTermRequest { + /** + * Description of the glossary term. + */ + description: string; + /** + * Display Name that identifies this glossary term. + */ + displayName?: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * FullyQualifiedName of the glossary that this term is part of. + */ + glossary: string; + /** + * Glossary terms that are children of this term are mutually exclusive. When mutually + * exclusive is `true` only one term can be used to label an entity from this group. When + * mutually exclusive is `false`, multiple terms from this group can be used to label an + * entity. + */ + mutuallyExclusive?: boolean; + /** + * Preferred name for the glossary term. + */ + name: string; + /** + * Owners of this glossary term. + */ + owners?: EntityReference[]; + /** + * Fully qualified name of the parent glossary term. + */ + parent?: string; + provider?: ProviderType; + /** + * Link to a reference from an external glossary. + */ + references?: TermReference[]; + /** + * Other array of glossary term fully qualified names that are related to this glossary term. + */ + relatedTerms?: string[]; + /** + * User or Team references of the reviewers for this glossary. + */ + reviewers?: EntityReference[]; + style?: Style; + /** + * Alternate names that are synonyms or near-synonyms for the glossary term. + */ + synonyms?: string[]; + /** + * Tags for this glossary term. + */ + tags?: TagLabel[]; +} + +export interface TermReference { + /** + * Name that identifies the source of an external glossary term. Example `HealthCare.gov`. + */ + endpoint?: string; + /** + * Name that identifies the source of an external glossary term. Example `HealthCare.gov`. + */ + name?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/data/restoreEntity.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/restoreEntity.ts new file mode 100644 index 000000000000..739227677675 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/data/restoreEntity.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Restore Entity API request to restore soft deleted entity. + */ +export interface RestoreEntity { + /** + * Unique identifier that identifies an entity instance. + */ + id: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/createDataInsightChart.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/createDataInsightChart.ts new file mode 100644 index 000000000000..ec8c2a885b32 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/createDataInsightChart.ts @@ -0,0 +1,160 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Payload to create a data insight chart + */ +export interface CreateDataInsightChart { + /** + * Elasticsearch index name + */ + dataIndexType?: DataReportIndex; + /** + * Description of the data insight chart. + */ + description?: string; + /** + * Dimensions of the chart + */ + dimensions?: ChartParameterValues[]; + /** + * Display Name the data insight chart. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Metrics of the chart + */ + metrics?: ChartParameterValues[]; + /** + * Name that identifies this data insight chart. + */ + name: string; + /** + * Owners of this chart + */ + owners?: EntityReference[]; +} + +/** + * Elasticsearch index name + * + * Index where data are stored + */ +export enum DataReportIndex { + AggregatedCostAnalysisReportDataIndex = "aggregated_cost_analysis_report_data_index", + EntityReportDataIndex = "entity_report_data_index", + RawCostAnalysisReportDataIndex = "raw_cost_analysis_report_data_index", + WebAnalyticEntityViewReportDataIndex = "web_analytic_entity_view_report_data_index", + WebAnalyticUserActivityReportDataIndex = "web_analytic_user_activity_report_data_index", +} + +/** + * This schema defines the parameter values for a chart. + */ +export interface ChartParameterValues { + /** + * Data type of the parameter (int, date etc.). + */ + chartDataType?: ChartDataType; + /** + * Display Name that identifies this parameter name. + */ + displayName?: string; + /** + * name of the parameter. + */ + name?: string; + [property: string]: any; +} + +/** + * Data type of the parameter (int, date etc.). + */ +export enum ChartDataType { + Array = "ARRAY", + Boolean = "BOOLEAN", + Date = "DATE", + Datetime = "DATETIME", + Decimal = "DECIMAL", + Double = "DOUBLE", + Float = "FLOAT", + Int = "INT", + Map = "MAP", + Number = "NUMBER", + Percentage = "PERCENTAGE", + Set = "SET", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", +} + +/** + * Owners of this chart + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/custom/createDataInsightCustomChart.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/custom/createDataInsightCustomChart.ts new file mode 100644 index 000000000000..83ed7c40c3fd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/custom/createDataInsightCustomChart.ts @@ -0,0 +1,213 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Payload to create a data insight custom chart + */ +export interface CreateDataInsightCustomChart { + chartDetails: LineChart; + /** + * Type of chart, used for UI to render the chart + */ + chartType?: ChartType; + /** + * Dashboard where this chart is displayed + */ + dashboard?: EntityReference; + /** + * Description of the data insight chart. + */ + description?: string; + /** + * Display Name the data insight chart. + */ + displayName?: string; + /** + * Name that identifies this data insight chart. + */ + name: string; + /** + * Owner of this chart + */ + owner?: EntityReference; +} + +/** + * Line Chart + * + * Summary Card + */ +export interface LineChart { + /** + * List of groups to be excluded in the data insight chart when groupBy is specified. + */ + excludeGroups?: string[]; + /** + * Breakdown field for the data insight chart. + */ + groupBy?: string; + /** + * List of groups to be included in the data insight chart when groupBy is specified. + */ + includeGroups?: string[]; + kpiDetails?: KpiDetails; + /** + * Metrics for the data insight chart. + */ + metrics?: Metrics[]; + /** + * Type of the data insight chart. + */ + type?: Type; + /** + * X-axis field for the data insight chart. + */ + xAxisField?: string; + /** + * X-axis label for the data insight chart. + */ + xAxisLabel?: string; + /** + * Y-axis label for the data insight chart. + */ + yAxisLabel?: string; +} + +/** + * KPI details for the data insight chart. + */ +export interface KpiDetails { + /** + * End Date of KPI + */ + endDate?: string; + /** + * Start Date of KPI + */ + startDate?: string; + /** + * Target value of KPI + */ + target?: number; + [property: string]: any; +} + +export interface Metrics { + /** + * Filter field for the data insight chart. + */ + field?: string; + /** + * Filter value for the data insight chart. + */ + filter?: string; + /** + * Formula for the data insight chart calculation. + */ + formula?: string; + function?: Function; + /** + * Name of the metric for the data insight chart. + */ + name?: string; + /** + * Tree filter value for the data insight chart. Needed for UI to recreate advance filter + * tree. + */ + treeFilter?: string; + [property: string]: any; +} + +/** + * aggregation function for chart + */ +export enum Function { + Avg = "avg", + Count = "count", + Max = "max", + Min = "min", + Sum = "sum", + Unique = "unique", +} + +/** + * Type of the data insight chart. + */ +export enum Type { + LineChart = "LineChart", + SummaryCard = "SummaryCard", +} + +/** + * Type of chart, used for UI to render the chart + */ +export enum ChartType { + AreaChart = "AreaChart", + BarChart = "BarChart", + LineChart = "LineChart", + SummaryCard = "SummaryCard", +} + +/** + * Dashboard where this chart is displayed + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owner of this chart + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/kpi/createKpiRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/kpi/createKpiRequest.ts new file mode 100644 index 000000000000..d22f87669a85 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/dataInsight/kpi/createKpiRequest.ts @@ -0,0 +1,130 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema corresponding to a Kpi. + */ +export interface CreateKpiRequest { + /** + * Fully qualified name of the Chart this kpi refers to + */ + dataInsightChart: DataInsightChart; + /** + * Description of the Kpi. + */ + description: string; + /** + * Display Name that identifies this Kpi. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * End Date for the KPIs + */ + endDate: number; + metricType: KpiTargetType; + /** + * Name that identifies this Kpi. + */ + name: string; + /** + * Owner of this Kpi + */ + owners?: EntityReference[]; + /** + * Start Date for the KPIs + */ + startDate: number; + /** + * Metrics from the chart and the target to achieve the result. + */ + targetValue: number; +} + +/** + * Fully qualified name of the Chart this kpi refers to + */ +export enum DataInsightChart { + NumberOfDataAssetWithDescriptionKpi = "number_of_data_asset_with_description_kpi", + NumberOfDataAssetWithOwnerKpi = "number_of_data_asset_with_owner_kpi", + PercentageOfDataAssetWithDescriptionKpi = "percentage_of_data_asset_with_description_kpi", + PercentageOfDataAssetWithOwnerKpi = "percentage_of_data_asset_with_owner_kpi", +} + +/** + * This enum defines the type of key Result + */ +export enum KpiTargetType { + Number = "NUMBER", + Percentage = "PERCENTAGE", +} + +/** + * Owner of this Kpi + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/docStore/createDocument.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/docStore/createDocument.ts new file mode 100644 index 000000000000..6594dd4f6b02 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/docStore/createDocument.ts @@ -0,0 +1,41 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Document. A Generic entity to capture any kind of Json Payload. + */ +export interface CreateDocument { + data: { [key: string]: any }; + /** + * Description of the DocStore Entity. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Type of the Entity stored in DocStore. + */ + entityType: string; + fullyQualifiedName: string; + /** + * Name of the DocStore + */ + name: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/domains/createDataProduct.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/domains/createDataProduct.ts new file mode 100644 index 000000000000..39e9be94bac4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/domains/createDataProduct.ts @@ -0,0 +1,127 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create DataProduct API request + */ +export interface CreateDataProduct { + /** + * Data assets collection that is part of this data product. + */ + assets?: EntityReference[]; + /** + * Description of the DataProduct. + */ + description: string; + /** + * Name used for display purposes. Example 'Customer Churn', 'Sentiment Analysis', etc. + */ + displayName?: string; + /** + * Fully qualified name of the Domain the DataProduct belongs to. + */ + domain?: string; + /** + * List of user/login names of users who are experts in this DataProduct. + */ + experts?: string[]; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * FullyQualifiedName of the Domain. + */ + fullyQualifiedName?: string; + /** + * A unique name of the DataProduct + */ + name: string; + /** + * Owners of this DataProduct. + */ + owners?: EntityReference[]; + style?: Style; +} + +/** + * Data assets collection that is part of this data product. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/domains/createDomain.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/domains/createDomain.ts new file mode 100644 index 000000000000..3d97dbeca813 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/domains/createDomain.ts @@ -0,0 +1,134 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Domain API request + */ +export interface CreateDomain { + /** + * Description of the Domain. + */ + description: string; + /** + * Name used for display purposes. Example 'Marketing', 'Payments', etc. + */ + displayName?: string; + /** + * Domain type + */ + domainType: DomainType; + /** + * List of user/login names of users who are experts in this Domain. + */ + experts?: string[]; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * A unique name of the Domain + */ + name: string; + /** + * Owners of this Domain. + */ + owners?: EntityReference[]; + /** + * Fully qualified name of parent domain. + */ + parent?: string; + style?: Style; +} + +/** + * Domain type + * + * Type of a domain + */ +export enum DomainType { + Aggregate = "Aggregate", + ConsumerAligned = "Consumer-aligned", + SourceAligned = "Source-aligned", +} + +/** + * Owners of this Domain. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/closeTask.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/closeTask.ts new file mode 100644 index 000000000000..2b15c0e153cd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/closeTask.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Close Task request + */ +export interface CloseTask { + /** + * The closing comment explaining why the task is being closed. + */ + comment: string; + /** + * Fully qualified name of the test case. + */ + testCaseFQN?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createPost.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createPost.ts new file mode 100644 index 000000000000..f8f176b4c014 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createPost.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create post request + */ +export interface CreatePost { + /** + * Name of the User posting the message + */ + from: string; + /** + * Message in Markdown format. See markdown support for more details. + */ + message: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createSuggestion.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createSuggestion.ts new file mode 100644 index 000000000000..a250284cbc94 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createSuggestion.ts @@ -0,0 +1,128 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Suggestion request + */ +export interface CreateSuggestion { + /** + * Message in Markdown format. See markdown support for more details. + */ + description?: string; + /** + * Data asset about which this thread is created for with format + * <#E::{entities}::{entityName}::{field}::{fieldValue}. + */ + entityLink: string; + /** + * Tags or Glossary Terms. + */ + tagLabels?: TagLabel[]; + type?: SuggestionType; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Type of a Suggestion. + */ +export enum SuggestionType { + SuggestDescription = "SuggestDescription", + SuggestTagLabel = "SuggestTagLabel", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createThread.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createThread.ts new file mode 100644 index 000000000000..cce6bcc2a94d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/createThread.ts @@ -0,0 +1,173 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create thread request + */ +export interface CreateThread { + /** + * Data asset about which this thread is created for with format + * <#E::{entities}::{entityType}::{field}::{fieldValue} + */ + about: string; + /** + * User or team this thread is addressed to in format + * <#E::{entities}::{entityName}::{field}::{fieldValue}. + */ + addressedTo?: string; + announcementDetails?: AnnouncementDetails; + /** + * Details about the Chatbot conversation. This is only applicable if thread is of type + * Chatbot. + */ + chatbotDetails?: ChatbotDetails; + /** + * Name of the User (regular user or bot) posting the message + */ + from: string; + /** + * Message + */ + message: string; + taskDetails?: CreateTaskDetails; + type?: ThreadType; +} + +/** + * Details about the announcement. This is only applicable if thread is of type announcement. + */ +export interface AnnouncementDetails { + /** + * Announcement description in Markdown format. See markdown support for more details. + */ + description?: string; + /** + * Timestamp of when the announcement should end + */ + endTime: number; + /** + * Timestamp of the start time from when the announcement should be shown. + */ + startTime: number; +} + +/** + * Details about the Chatbot conversation. This is only applicable if thread is of type + * Chatbot. + */ +export interface ChatbotDetails { + /** + * The query being discussed with the Chatbot + */ + query?: string; + [property: string]: any; +} + +/** + * Details about the task. This is only applicable if thread is of type task. + */ +export interface CreateTaskDetails { + /** + * List of users or teams the task is assigned to + */ + assignees: EntityReference[]; + /** + * The value of old object for which the task is created. + */ + oldValue?: string; + /** + * The suggestion object for the task provided by the creator. + */ + suggestion?: string; + type: TaskType; +} + +/** + * List of users or teams the task is assigned to + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of a task. + */ +export enum TaskType { + Generic = "Generic", + RequestApproval = "RequestApproval", + RequestDescription = "RequestDescription", + RequestTag = "RequestTag", + RequestTestCaseFailureResolution = "RequestTestCaseFailureResolution", + UpdateDescription = "UpdateDescription", + UpdateTag = "UpdateTag", +} + +/** + * Type of thread. + */ +export enum ThreadType { + Announcement = "Announcement", + Chatbot = "Chatbot", + Conversation = "Conversation", + Task = "Task", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/resolveTask.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/resolveTask.ts new file mode 100644 index 000000000000..6cbb785a3da2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/resolveTask.ts @@ -0,0 +1,44 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Resolve Task request + */ +export interface ResolveTask { + /** + * The new value object that needs to be updated to resolve the task. + */ + newValue: string; + /** + * Reason of Test Case resolution. + */ + testCaseFailureReason?: TestCaseFailureReasonType; + /** + * Fully qualified name of the test case. + */ + testCaseFQN?: string; +} + +/** + * Reason of Test Case resolution. + * + * Reason of Test Case initial failure. + */ +export enum TestCaseFailureReasonType { + Duplicates = "Duplicates", + FalsePositive = "FalsePositive", + MissingData = "MissingData", + Other = "Other", + OutOfBounds = "OutOfBounds", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/threadCount.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/threadCount.ts new file mode 100644 index 000000000000..2508f4fbf93c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/feed/threadCount.ts @@ -0,0 +1,40 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type for reporting the count of threads related to an entity. + */ +export interface ThreadCount { + /** + * Total count of all the tasks. + */ + closedTaskCount?: number; + /** + * Total count of all the threads of type Conversation. + */ + conversationCount?: number; + entityLink?: string; + /** + * Total count of all the mentions of a user. + */ + mentionCount?: number; + /** + * Total count of all the open tasks. + */ + openTaskCount?: number; + /** + * Total count of all the tasks. + */ + totalTaskCount?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/governance/createWorkflowInstanceState.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/governance/createWorkflowInstanceState.ts new file mode 100644 index 000000000000..652605a52f8d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/governance/createWorkflowInstanceState.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Workflow Instance State Request + */ +export interface CreateWorkflowInstanceState { + /** + * Workflow Definition reference FQN + */ + workflowDefinitionReference: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/lineage/addLineage.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/lineage/addLineage.ts new file mode 100644 index 000000000000..f9b1d89fcdc9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/lineage/addLineage.ts @@ -0,0 +1,162 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Add lineage details between two entities + */ +export interface AddLineage { + /** + * Lineage edge details. + */ + edge: EntitiesEdge; +} + +/** + * Lineage edge details. + * + * Edge in the lineage graph from one entity to another using entity references. + */ +export interface EntitiesEdge { + description?: string; + /** + * From entity that is upstream of lineage edge. + */ + fromEntity: EntityReference; + /** + * Optional lineageDetails provided only for table to table lineage edge. + */ + lineageDetails?: LineageDetails; + /** + * To entity that is downstream of lineage edge. + */ + toEntity: EntityReference; +} + +/** + * From entity that is upstream of lineage edge. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Pipeline where the sqlQuery is periodically run. + * + * To entity that is downstream of lineage edge. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Optional lineageDetails provided only for table to table lineage edge. + * + * Lineage details including sqlQuery + pipeline + columnLineage. + */ +export interface LineageDetails { + /** + * Lineage information of how upstream columns were combined to get downstream column. + */ + columnsLineage?: ColumnLineage[]; + /** + * description of lineage + */ + description?: string; + /** + * Pipeline where the sqlQuery is periodically run. + */ + pipeline?: EntityReference; + /** + * Lineage type describes how a lineage was created. + */ + source?: Source; + /** + * SQL used for transformation. + */ + sqlQuery?: string; + [property: string]: any; +} + +export interface ColumnLineage { + /** + * One or more source columns identified by fully qualified column name used by + * transformation function to create destination column. + */ + fromColumns?: string[]; + /** + * Transformation function applied to source columns to create destination column. That is + * `function(fromColumns) -> toColumn`. + */ + function?: string; + /** + * Destination column identified by fully qualified column name created by the + * transformation of source columns. + */ + toColumn?: string; + [property: string]: any; +} + +/** + * Lineage type describes how a lineage was created. + */ +export enum Source { + DashboardLineage = "DashboardLineage", + DbtLineage = "DbtLineage", + ExternalTableLineage = "ExternalTableLineage", + Manual = "Manual", + OpenLineage = "OpenLineage", + PipelineLineage = "PipelineLineage", + QueryLineage = "QueryLineage", + SparkLineage = "SparkLineage", + ViewLineage = "ViewLineage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/openMetadataServerVersion.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/openMetadataServerVersion.ts new file mode 100644 index 000000000000..0cffbc6b9a82 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/openMetadataServerVersion.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenMetadata Server application software version + */ +export interface OpenMetadataServerVersion { + /** + * Software revision of the OpenMetadata Server + */ + revision?: string; + /** + * Build timestamp + */ + timestamp?: number; + /** + * Software version of the OpenMetadata Server + */ + version?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/policies/createPolicy.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/policies/createPolicy.ts new file mode 100644 index 000000000000..8477c20057db --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/policies/createPolicy.ts @@ -0,0 +1,195 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Policy Entity Request + */ +export interface CreatePolicy { + /** + * A short description of the Policy, comprehensible to regular users. + */ + description?: string; + /** + * Title for this Policy. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Is the policy enabled. + */ + enabled?: boolean; + /** + * UUID of Location where this policy is applied + */ + location?: string; + /** + * Name that identifies this Policy. + */ + name: string; + /** + * Owners of this Policy. + */ + owners?: EntityReference[]; + rules: Rule[]; +} + +/** + * Owners of this Policy. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * A set of rules associated with the Policy. + * + * Describes an Access Control Rule for OpenMetadata Metadata Operations. All non-null user + * (subject) and entity (object) attributes are evaluated with logical AND. + */ +export interface Rule { + /** + * Expression in SpEL used for matching of a `Rule` based on entity, resource, and + * environmental attributes. + */ + condition?: string; + /** + * Description of the rule. + */ + description?: string; + effect: Effect; + /** + * FullyQualifiedName in the form `policyName.ruleName`. + */ + fullyQualifiedName?: string; + /** + * Name of this Rule. + */ + name: string; + /** + * List of operation names related to the `resources`. Use `*` to include all the operations. + */ + operations: Operation[]; + /** + * Resources/objects related to this rule. Resources are typically `entityTypes` such as + * `table`, `database`, etc. It also includes `non-entityType` resources such as `lineage`. + * Use `*` to include all the resources. + */ + resources: string[]; +} + +export enum Effect { + Allow = "allow", + Deny = "deny", +} + +/** + * This schema defines all possible operations on metadata of entities in OpenMetadata. + */ +export enum Operation { + All = "All", + Create = "Create", + CreateIngestionPipelineAutomator = "CreateIngestionPipelineAutomator", + Delete = "Delete", + DeleteTestCaseFailedRowsSample = "DeleteTestCaseFailedRowsSample", + Deploy = "Deploy", + EditAll = "EditAll", + EditCustomFields = "EditCustomFields", + EditDataProfile = "EditDataProfile", + EditDescription = "EditDescription", + EditDisplayName = "EditDisplayName", + EditEntityRelationship = "EditEntityRelationship", + EditGlossaryTerms = "EditGlossaryTerms", + EditIngestionPipelineStatus = "EditIngestionPipelineStatus", + EditKnowledgePanel = "EditKnowledgePanel", + EditLifeCycle = "EditLifeCycle", + EditLineage = "EditLineage", + EditOwners = "EditOwners", + EditPage = "EditPage", + EditPolicy = "EditPolicy", + EditQueries = "EditQueries", + EditReviewers = "EditReviewers", + EditRole = "EditRole", + EditSampleData = "EditSampleData", + EditStatus = "EditStatus", + EditTags = "EditTags", + EditTeams = "EditTeams", + EditTests = "EditTests", + EditTier = "EditTier", + EditUsage = "EditUsage", + EditUsers = "EditUsers", + GenerateToken = "GenerateToken", + Kill = "Kill", + Trigger = "Trigger", + ViewAll = "ViewAll", + ViewBasic = "ViewBasic", + ViewDataProfile = "ViewDataProfile", + ViewProfilerGlobalConfiguration = "ViewProfilerGlobalConfiguration", + ViewQueries = "ViewQueries", + ViewSampleData = "ViewSampleData", + ViewTestCaseFailedRowsSample = "ViewTestCaseFailedRowsSample", + ViewTests = "ViewTests", + ViewUsage = "ViewUsage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createApiService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createApiService.ts new file mode 100644 index 000000000000..417f03929f6c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createApiService.ts @@ -0,0 +1,239 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create API Service entity request + */ +export interface CreateAPIService { + connection?: APIConnection; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of API service entity. + */ + description?: string; + /** + * Display Name that identifies this API service. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Fully qualified name of the domain the API Service belongs to. + */ + domain?: string; + /** + * Name that identifies the this entity instance uniquely + */ + name: string; + /** + * Owners of this API service. + */ + owners?: EntityReference[]; + serviceType: APIServiceType; + /** + * Tags for this API Service. + */ + tags?: TagLabel[]; +} + +/** + * API Service Connection. + */ +export interface APIConnection { + config?: RESTConnection; +} + +/** + * REST Connection Config + */ +export interface RESTConnection { + /** + * Open API Schema URL. + */ + openAPISchemaURL: string; + /** + * Supports Metadata Extraction. + */ + supportsMetadataExtraction?: boolean; + /** + * Generated Token to connect to OpenAPI Schema. + */ + token?: string; + /** + * REST API Type + */ + type?: RESTType; +} + +/** + * REST API Type + * + * REST API type + */ +export enum RESTType { + REST = "Rest", +} + +/** + * Owners of this API service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of api service such as REST, Webhook,... + */ +export enum APIServiceType { + REST = "Rest", + Webhook = "WEBHOOK", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDashboardService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDashboardService.ts new file mode 100644 index 000000000000..9d2252802c5c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDashboardService.ts @@ -0,0 +1,1226 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Dashboard service entity request + */ +export interface CreateDashboardService { + connection?: DashboardConnection; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of dashboard service entity. + */ + description?: string; + /** + * Display Name that identifies this dashboard service. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Dashboard Service belongs to. + */ + domain?: string; + /** + * Name that identifies the this entity instance uniquely + */ + name: string; + /** + * Owners of this dashboard service. + */ + owners?: EntityReference[]; + serviceType: DashboardServiceType; + /** + * Tags for this Dashboard Service. + */ + tags?: TagLabel[]; +} + +/** + * Dashboard Connection. + */ +export interface DashboardConnection { + config?: Connection; +} + +/** + * Looker Connection Config + * + * Metabase Connection Config + * + * PowerBI Connection Config + * + * PowerBIReportServer Connection Config + * + * Redash Connection Config + * + * Superset Connection Config + * + * Tableau Connection Config + * + * Mode Connection Config + * + * Custom Dashboard Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Domo Dashboard Connection Config + * + * QuickSight Connection Config + * + * Qlik Sense Connection Config + * + * Lightdash Connection Config + * + * MicroStrategy Connection Config + * + * Qlik Cloud Connection Config + * + * Sigma Connection Config + */ +export interface Connection { + /** + * User's Client ID. This user should have privileges to read all the metadata in Looker. + * + * client_id for PowerBI. + * + * Client ID for DOMO + * + * client_id for Sigma. + */ + clientId?: string; + /** + * User's Client Secret. + * + * clientSecret for PowerBI. + * + * clientSecret for Sigma. + */ + clientSecret?: string; + /** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + */ + gitCredentials?: GitHubCredentials; + /** + * URL to the Looker instance. + * + * Host and Port of the Metabase instance. + * + * Dashboard URL for PowerBI service. + * + * Dashboard URL for PowerBI Report Server. + * + * URL for the Redash instance + * + * URL for the superset instance. + * + * Tableau Server. + * + * URL for the mode instance. + * + * URL for the Qlik instance. + * + * Address for your running Lightdash instance + * + * Host and Port of the MicroStrategy instance. + * + * Host and Port of the Qlik Cloud instance. + * + * Sigma API url. + */ + hostPort?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + * + * Custom dashboard service type + */ + type?: DashboardServiceType; + /** + * Password to connect to Metabase. + * + * Password to connect to PowerBI report server. + * + * Password to connect to MicroStrategy. + */ + password?: string; + /** + * Username to connect to Metabase. This user should have privileges to read all the + * metadata in Metabase. + * + * Username to connect to PowerBI report server. + * + * Username for Redash + * + * Username to connect to MicroStrategy. This user should have privileges to read all the + * metadata in MicroStrategy. + */ + username?: string; + /** + * Authority URI for the PowerBI service. + */ + authorityURI?: string; + /** + * Entity Limit set here will be used to paginate the PowerBi APIs + */ + pagination_entity_per_page?: number; + /** + * Source to get the .pbit files to extract lineage information + */ + pbitFilesSource?: PowerBIPbitFilesSource; + /** + * PowerBI secrets. + */ + scope?: string[]; + /** + * Tenant ID for PowerBI. + */ + tenantId?: string; + /** + * Fetch the PowerBI metadata using admin APIs + */ + useAdminApis?: boolean; + /** + * Web Portal Virtual Directory Name. + */ + webPortalVirtualDirectory?: string; + /** + * API key of the redash instance to access. + * + * The personal access token you can generate in the Lightdash app under the user settings + */ + apiKey?: string; + /** + * Version of the Redash instance + */ + redashVersion?: string; + /** + * Choose between API or database connection fetch metadata from superset. + */ + connection?: SupersetConnection; + /** + * Tableau API version. + * + * Sigma API version. + */ + apiVersion?: string; + /** + * Types of methods used to authenticate to the tableau instance + */ + authType?: AuthenticationTypeForTableau; + /** + * Tableau Environment Name. + */ + env?: string; + /** + * Pagination limit used while querying the tableau metadata API for getting data sources + */ + paginationLimit?: number; + /** + * Tableau Site Name. + */ + siteName?: string; + /** + * Tableau Site Url. + */ + siteUrl?: string; + sslConfig?: CertificatesSSLConfig; + verifySSL?: VerifySSL; + /** + * Access Token for Mode Dashboard + * + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * Access Token Password for Mode Dashboard + */ + accessTokenPassword?: string; + /** + * Filter query parameter for some of the Mode API calls + */ + filterQueryParam?: string; + /** + * Mode Workspace Name + */ + workspaceName?: string; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret Token to connect DOMO + */ + secretToken?: string; + /** + * AWS Account ID + */ + awsAccountId?: string; + awsConfig?: AWSCredentials; + /** + * The authentication method that the user uses to sign in. + */ + identityType?: IdentityType; + /** + * The Amazon QuickSight namespace that contains the dashboard IDs in this request ( To be + * provided when identityType is `ANONYMOUS` ) + */ + namespace?: string; + certificates?: QlikCertificatesBy; + /** + * Qlik Sense Base URL, used for genrating dashboard & chat url + */ + displayUrl?: string; + /** + * User Directory. + */ + userDirectory?: string; + /** + * User ID. + */ + userId?: string; + /** + * Validate Host Name + */ + validateHostName?: boolean; + /** + * The Project UUID for your Lightdash instance + */ + projectUUID?: string; + /** + * Use if your Lightdash instance is behind a proxy like (Cloud IAP) + */ + proxyAuthentication?: string; + /** + * The Space UUID for your Lightdash instance + */ + spaceUUID?: string; + /** + * Login Mode for Microstrategy's REST API connection. You can authenticate with one of the + * following authentication modes: `Standard (1)`, `Anonymous (8)`. Default will be + * `Standard (1)`. If you're using demo account for Microstrategy, it will be needed to + * authenticate through loginMode `8`. + */ + loginMode?: string; + /** + * MicroStrategy Project Name + */ + projectName?: string; + /** + * token to connect to Qlik Cloud. + */ + token?: string; +} + +/** + * Types of methods used to authenticate to the tableau instance + * + * Basic Auth Credentials + * + * Access Token Auth Credentials + */ +export interface AuthenticationTypeForTableau { + /** + * Password to access the service. + */ + password?: string; + /** + * Username to access the service. + */ + username?: string; + /** + * Personal Access Token Name. + */ + personalAccessTokenName?: string; + /** + * Personal Access Token Secret. + */ + personalAccessTokenSecret?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Qlik Authentication Certificate By Values + * + * Qlik Authentication Certificate File Path + */ +export interface QlikCertificatesBy { + sslConfig?: CertificatesSSLConfig; + /** + * Client Certificate + */ + clientCertificate?: string; + /** + * Client Key Certificate. + */ + clientKeyCertificate?: string; + /** + * Root Certificate. + */ + rootCertificate?: string; + [property: string]: any; +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface CertificatesSSLConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Choose between API or database connection fetch metadata from superset. + * + * Superset API Connection Config + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface SupersetConnection { + /** + * Password for Superset. + */ + password?: string; + /** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ + provider?: Provider; + /** + * SSL Configuration details. + */ + sslConfig?: SupersetConnectionSSLConfig; + /** + * Username for Superset. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username: string; + verifySSL?: VerifySSL; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: SupersetConnectionType; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ +export enum Provider { + DB = "db", + LDAP = "ldap", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Configuration details. + */ +export interface SupersetConnectionSSLConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum SupersetConnectionType { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + * + * Do not set any credentials. Note that credentials are required to extract .lkml views and + * their lineage. + * + * Credentials for a GitHub repository + * + * Credentials for a BitBucket repository + * + * Credentials for a Gitlab repository + */ +export interface GitHubCredentials { + repositoryName?: string; + repositoryOwner?: string; + token?: string; + /** + * Credentials Type + */ + type?: GitHubCredentialsType; + /** + * Main production branch of the repository. E.g., `main` + */ + branch?: string; +} + +/** + * Credentials Type + * + * GitHub Credentials type + * + * BitBucket Credentials type + * + * Gitlab Credentials type + */ +export enum GitHubCredentialsType { + BitBucket = "BitBucket", + GitHub = "GitHub", + Gitlab = "Gitlab", +} + +/** + * The authentication method that the user uses to sign in. + */ +export enum IdentityType { + Anonymous = "ANONYMOUS", + Iam = "IAM", + Quicksight = "QUICKSIGHT", +} + +/** + * Source to get the .pbit files to extract lineage information + * + * Local config source where no extra information needs to be sent. + * + * Azure storage config for pbit files + * + * GCS storage config for pbit files + * + * S3 storage config for pbit files + */ +export interface PowerBIPbitFilesSource { + /** + * Directory path for the pbit files + */ + path?: string; + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig?: Credentials; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Azure = "azure", + Gcs = "gcs", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * Azure Cloud Credentials + * + * GCP credentials configs. + * + * AWS credentials configs. + */ +export interface Credentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * Looker service type + * + * Metabase service type + * + * PowerBI service type + * + * PowerBIReportServer service type + * + * Redash service type + * + * Superset service type + * + * Tableau service type + * + * Mode service type + * + * Custom dashboard service type + * + * service type + * + * QuickSight service type + * + * Qlik sense service type + * + * Lightdash service type + * + * MicroStrategy service type + * + * Qlik Cloud service type + * + * Sigma service type + * + * Type of Dashboard service - Superset, Looker, Redash, Tableau, Metabase, PowerBi, Mode, + * or Lightdash + */ +export enum DashboardServiceType { + CustomDashboard = "CustomDashboard", + DomoDashboard = "DomoDashboard", + Lightdash = "Lightdash", + Looker = "Looker", + Metabase = "Metabase", + MicroStrategy = "MicroStrategy", + Mode = "Mode", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + Redash = "Redash", + Sigma = "Sigma", + Superset = "Superset", + Tableau = "Tableau", +} + +/** + * Owners of this dashboard service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts new file mode 100644 index 000000000000..258a45fe5e48 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createDatabaseService.ts @@ -0,0 +1,2008 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Database service entity request + */ +export interface CreateDatabaseService { + connection?: DatabaseConnection; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of Database entity. + */ + description?: string; + /** + * Display Name that identifies this database service. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Database Service belongs to. + */ + domain?: string; + /** + * Name that identifies the this entity instance uniquely + */ + name: string; + /** + * Owners of this database service. + */ + owners?: EntityReference[]; + serviceType: DatabaseServiceType; + /** + * Tags for this Database Service. + */ + tags?: TagLabel[]; +} + +/** + * Database Connection. + */ +export interface DatabaseConnection { + config?: ConfigClass; +} + +/** + * Google BigQuery Connection Config + * + * Google BigTable Connection Config + * + * AWS Athena Connection Config + * + * Azure SQL Connection Config + * + * Clickhouse Connection Config + * + * Databricks Connection Config + * + * Db2 Connection Config + * + * DeltaLake Database Connection Config + * + * Druid Connection Config + * + * DynamoDB Connection Config + * + * Glue Connection Config + * + * Hive SQL Connection Config + * + * Impala SQL Connection Config + * + * MariaDB Database Connection Config + * + * Mssql Database Connection Config + * + * Mysql Database Connection Config + * + * SQLite Database Connection Config + * + * Oracle Database Connection Config + * + * Postgres Database Connection Config + * + * Presto Database Connection Config + * + * Redshift Connection Config + * + * Salesforce Connection Config + * + * SingleStore Database Connection Config + * + * Snowflake Connection Config + * + * Trino Connection Config + * + * Vertica Connection Config + * + * PinotDB Database Connection Config + * + * Datalake Connection Config + * + * Domo Database Connection Config + * + * Custom Database Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Sap Hana Database Connection Config + * + * MongoDB Connection Config + * + * Couchbase Connection Config + * + * Greenplum Database Connection Config + * + * Doris Database Connection Config + * + * UnityCatalog Connection Config + * + * SAS Connection Config + * + * Iceberg Catalog Connection Config + * + * Teradata Database Connection Config + * + * Sap ERP Database Connection Config + * + * Synapse Database Connection Config + * + * Exasol Database Connection Config + */ +export interface ConfigClass { + /** + * If using Metastore, Key-Value pairs that will be used to add configs to the SparkSession. + */ + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * GCP Credentials + */ + credentials?: GCPCredentials; + /** + * BigQuery APIs URL. + * + * Host and port of the AzureSQL service. + * + * Host and port of the Clickhouse service. + * + * Host and port of the Databricks service. + * + * Host and port of the DB2 service. + * + * Host and port of the Druid service. + * + * Host and port of the Hive service. + * + * Host and port of the Impala service. + * + * Host and port of the MariaDB service. + * + * Host and port of the MSSQL service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Host and port of the Oracle service. + * + * Host and port of the source service. + * + * Host and port of the Presto service. + * + * Host and port of the Redshift service. + * + * Host and port of the SingleStore service. + * + * Host and port of the Trino service. + * + * Host and port of the Vertica service. + * + * Host and port of the PinotDB Broker service. + * + * Host and port of the MongoDB service when using the `mongodb` connection scheme. Only + * host when using the `mongodb+srv` scheme. + * + * Host and port of the Doris service. + * + * Host and port of the Teradata service. + * + * Host and Port of the SAP ERP instance. + * + * Host and port of the Azure Synapse service. + */ + hostPort?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + * + * Mongo connection scheme options. + * + * Couchbase driver scheme options. + */ + scheme?: ConfigScheme; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + /** + * Supports Lineage Extraction. + */ + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + /** + * Supports Usage Extraction. + */ + supportsUsageExtraction?: boolean; + /** + * Taxonomy location used to fetch policy tags + */ + taxonomyLocation?: string; + /** + * Project IDs used to fetch policy tags + */ + taxonomyProjectID?: string[]; + /** + * Service Type + * + * Custom database service type + */ + type?: ConfigType; + /** + * Location used to query INFORMATION_SCHEMA.JOBS_BY_PROJECT to fetch usage data. You can + * pass multi-regions, such as `us` or `eu`, or you specific region. Australia and Asia + * multi-regions are not yet in GA. + */ + usageLocation?: string; + awsConfig?: AWSCredentials; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * S3 Staging Directory. Example: s3://postgres/input/ + */ + s3StagingDir?: string; + /** + * Athena workgroup. + */ + workgroup?: string; + /** + * This parameter determines the mode of authentication for connecting to AzureSQL using + * ODBC. If 'Active Directory Password' is selected, you need to provide the password. If + * 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with AzureSQL. + * + * This parameter determines the mode of authentication for connecting to Azure Synapse + * using ODBC. If 'Active Directory Password' is selected, you need to provide the password. + * If 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with Azure Synapse. + */ + authenticationMode?: any[] | boolean | number | null | AuthenticationModeObject | string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + * + * Database of the data source. + * + * Initial Redshift database to connect to. If you want to ingest all databases, set + * ingestAllDatabases to true. + */ + database?: string; + /** + * SQLAlchemy driver for AzureSQL. + * + * ODBC driver version in case of pyodbc connection. + */ + driver?: string; + /** + * Ingest data from all databases in Azuresql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Mssql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Redshift. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Greenplum. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Azure Synapse. You can use databaseFilterPattern on top + * of this. + */ + ingestAllDatabases?: boolean; + /** + * Password to connect to AzureSQL. + * + * Password to connect to Clickhouse. + * + * Password to connect to DB2. + * + * Password to connect to Druid. + * + * Password to connect to Hive. + * + * Password to connect to Impala. + * + * Password to connect to MariaDB. + * + * Password to connect to MSSQL. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to Oracle. + * + * Password to connect to Presto. + * + * Password to connect to Redshift. + * + * Password to connect to the Salesforce. + * + * Password to connect to SingleStore. + * + * Password to connect to Snowflake. + * + * Password to connect to Vertica. + * + * password to connect to the PinotDB. + * + * Password to connect to MongoDB. + * + * Password to connect to Couchbase. + * + * Password to connect to Doris. + * + * Password to connect to SAS Viya + * + * Password to connect to Teradata. + * + * Password to connect to Azure Synapse. + * + * Password to connect to Exasol. + */ + password?: string; + /** + * Username to connect to AzureSQL. This user should have privileges to read the metadata. + * + * Username to connect to Clickhouse. This user should have privileges to read all the + * metadata in Clickhouse. + * + * Username to connect to DB2. This user should have privileges to read all the metadata in + * DB2. + * + * Username to connect to Druid. This user should have privileges to read all the metadata + * in Druid. + * + * Username to connect to Hive. This user should have privileges to read all the metadata in + * Hive. + * + * Username to connect to Impala. This user should have privileges to read all the metadata + * in Impala. + * + * Username to connect to MariaDB. This user should have privileges to read all the metadata + * in MariaDB. + * + * Username to connect to MSSQL. This user should have privileges to read all the metadata + * in MsSQL. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to Oracle. This user should have privileges to read all the metadata + * in Oracle. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to Presto. This user should have privileges to read all the metadata + * in Postgres. + * + * Username to connect to Redshift. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to the Salesforce. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to SingleStore. This user should have privileges to read all the + * metadata in MySQL. + * + * Username to connect to Snowflake. This user should have privileges to read all the + * metadata in Snowflake. + * + * Username to connect to Trino. This user should have privileges to read all the metadata + * in Trino. + * + * Username to connect to Vertica. This user should have privileges to read all the metadata + * in Vertica. + * + * username to connect to the PinotDB. This user should have privileges to read all the + * metadata in PinotDB. + * + * Username to connect to MongoDB. This user should have privileges to read all the metadata + * in MongoDB. + * + * Username to connect to Couchbase. This user should have privileges to read all the + * metadata in Couchbase. + * + * Username to connect to Greenplum. This user should have privileges to read all the + * metadata in Greenplum. + * + * Username to connect to Doris. This user should have privileges to read all the metadata + * in Doris. + * + * Username to connect to SAS Viya. + * + * Username to connect to Teradata. This user should have privileges to read all the + * metadata in Teradata. + * + * Username to connect to Azure Synapse. This user should have privileges to read all the + * metadata in Azure Synapse. + * + * Username to connect to Exasol. This user should have privileges to read all the metadata + * in Exasol. + */ + username?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + * + * Optional name to give to the schema in OpenMetadata. If left blank, we will use default + * as the schema name + */ + databaseSchema?: string; + /** + * Clickhouse SQL connection duration. + */ + duration?: number; + /** + * Use HTTPS Protocol for connection with clickhouse + */ + https?: boolean; + /** + * Path to key file for establishing secure connection + */ + keyfile?: string; + /** + * Establish secure connection with clickhouse + */ + secure?: boolean; + /** + * Catalog of the data source(Example: hive_metastore). This is optional parameter, if you + * would like to restrict the metadata reading to a single catalog. When left blank, + * OpenMetadata Ingestion attempts to scan all the catalog. + * + * Presto catalog + * + * Catalog of the data source. + */ + catalog?: IcebergCatalog | string; + /** + * The maximum amount of time (in seconds) to wait for a successful connection to the data + * source. If the connection attempt takes longer than this timeout period, an error will be + * returned. + */ + connectionTimeout?: number; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + /** + * Generated Token to connect to Databricks. + */ + token?: string; + supportsViewLineageExtraction?: boolean; + /** + * Available sources to fetch the metadata. + * + * Available sources to fetch files. + */ + configSource?: TaLakeConfigurationSource; + /** + * Authentication mode to connect to hive. + */ + auth?: AuthEnum; + /** + * Authentication options to pass to Hive connector. These options are based on SQLAlchemy. + * + * Authentication options to pass to Impala connector. These options are based on SQLAlchemy. + */ + authOptions?: string; + /** + * If authenticating with Kerberos specify the Kerberos service name + */ + kerberosServiceName?: string; + /** + * Hive Metastore Connection Details + */ + metastoreConnection?: HiveMetastoreConnectionDetails; + /** + * Authentication mode to connect to Impala. + */ + authMechanism?: AuthMechanismEnum; + /** + * Establish secure connection with Impala + */ + useSSL?: boolean; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType | NoConfigAuthenticationTypes; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * This directory will be used to set the LD_LIBRARY_PATH env variable. It is required if + * you need to enable thick connection mode. By default, we bring instant client 19 and + * point to /instantclient. + */ + instantClientDirectory?: string; + /** + * Connect with oracle by either passing service name or database schema name. + */ + oracleConnectionType?: OracleConnectionType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + sslMode?: SSLMode; + /** + * Protocol ( Connection Argument ) to connect to Presto. + */ + protocol?: string; + /** + * Verify ( Connection Argument for SSL ) to connect to Presto. + * + * Verify ( Connection Argument for SSL ) to connect to Trino. + */ + verify?: string; + /** + * Salesforce Organization ID is the unique identifier for your Salesforce identity + */ + organizationId?: string; + /** + * API version of the Salesforce instance + */ + salesforceApiVersion?: string; + /** + * Domain of Salesforce instance + */ + salesforceDomain?: string; + /** + * Salesforce Security Token. + */ + securityToken?: string; + /** + * Salesforce Object Name. + */ + sobjectName?: string; + /** + * If the Snowflake URL is https://xyz1234.us-east-1.gcp.snowflakecomputing.com, then the + * account is xyz1234.us-east-1.gcp + * + * Specifies an account string to override the default account string defined for the + * database user. Accounts are used by the database for workload management and resource + * usage monitoring. + */ + account?: string; + /** + * Optional configuration for ingestion to keep the client session active in case the + * ingestion process runs for longer durations. + */ + clientSessionKeepAlive?: boolean; + /** + * Optional configuration for ingestion of TRANSIENT tables, By default, it will skip the + * TRANSIENT tables. + */ + includeTransientTables?: boolean; + /** + * Connection to Snowflake instance via Private Key + */ + privateKey?: string; + /** + * Session query tag used to monitor usage on snowflake. To use a query tag snowflake user + * should have enough privileges to alter the session. + */ + queryTag?: string; + /** + * Snowflake Role. + */ + role?: string; + /** + * Snowflake Passphrase Key used with Private Key + */ + snowflakePrivatekeyPassphrase?: string; + /** + * Snowflake warehouse. + */ + warehouse?: string; + /** + * Proxies for the connection to Trino data source + */ + proxies?: { [key: string]: string }; + /** + * Pinot Controller Host and Port of the data source. + */ + pinotControllerHost?: string; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + /** + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + */ + clientId?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret Token to connect DOMO + */ + secretToken?: string; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Choose between Database connection or HDB User Store connection. + */ + connection?: SAPHanaConnection; + /** + * Couchbase connection Bucket options. + */ + bucket?: string; + /** + * Hostname of the Couchbase service. + */ + hostport?: string; + /** + * Enable dataflow for ingestion + */ + dataflows?: boolean; + /** + * Custom filter for dataflows + */ + dataflowsCustomFilter?: { [key: string]: any } | string; + /** + * Enable datatables for ingestion + */ + datatables?: boolean; + /** + * Custom filter for datatables + */ + dataTablesCustomFilter?: { [key: string]: any } | string; + /** + * Enable report for ingestion + */ + reports?: boolean; + /** + * Custom filter for reports + */ + reportsCustomFilter?: { [key: string]: any } | string; + /** + * Hostname of SAS Viya deployment. + */ + serverHost?: string; + /** + * Table property to look for the Owner. + */ + ownershipProperty?: string; + /** + * Specifies additional data needed by a logon mechanism, such as a secure token, + * Distinguished Name, or a domain/realm name. LOGDATA values are specific to each logon + * mechanism. + */ + logdata?: string; + /** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ + logmech?: Logmech; + /** + * Specifies the transaction mode for the connection + */ + tmode?: TransactionMode; + /** + * API key to authenticate with the SAP ERP APIs. + */ + apiKey?: string; + /** + * Pagination limit used while querying the SAP ERP API for fetching the entities + */ + paginationLimit?: number; + verifySSL?: VerifySSL; + /** + * Client SSL/TLS settings. + */ + tls?: SSLTLSSettings; +} + +/** + * Authentication mode to connect to hive. + */ +export enum AuthEnum { + Basic = "BASIC", + Custom = "CUSTOM", + Gssapi = "GSSAPI", + Jwt = "JWT", + Kerberos = "KERBEROS", + LDAP = "LDAP", + None = "NONE", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Authentication mode to connect to Impala. + */ +export enum AuthMechanismEnum { + Gssapi = "GSSAPI", + Jwt = "JWT", + LDAP = "LDAP", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; + /** + * JWT to connect to source. + */ + jwt?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Database Authentication types not requiring config. + */ +export enum NoConfigAuthenticationTypes { + OAuth2 = "OAuth2", +} + +export interface AuthenticationModeObject { + /** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ + authentication?: Authentication; + /** + * Connection Timeout from Connection String for AzureSQL. + * + * Connection Timeout from Connection String for Azure Synapse. + */ + connectionTimeout?: number; + /** + * Encrypt from Connection String for AzureSQL. + * + * Encrypt from Connection String for Azure Synapse. + */ + encrypt?: boolean; + /** + * Trust Server Certificate from Connection String for AzureSQL. + * + * Trust Server Certificate from Connection String for Azure Synapse. + */ + trustServerCertificate?: boolean; + [property: string]: any; +} + +/** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ +export enum Authentication { + ActiveDirectoryIntegrated = "ActiveDirectoryIntegrated", + ActiveDirectoryPassword = "ActiveDirectoryPassword", +} + +/** + * Iceberg Catalog configuration. + */ +export interface IcebergCatalog { + /** + * Catalog connection configuration, depending on your catalog type. + */ + connection: Connection; + /** + * Custom Database Name for your Iceberg Service. If not set it will be 'default'. + */ + databaseName?: string; + /** + * Catalog Name. + */ + name: string; + /** + * Warehouse Location. Used to specify a custom warehouse location if needed. + */ + warehouseLocation?: string; +} + +/** + * Catalog connection configuration, depending on your catalog type. + * + * Iceberg Hive Catalog configuration. + * + * Iceberg REST Catalog configuration. + * + * Iceberg Glue Catalog configuration. + * + * Iceberg DynamoDB Catalog configuration. + */ +export interface Connection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + * + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri?: string; + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + awsConfig?: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName?: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * Available sources to fetch the metadata. + * + * Deltalake Metastore configuration. + * + * DeltaLake Storage Connection Config + * + * Available sources to fetch files. + * + * Local config source where no extra information needs to be sent. + * + * Azure Datalake Storage will ingest files in container + * + * DataLake GCS storage will ingest metadata of files + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface TaLakeConfigurationSource { + /** + * pySpark App Name. + */ + appName?: string; + /** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + */ + connection?: ConnectionClass; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + securityConfig?: SecurityConfigClass; +} + +/** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface ConnectionClass { + /** + * Thrift connection to the metastore service. E.g., localhost:9083 + */ + metastoreHostPort?: string; + /** + * Driver class name for JDBC metastore. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionDriverName sparks property. E.g., + * org.mariadb.jdbc.Driver + */ + driverName?: string; + /** + * Class path to JDBC driver required for JDBC connection. The value will be mapped as + * spark.driver.extraClassPath sparks property. + */ + jdbcDriverClassPath?: string; + /** + * JDBC connection to the metastore database. E.g., jdbc:mysql://localhost:3306/demo_hive + */ + metastoreDb?: string; + /** + * Password to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionPassword sparks property. + */ + password?: string; + /** + * Username to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionUserName sparks property. + */ + username?: string; + /** + * Local path for the local file with metastore data. E.g., /tmp/metastore.db + */ + metastoreFilePath?: string; + securityConfig?: AWSCredentials; +} + +/** + * Azure Cloud Credentials + * + * GCP Credentials + * + * GCP credentials configs. + * + * AWS credentials configs. + */ +export interface SecurityConfigClass { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Choose between Database connection or HDB User Store connection. + * + * Sap Hana Database SQL Connection Config + * + * Sap Hana Database HDB User Store Connection Config + */ +export interface SAPHanaConnection { + /** + * Database of the data source. + */ + database?: string; + /** + * Database Schema of the data source. This is an optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Hana service. + */ + hostPort?: string; + /** + * Password to connect to Hana. + */ + password?: string; + /** + * Username to connect to Hana. This user should have privileges to read all the metadata. + */ + username?: string; + /** + * HDB Store User Key generated from the command `hdbuserstore SET + * ` + */ + userKey?: string; +} + +/** + * GCP Credentials + * + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ +export enum Logmech { + Custom = "CUSTOM", + Jwt = "JWT", + Krb5 = "KRB5", + LDAP = "LDAP", + Td2 = "TD2", + Tdnego = "TDNEGO", +} + +/** + * Hive Metastore Connection Details + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface HiveMetastoreConnectionDetails { + /** + * Choose Auth Config Type. + */ + authType?: HiveMetastoreConnectionDetailsAuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: HiveMetastoreConnectionDetailsScheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: HiveMetastoreConnectionDetailsType; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface HiveMetastoreConnectionDetailsAuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum HiveMetastoreConnectionDetailsScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum HiveMetastoreConnectionDetailsType { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * Connect with oracle by either passing service name or database schema name. + */ +export interface OracleConnectionType { + /** + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + */ + databaseSchema?: string; + /** + * The Oracle Service name is the TNS alias that you give when you remotely connect to your + * database. + */ + oracleServiceName?: string; + /** + * Pass the full constructed TNS string, e.g., + * (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1530)))(CONNECT_DATA=(SID=MYSERVICENAME))). + */ + oracleTNSConnection?: string; + [property: string]: any; +} + +/** + * SQLAlchemy driver scheme options. + * + * Mongo connection scheme options. + * + * Couchbase driver scheme options. + */ +export enum ConfigScheme { + AwsathenaREST = "awsathena+rest", + Bigquery = "bigquery", + ClickhouseHTTP = "clickhouse+http", + ClickhouseNative = "clickhouse+native", + Couchbase = "couchbase", + DatabricksConnector = "databricks+connector", + Db2IBMDB = "db2+ibm_db", + Doris = "doris", + Druid = "druid", + ExaWebsocket = "exa+websocket", + Hana = "hana", + Hive = "hive", + HiveHTTP = "hive+http", + HiveHTTPS = "hive+https", + Ibmi = "ibmi", + Impala = "impala", + Impala4 = "impala4", + Mongodb = "mongodb", + MongodbSrv = "mongodb+srv", + MssqlPymssql = "mssql+pymssql", + MssqlPyodbc = "mssql+pyodbc", + MssqlPytds = "mssql+pytds", + MysqlPymysql = "mysql+pymysql", + OracleCxOracle = "oracle+cx_oracle", + PgspiderPsycopg2 = "pgspider+psycopg2", + Pinot = "pinot", + PinotHTTP = "pinot+http", + PinotHTTPS = "pinot+https", + PostgresqlPsycopg2 = "postgresql+psycopg2", + Presto = "presto", + RedshiftPsycopg2 = "redshift+psycopg2", + Snowflake = "snowflake", + SqlitePysqlite = "sqlite+pysqlite", + Teradatasql = "teradatasql", + Trino = "trino", + VerticaVerticaPython = "vertica+vertica_python", +} + +/** + * Client SSL/TLS settings. + */ +export enum SSLTLSSettings { + DisableTLS = "disable-tls", + IgnoreCertificate = "ignore-certificate", + ValidateCertificate = "validate-certificate", +} + +/** + * Specifies the transaction mode for the connection + */ +export enum TransactionMode { + ANSI = "ANSI", + Default = "DEFAULT", + Tera = "TERA", +} + +/** + * Service Type + * + * Service type. + * + * service type + * + * Custom database service type + */ +export enum ConfigType { + Athena = "Athena", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDatabase = "CustomDatabase", + Databricks = "Databricks", + Datalake = "Datalake", + Db2 = "Db2", + DeltaLake = "DeltaLake", + DomoDatabase = "DomoDatabase", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + Exasol = "Exasol", + Glue = "Glue", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + MariaDB = "MariaDB", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + Presto = "Presto", + Redshift = "Redshift", + SAS = "SAS", + SQLite = "SQLite", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + SingleStore = "SingleStore", + Snowflake = "Snowflake", + Synapse = "Synapse", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + Vertica = "Vertica", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Owners of this database service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ +export enum DatabaseServiceType { + Athena = "Athena", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDatabase = "CustomDatabase", + Databricks = "Databricks", + Datalake = "Datalake", + Db2 = "Db2", + Dbt = "Dbt", + DeltaLake = "DeltaLake", + DomoDatabase = "DomoDatabase", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + Exasol = "Exasol", + Glue = "Glue", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + MariaDB = "MariaDB", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + Presto = "Presto", + QueryLog = "QueryLog", + Redshift = "Redshift", + SAS = "SAS", + SQLite = "SQLite", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + SingleStore = "SingleStore", + Snowflake = "Snowflake", + Synapse = "Synapse", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + Vertica = "Vertica", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMessagingService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMessagingService.ts new file mode 100644 index 000000000000..372df897090f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMessagingService.ts @@ -0,0 +1,395 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Messaging service entity request + */ +export interface CreateMessagingService { + connection?: MessagingConnection; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of messaging service entity. + */ + description?: string; + /** + * Display Name that identifies this messaging service. It could be title or label from the + * source services. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Messaging Service belongs to. + */ + domain?: string; + /** + * Name that identifies the this entity instance uniquely + */ + name: string; + /** + * Owners of this messaging service. + */ + owners?: EntityReference[]; + serviceType: MessagingServiceType; + /** + * Tags for this Messaging Service. + */ + tags?: TagLabel[]; +} + +/** + * Dashboard Connection. + */ +export interface MessagingConnection { + config?: Connection; +} + +/** + * Kafka Connection Config + * + * Redpanda Connection Config + * + * Kinesis Connection Config + * + * Custom Messaging Service Connection to build a source that is not supported by + * OpenMetadata yet. + */ +export interface Connection { + /** + * basic.auth.user.info schema registry config property, Client HTTP credentials in the form + * of username:password. + */ + basicAuthUserInfo?: string; + /** + * Kafka bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + * + * Redpanda bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + */ + bootstrapServers?: string; + /** + * Confluent Kafka Consumer Config. From + * https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md + * + * Confluent Redpanda Consumer Config + */ + consumerConfig?: { [key: string]: any }; + /** + * sasl.mechanism Consumer Config property + */ + saslMechanism?: SaslMechanismType; + /** + * sasl.password consumer config property + */ + saslPassword?: string; + /** + * sasl.username consumer config property + */ + saslUsername?: string; + /** + * Confluent Kafka Schema Registry Config. From + * https://docs.confluent.io/5.5.1/clients/confluent-kafka-python/index.html#confluent_kafka.schema_registry.SchemaRegistryClient + * + * Confluent Redpanda Schema Registry Config. + */ + schemaRegistryConfig?: { [key: string]: any }; + /** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + */ + schemaRegistrySSL?: Config; + /** + * Schema Registry Topic Suffix Name. The suffix to be appended to the topic name to get + * topic schema from registry. + */ + schemaRegistryTopicSuffixName?: string; + /** + * Confluent Kafka Schema Registry URL. + * + * Confluent Redpanda Schema Registry URL. + */ + schemaRegistryURL?: string; + /** + * security.protocol consumer config property + */ + securityProtocol?: SecurityProtocol; + supportsMetadataExtraction?: boolean; + /** + * Service Type + * + * Custom messaging service type + */ + type?: MessagingServiceType; + awsConfig?: AWSCredentials; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * sasl.mechanism Consumer Config property + * + * SASL Mechanism consumer config property + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * security.protocol consumer config property + */ +export enum SecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslPlaintext = "SASL_PLAINTEXT", + SaslSSL = "SASL_SSL", +} + +/** + * Service Type + * + * Kafka service type + * + * Redpanda service type + * + * Service type. + * + * Custom messaging service type + * + * Type of messaging service - Kafka or Pulsar. + */ +export enum MessagingServiceType { + CustomMessaging = "CustomMessaging", + Kafka = "Kafka", + Kinesis = "Kinesis", + Redpanda = "Redpanda", +} + +/** + * Owners of this messaging service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMetadataService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMetadataService.ts new file mode 100644 index 000000000000..7a2540be7cfd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMetadataService.ts @@ -0,0 +1,895 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Metadata Service entity request + */ +export interface CreateMetadataService { + connection?: MetadataConnection; + /** + * Description of Metadata entity. + */ + description?: string; + /** + * Display Name that identifies this Metadata service. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Name that identifies the this entity instance uniquely + */ + name: string; + /** + * Owners of this Metadata service. + */ + owners?: EntityReference[]; + serviceType: MetadataServiceType; + /** + * Tags for this Metadata Service. + */ + tags?: TagLabel[]; +} + +/** + * Metadata Service Connection. + */ +export interface MetadataConnection { + config?: Connection; +} + +/** + * Amundsen Connection Config + * + * Metadata to ElasticSearch Connection Config + * + * OpenMetadata Connection Config + * + * Atlas Connection Config + * + * Alation Connection Config + * + * Alation Sink Connection Config + */ +export interface Connection { + /** + * Enable encryption for the Amundsen Neo4j Connection. + */ + encrypted?: boolean; + /** + * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: + * bolt://localhost:7687. + * + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + * + * Host and port of the Atlas service. + * + * Host and port of the Alation service. + */ + hostPort?: string; + /** + * Maximum connection lifetime for the Amundsen Neo4j Connection. + */ + maxConnectionLifeTime?: number; + /** + * password to connect to the Amundsen Neo4j Connection. + * + * password to connect to the Atlas. + */ + password?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: MetadataServiceType; + /** + * username to connect to the Amundsen Neo4j Connection. + * + * username to connect to the Atlas. This user should have privileges to read all the + * metadata in Atlas. + */ + username?: string; + /** + * Enable SSL validation for the Amundsen Neo4j Connection. + */ + validateSSL?: boolean; + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * List of entities that you need to reindex + */ + entities?: string[]; + recreateIndex?: boolean; + runMode?: RunMode; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: Config; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: VerifySSL; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * service type of the data source. + */ + databaseServiceName?: string[]; + /** + * Name of the Entity Type available in Atlas. + */ + entity_type?: string; + /** + * service type of the messaging source + */ + messagingServiceName?: string[]; + /** + * Custom OpenMetadata Classification name for alation tags. + */ + alationTagClassificationName?: string; + /** + * Types of methods used to authenticate to the alation instance + */ + authType?: AuthenticationTypeForAlation; + /** + * Choose between mysql and postgres connection for alation database + */ + connection?: AlationDatabaseConnection; + /** + * Specifies if hidden datasources should be included while ingesting. + */ + includeHiddenDatasources?: boolean; + /** + * Specifies if undeployed datasources should be included while ingesting. + */ + includeUndeployedDatasources?: boolean; + /** + * Specifies if Dashboards are to be ingested while running the ingestion job. + */ + ingestDashboards?: boolean; + /** + * Specifies if Datasources are to be ingested while running the ingestion job. + */ + ingestDatasources?: boolean; + /** + * Specifies if Domains are to be ingested while running the ingestion job. + */ + ingestDomains?: boolean; + /** + * Specifies if Knowledge Articles are to be ingested while running the ingestion job. + */ + ingestKnowledgeArticles?: boolean; + /** + * Specifies if Users and Groups are to be ingested while running the ingestion job. + */ + ingestUsersAndGroups?: boolean; + /** + * Pagination limit used for Alation APIs pagination + */ + paginationLimit?: number; + /** + * Project name to create the refreshToken. Can be anything + */ + projectName?: string; + datasourceLinks?: { [key: string]: string }; +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Types of methods used to authenticate to the alation instance + * + * Basic Auth Credentials + * + * API Access Token Auth Credentials + */ +export interface AuthenticationTypeForAlation { + /** + * Password to access the service. + */ + password?: string; + /** + * Username to access the service. + */ + username?: string; + /** + * Access Token for the API + */ + accessToken?: string; +} + +/** + * Choose between mysql and postgres connection for alation database + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface AlationDatabaseConnection { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: Type; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * SSL Configuration for OpenMetadata Server + * + * Client SSL configuration + * + * SSL Configuration details. + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum Type { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * This schema publisher run modes. + */ +export enum RunMode { + Batch = "batch", + Stream = "stream", +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * Service Type + * + * Amundsen service type + * + * Metadata to Elastic Search type + * + * OpenMetadata service type + * + * Service type. + * + * Type of database service such as Amundsen, Atlas... + */ +export enum MetadataServiceType { + Alation = "Alation", + AlationSink = "AlationSink", + Amundsen = "Amundsen", + Atlas = "Atlas", + MetadataES = "MetadataES", + OpenMetadata = "OpenMetadata", +} + +/** + * Flag to verify SSL Certificate for OpenMetadata Server. + * + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Owners of this Metadata service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMlModelService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMlModelService.ts new file mode 100644 index 000000000000..983817105567 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createMlModelService.ts @@ -0,0 +1,422 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create MlModel service entity request + */ +export interface CreateMlModelService { + connection?: MlModelConnection; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of mlModel service entity. + */ + description?: string; + /** + * Display Name that identifies this mlModel service. + */ + displayName?: string; + /** + * Fully qualified name of the domain the MLModel Service belongs to. + */ + domain?: string; + /** + * Name that identifies the this entity instance uniquely + */ + name: string; + /** + * Owners of this mlModel service. + */ + owners?: EntityReference[]; + serviceType: MlModelServiceType; + /** + * Tags for this MlModel Service. + */ + tags?: TagLabel[]; +} + +/** + * MlModel Connection. + */ +export interface MlModelConnection { + config?: Connection; +} + +/** + * MlFlow Connection Config + * + * Sklearn Connection Config + * + * Custom MlModel Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * SageMaker Connection Config + * + * Google VertexAI Connection Config + */ +export interface Connection { + /** + * Mlflow Model registry backend. E.g., + * mysql+pymysql://mlflow:password@localhost:3307/experiments + */ + registryUri?: string; + supportsMetadataExtraction?: boolean; + /** + * Mlflow Experiment tracking URI. E.g., http://localhost:5000 + */ + trackingUri?: string; + /** + * Service Type + * + * Custom Ml model service type + */ + type?: MlModelServiceType; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + awsConfig?: AWSCredentials; + /** + * GCP Credentials + */ + credentials?: GCPCredentials; + /** + * location/region of google cloud project + */ + location?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * GCP Credentials + * + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * Service type. + * + * Custom Ml model service type + * + * Type of MlModel service + */ +export enum MlModelServiceType { + CustomMlModel = "CustomMlModel", + Mlflow = "Mlflow", + SageMaker = "SageMaker", + Sklearn = "Sklearn", + VertexAI = "VertexAI", +} + +/** + * Owners of this mlModel service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createPipelineService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createPipelineService.ts new file mode 100644 index 000000000000..58e1419594b0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createPipelineService.ts @@ -0,0 +1,971 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Pipeline service entity request + */ +export interface CreatePipelineService { + connection?: PipelineConnection; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of pipeline service entity. + */ + description?: string; + /** + * Display Name that identifies this pipeline service. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Pipeline Service belongs to. + */ + domain?: string; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies the this entity instance uniquely + */ + name: string; + /** + * Owners of this pipeline service. + */ + owners?: EntityReference[]; + /** + * Scheduler Interval for the pipeline in cron format. + */ + scheduleInterval?: string; + serviceType: PipelineServiceType; + /** + * Tags for this Pipeline Service. + */ + tags?: TagLabel[]; +} + +/** + * Pipeline Connection. + */ +export interface PipelineConnection { + config?: Connection; +} + +/** + * Airflow Metadata Database Connection Config + * + * Glue Pipeline Connection Config + * + * Airbyte Metadata Database Connection Config + * + * Fivetran Metadata Database Connection Config + * + * Flink Metadata Connection Config + * + * Dagster Metadata Database Connection Config + * + * Nifi Metadata Pipeline Connection Config + * + * Domo Pipeline Connection Config + * + * Custom Pipeline Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Databricks Connection Config + * + * Spline Metadata Database Connection Config + * + * Spark Metadata Pipeline Connection Config + * + * OpenLineage Connection Config + * + * KafkaConnect Connection Config + * + * DBTCloud Connection Config + * + * Matillion Connection + * + * Azure Data Factory Connection Config + * + * Stitch Connection + */ +export interface Connection { + /** + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Matillion Auth Configuration + */ + connection?: MetadataDatabaseConnection; + /** + * Pipeline Service Management/UI URI. + * + * Pipeline Service Management/UI URL. + * + * Host and port of the Databricks service. + * + * Spline REST Server Host & Port. + * + * KafkaConnect Service Management/UI URI. + * + * Host and port of the Stitch API host + */ + hostPort?: string; + /** + * Pipeline Service Number Of Status + */ + numberOfStatus?: number; + supportsMetadataExtraction?: boolean; + /** + * Service Type + * + * Custom pipeline service type + */ + type?: PipelineServiceType; + awsConfig?: AWSCredentials; + /** + * Password to connect to Airbyte. + */ + password?: string; + /** + * Username to connect to Airbyte. + */ + username?: string; + /** + * Fivetran API Secret. + */ + apiKey?: string; + /** + * Fivetran API Secret. + */ + apiSecret?: string; + /** + * Fivetran API Limit For Pagination. + */ + limit?: number; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + /** + * Boolean marking if we need to verify the SSL certs for KafkaConnect REST API. True by + * default. + */ + verifySSL?: boolean | VerifySSL; + /** + * URL to the Dagster instance + * + * DBT cloud Access URL. + */ + host?: string; + /** + * Connection Time Limit Between OM and Dagster Graphql API in second + */ + timeout?: number; + /** + * To Connect to Dagster Cloud + * + * Generated Token to connect to Databricks. + * + * Generated Token to connect to DBTCloud. + * + * Token to connect to Stitch api doc + */ + token?: string; + /** + * We support username/password or client certificate authentication + */ + nifiConfig?: NifiCredentialsConfiguration; + /** + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + */ + clientId?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret token to connect to DOMO + */ + secretToken?: string; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + connectionArguments?: { [key: string]: any }; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + /** + * Spline UI Host & Port. + */ + uiHostPort?: string; + /** + * service type of the messaging source + */ + brokersUrl?: string; + /** + * consumer group name + */ + consumerGroupName?: string; + /** + * initial Kafka consumer offset + */ + consumerOffsets?: InitialConsumerOffsets; + /** + * max allowed wait time + */ + poolTimeout?: number; + /** + * SASL Configuration details. + */ + saslConfig?: SASLClientConfig; + /** + * Kafka security protocol config + */ + securityProtocol?: KafkaSecurityProtocol; + /** + * max allowed inactivity time + */ + sessionTimeout?: number; + /** + * topic from where Open lineage events will be pulled + */ + topicName?: string; + /** + * We support username/password or No Authentication + */ + KafkaConnectConfig?: UsernamePasswordAuthentication; + /** + * Name of the Kafka Messaging Service associated with this KafkaConnect Pipeline Service. + * e.g. local_kafka + */ + messagingServiceName?: string; + /** + * ID of your DBT cloud account + */ + accountId?: string; + /** + * DBT cloud Metadata API URL. + */ + discoveryAPI?: string; + /** + * List of IDs of your DBT cloud jobs seperated by comma `,` + */ + jobIds?: string[]; + /** + * List of IDs of your DBT cloud projects seperated by comma `,` + */ + projectIds?: string[]; + /** + * Available sources to fetch metadata. + */ + configSource?: AzureCredentials; + /** + * The name of your azure data factory. + */ + factory_name?: string; + /** + * The name of your resource group the data factory is associated with. + */ + resource_group_name?: string; + /** + * Number of days in the past to filter pipeline runs. + */ + run_filter_days?: number; + /** + * The azure subscription identifier. + */ + subscription_id?: string; +} + +/** + * We support username/password or No Authentication + * + * username/password auth + */ +export interface UsernamePasswordAuthentication { + /** + * KafkaConnect password to authenticate to the API. + */ + password?: string; + /** + * KafkaConnect user to authenticate to the API. + */ + username?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Lineage Backend Connection Config + * + * Mysql Database Connection Config + * + * Postgres Database Connection Config + * + * SQLite Database Connection Config + * + * Matillion Auth Configuration + * + * Matillion ETL Auth Config + */ +export interface MetadataDatabaseConnection { + /** + * Service Type + */ + type?: Type; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the MySQL service. + * + * Host and port of the source service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Matillion Host + */ + hostPort?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to the Matillion. This user should have privileges to read all the + * metadata in Matillion. + */ + username?: string; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sslMode?: SSLMode; + supportsDatabase?: boolean; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to the Matillion. + */ + password?: string; + supportsViewLineageExtraction?: boolean; + [property: string]: any; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", + SqlitePysqlite = "sqlite+pysqlite", +} + +/** + * SSL Configuration details. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum Type { + Backend = "Backend", + MatillionETL = "MatillionETL", + Mysql = "Mysql", + Postgres = "Postgres", + SQLite = "SQLite", +} + +/** + * initial Kafka consumer offset + */ +export enum InitialConsumerOffsets { + Earliest = "earliest", + Latest = "latest", +} + +/** + * We support username/password or client certificate authentication + * + * username/password auth + * + * client certificate auth + */ +export interface NifiCredentialsConfiguration { + /** + * Nifi password to authenticate to the API. + */ + password?: string; + /** + * Nifi user to authenticate to the API. + */ + username?: string; + /** + * Boolean marking if we need to verify the SSL certs for Nifi. False by default. + */ + verifySSL?: boolean; + /** + * Path to the root CA certificate + */ + certificateAuthorityPath?: string; + /** + * Path to the client certificate + */ + clientCertificatePath?: string; + /** + * Path to the client key + */ + clientkeyPath?: string; +} + +/** + * SASL Configuration details. + * + * SASL client configuration. + */ +export interface SASLClientConfig { + /** + * SASL security mechanism + */ + saslMechanism?: SaslMechanismType; + /** + * The SASL authentication password. + */ + saslPassword?: string; + /** + * The SASL authentication username. + */ + saslUsername?: string; +} + +/** + * SASL security mechanism + * + * SASL Mechanism consumer config property + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Kafka security protocol config + */ +export enum KafkaSecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslSSL = "SASL_SSL", +} + +/** + * Service Type + * + * Service type. + * + * Custom pipeline service type + * + * Type of pipeline service - Airflow or Prefect. + */ +export enum PipelineServiceType { + Airbyte = "Airbyte", + Airflow = "Airflow", + CustomPipeline = "CustomPipeline", + DBTCloud = "DBTCloud", + Dagster = "Dagster", + DataFactory = "DataFactory", + DatabricksPipeline = "DatabricksPipeline", + DomoPipeline = "DomoPipeline", + Fivetran = "Fivetran", + Flink = "Flink", + GluePipeline = "GluePipeline", + KafkaConnect = "KafkaConnect", + Matillion = "Matillion", + Nifi = "Nifi", + OpenLineage = "OpenLineage", + Spark = "Spark", + Spline = "Spline", + Stitch = "Stitch", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this pipeline service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createSearchService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createSearchService.ts new file mode 100644 index 000000000000..75d062c0ce6b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createSearchService.ts @@ -0,0 +1,363 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Search Service entity request + */ +export interface CreateSearchService { + connection?: SearchConnection; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of search service entity. + */ + description?: string; + /** + * Display Name that identifies this search service. It could be title or label from the + * source services. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Search Service belongs to. + */ + domain?: string; + /** + * Name that identifies the this entity instance uniquely + */ + name: string; + /** + * Owners of this search service. + */ + owners?: EntityReference[]; + serviceType: SearchServiceType; + /** + * Tags for this Search Service. + */ + tags?: TagLabel[]; +} + +/** + * search Connection. + */ +export interface SearchConnection { + config?: ConfigClass; +} + +/** + * ElasticSearch Connection. + * + * OpenSearch Connection. + * + * Custom Search Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface ConfigClass { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + connectionArguments?: { [key: string]: any }; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Host and port of the ElasticSearch service. + * + * Host and port of the OpenSearch service. + */ + hostPort?: string; + sslConfig?: SSLConfig; + supportsMetadataExtraction?: boolean; + /** + * ElasticSearch Type + * + * Service Type + * + * Custom search service type + */ + type?: SearchServiceType; + connectionOptions?: { [key: string]: string }; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * OpenSearch Password for Login + */ + password?: string; + /** + * Http/Https connection scheme + */ + scheme?: string; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs?: number; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; + /** + * OpenSearch Username for Login + */ + username?: string; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; +} + +/** + * Choose Auth Config Type. + * + * Basic Auth Configuration for ElasticSearch + * + * API Key Authentication for ElasticSearch + */ +export interface AuthConfigurationType { + /** + * Elastic Search Password for Login + */ + password?: string; + /** + * Elastic Search Username for Login + */ + username?: string; + /** + * Elastic Search API Key for API Authentication + */ + apiKey?: string; + /** + * Elastic Search API Key ID for API Authentication + */ + apiKeyId?: string; +} + +/** + * SSL Config + */ +export interface SSLConfig { + /** + * SSL Certificates + */ + certificates?: SSLCertificates; + [property: string]: any; +} + +/** + * SSL Certificates + * + * SSL Certificates By Path + * + * SSL Certificates By Values + */ +export interface SSLCertificates { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} + +/** + * ElasticSearch Type + * + * ElasticSearch service type + * + * Service Type + * + * OpenSearch service type + * + * Custom search service type + * + * Type of search service such as ElasticSearch or OpenSearch. + */ +export enum SearchServiceType { + CustomSearch = "CustomSearch", + ElasticSearch = "ElasticSearch", + OpenSearch = "OpenSearch", +} + +/** + * Owners of this search service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createStorageService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createStorageService.ts new file mode 100644 index 000000000000..e360f2f04ed1 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/createStorageService.ts @@ -0,0 +1,446 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Storage Service entity request + */ +export interface CreateStorageService { + connection?: StorageConnection; + /** + * List of fully qualified names of data products this entity is part of. + */ + dataProducts?: string[]; + /** + * Description of storage service entity. + */ + description?: string; + /** + * Display Name that identifies this storage service. It could be title or label from the + * source services. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Storage Service belongs to. + */ + domain?: string; + /** + * Name that identifies the this entity instance uniquely + */ + name: string; + /** + * Owners of this object store service. + */ + owners?: EntityReference[]; + serviceType: StorageServiceType; + /** + * Tags for this Object Store Service. + */ + tags?: TagLabel[]; +} + +/** + * Storage Connection. + */ +export interface StorageConnection { + config?: Connection; +} + +/** + * S3 Connection. + * + * ADLS Connection. + * + * GCS Connection. + * + * Custom Storage Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface Connection { + awsConfig?: AWSCredentials; + /** + * Bucket Names of the data source. + */ + bucketNames?: string[]; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + supportsMetadataExtraction?: boolean; + /** + * Service Type + * + * Custom storage service type + */ + type?: StorageServiceType; + /** + * Azure Credentials + * + * GCP Credentials + */ + credentials?: Credentials; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Credentials + * + * Azure Cloud Credentials + * + * GCP Credentials + * + * GCP credentials configs. + */ +export interface Credentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * S3 service type + * + * ADLS service type + * + * Gcs service type + * + * Custom storage service type + * + * Type of storage service such as S3, GFS, AZURE... + */ +export enum StorageServiceType { + Adls = "ADLS", + CustomStorage = "CustomStorage", + Gcs = "GCS", + S3 = "S3", +} + +/** + * Owners of this object store service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts new file mode 100644 index 000000000000..1b9144621e04 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/services/ingestionPipelines/createIngestionPipeline.ts @@ -0,0 +1,1566 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Ingestion Pipeline Config is used to set up an Airflow DAG. + */ +export interface CreateIngestionPipeline { + airflowConfig: AirflowConfig; + /** + * Description of the pipeline. + */ + description?: string; + /** + * Display Name that identifies this ingestion pipeline. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Set the logging level for the workflow. + */ + loggerLevel?: LogLevels; + /** + * Name that identifies this pipeline instance uniquely. + */ + name: string; + /** + * Owner of this Ingestion Pipeline. + */ + owners?: EntityReference[]; + pipelineType: PipelineType; + /** + * Link to the service for which ingestion pipeline is ingesting the metadata. + */ + service: EntityReference; + sourceConfig: SourceConfig; +} + +/** + * Properties to configure the Airflow pipeline that will run the workflow. + */ +export interface AirflowConfig { + /** + * Concurrency of the Pipeline. + */ + concurrency?: number; + /** + * Email to notify workflow status. + */ + email?: string; + /** + * End Date of the pipeline. + */ + endDate?: Date; + /** + * Maximum Number of active runs. + */ + maxActiveRuns?: number; + /** + * pause the pipeline from running once the deploy is finished successfully. + */ + pausePipeline?: boolean; + /** + * Run past executions if the start date is in the past. + */ + pipelineCatchup?: boolean; + /** + * Timezone in which pipeline going to be scheduled. + */ + pipelineTimezone?: string; + /** + * Retry pipeline in case of failure. + */ + retries?: number; + /** + * Delay between retries in seconds. + */ + retryDelay?: number; + /** + * Scheduler Interval for the pipeline in cron format. + */ + scheduleInterval?: string; + /** + * Start date of the pipeline. + */ + startDate?: Date; + /** + * Default view in Airflow. + */ + workflowDefaultView?: string; + /** + * Default view Orientation in Airflow. + */ + workflowDefaultViewOrientation?: string; + /** + * Timeout for the workflow in seconds. + */ + workflowTimeout?: number; +} + +/** + * Set the logging level for the workflow. + * + * Supported logging levels + */ +export enum LogLevels { + Debug = "DEBUG", + Error = "ERROR", + Info = "INFO", + Warn = "WARN", +} + +/** + * Owner of this Ingestion Pipeline. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Link to the service for which ingestion pipeline is ingesting the metadata. + * + * Domain to apply + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of Pipeline - metadata, usage + */ +export enum PipelineType { + Application = "application", + AutoClassification = "autoClassification", + DataInsight = "dataInsight", + Dbt = "dbt", + ElasticSearchReindex = "elasticSearchReindex", + Lineage = "lineage", + Metadata = "metadata", + Profiler = "profiler", + TestSuite = "TestSuite", + Usage = "usage", +} + +/** + * Additional connection configuration. + */ +export interface SourceConfig { + config?: Pipeline; +} + +/** + * DatabaseService Metadata Pipeline Configuration. + * + * DatabaseService Query Usage Pipeline Configuration. + * + * DatabaseService Query Lineage Pipeline Configuration. + * + * DashboardService Metadata Pipeline Configuration. + * + * MessagingService Metadata Pipeline Configuration. + * + * DatabaseService Profiler Pipeline Configuration. + * + * DatabaseService AutoClassification & Auto Classification Pipeline Configuration. + * + * PipelineService Metadata Pipeline Configuration. + * + * MlModelService Metadata Pipeline Configuration. + * + * StorageService Metadata Pipeline Configuration. + * + * SearchService Metadata Pipeline Configuration. + * + * TestSuite Pipeline Configuration. + * + * Data Insight Pipeline Configuration. + * + * DBT Pipeline Configuration. + * + * Application Pipeline Configuration. + * + * ApiService Metadata Pipeline Configuration. + */ +export interface Pipeline { + /** + * Regex to only fetch databases that matches the pattern. + */ + databaseFilterPattern?: FilterPattern; + /** + * Optional configuration to toggle the DDL Statements ingestion. + */ + includeDDL?: boolean; + /** + * Set the 'Include Owners' toggle to control whether to include owners to the ingested + * entity if the owner email matches with a user stored in the OM server as part of metadata + * ingestion. If the ingested entity already exists and has an owner, the owner will not be + * overwritten. + * + * Enabling a flag will replace the current owner with a new owner from the source during + * metadata ingestion, if the current owner is null. It is recommended to keep the flag + * enabled to obtain the owner information during the first metadata ingestion. + */ + includeOwners?: boolean; + /** + * Optional configuration to toggle the Stored Procedures ingestion. + */ + includeStoredProcedures?: boolean; + /** + * Optional configuration to turn off fetching metadata for tables. + */ + includeTables?: boolean; + /** + * Optional configuration to toggle the tags ingestion. + */ + includeTags?: boolean; + /** + * Optional configuration to turn off fetching metadata for views. + */ + includeViews?: boolean; + /** + * Use incremental Metadata extraction after the first execution. This is commonly done by + * getting the changes from Audit tables on the supporting databases. + */ + incremental?: IncrementalMetadataExtractionConfiguration; + /** + * Optional configuration to soft delete stored procedures in OpenMetadata if the source + * stored procedures are deleted. Also, if the stored procedures is deleted, all the + * associated entities like lineage, etc., with that stored procedures will be deleted + */ + markDeletedStoredProcedures?: boolean; + /** + * This is an optional configuration for enabling soft deletion of tables. When this option + * is enabled, only tables that have been deleted from the source will be soft deleted, and + * this will apply solely to the schema that is currently being ingested via the pipeline. + * Any related entities such as test suites or lineage information that were associated with + * those tables will also be deleted. + */ + markDeletedTables?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * Configuration to tune how far we want to look back in query logs to process Stored + * Procedures results. + * + * Configuration to tune how far we want to look back in query logs to process usage data. + * + * Configuration to tune how far we want to look back in query logs to process lineage data. + */ + queryLogDuration?: number; + /** + * Configuration to set the timeout for parsing the query in seconds. + */ + queryParsingTimeoutLimit?: number; + /** + * Regex to only fetch tables or databases that matches the pattern. + */ + schemaFilterPattern?: FilterPattern; + /** + * Regex exclude tables or databases that matches the pattern. + */ + tableFilterPattern?: FilterPattern; + /** + * Number of Threads to use in order to parallelize Table ingestion. + * + * Number of Threads to use in order to parallelize lineage ingestion. + */ + threads?: number; + /** + * Pipeline type + */ + type?: ConfigType; + /** + * Regex will be applied on fully qualified name (e.g + * service_name.db_name.schema_name.table_name) instead of raw name (e.g. table_name) + */ + useFqnForFiltering?: boolean; + /** + * Configuration the condition to filter the query history. + */ + filterCondition?: string; + /** + * Configuration to set the file path for query logs + */ + queryLogFilePath?: string; + /** + * Configuration to set the limit for query logs + */ + resultLimit?: number; + /** + * Temporary file name to store the query logs before processing. Absolute file path + * required. + */ + stageFileLocation?: string; + /** + * Set the 'Override View Lineage' toggle to control whether to override the existing view + * lineage. + */ + overrideViewLineage?: boolean; + /** + * Configuration to set the timeout for parsing the query in seconds. + */ + parsingTimeoutLimit?: number; + /** + * Set the 'Process Query Lineage' toggle to control whether to process query lineage. + */ + processQueryLineage?: boolean; + /** + * Set the 'Process Stored ProcedureLog Lineage' toggle to control whether to process stored + * procedure lineage. + */ + processStoredProcedureLineage?: boolean; + /** + * Set the 'Process View Lineage' toggle to control whether to process view lineage. + */ + processViewLineage?: boolean; + /** + * Regex exclude or include charts that matches the pattern. + */ + chartFilterPattern?: FilterPattern; + /** + * Regex to exclude or include dashboards that matches the pattern. + */ + dashboardFilterPattern?: FilterPattern; + /** + * Regex exclude or include data models that matches the pattern. + */ + dataModelFilterPattern?: FilterPattern; + /** + * Optional configuration to toggle the ingestion of data models. + */ + includeDataModels?: boolean; + /** + * Optional Configuration to include/exclude draft dashboards. By default it will include + * draft dashboards + */ + includeDraftDashboard?: boolean; + /** + * Details required to generate Lineage + */ + lineageInformation?: LineageInformation; + /** + * Optional configuration to soft delete dashboards in OpenMetadata if the source dashboards + * are deleted. Also, if the dashboard is deleted, all the associated entities like lineage, + * etc., with that dashboard will be deleted + */ + markDeletedDashboards?: boolean; + /** + * Optional configuration to soft delete data models in OpenMetadata if the source data + * models are deleted. Also, if the data models is deleted, all the associated entities like + * lineage, etc., with that data models will be deleted + */ + markDeletedDataModels?: boolean; + /** + * Set the 'Override Lineage' toggle to control whether to override the existing lineage. + */ + overrideLineage?: boolean; + /** + * Regex to exclude or include projects that matches the pattern. + */ + projectFilterPattern?: FilterPattern; + /** + * Option to turn on/off generating sample data during metadata extraction. + */ + generateSampleData?: boolean; + /** + * Optional configuration to soft delete topics in OpenMetadata if the source topics are + * deleted. Also, if the topic is deleted, all the associated entities like sample data, + * lineage, etc., with that topic will be deleted + */ + markDeletedTopics?: boolean; + /** + * Regex to only fetch topics that matches the pattern. + */ + topicFilterPattern?: FilterPattern; + /** + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + */ + classificationFilterPattern?: FilterPattern; + /** + * Option to turn on/off column metric computation. If enabled, profiler will compute column + * level metrics. + */ + computeColumnMetrics?: boolean; + /** + * Option to turn on/off computing profiler metrics. + */ + computeMetrics?: boolean; + /** + * Option to turn on/off table metric computation. If enabled, profiler will compute table + * level metrics. + */ + computeTableMetrics?: boolean; + /** + * Percentage of data or no. of rows used to compute the profiler metrics and run data + * quality tests + * + * Percentage of data or no. of rows we want to execute the profiler and tests on + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * Number of sample rows to ingest when 'Generate Sample Data' is enabled + */ + sampleDataCount?: number; + samplingMethodType?: SamplingMethodType; + /** + * Number of threads to use during metric computations + */ + threadCount?: number; + /** + * Profiler Timeout in Seconds + */ + timeoutSeconds?: number; + /** + * Use system tables to extract metrics. Metrics that cannot be gathered from system tables + * will use the default methods. Using system tables can be faster but requires gathering + * statistics before running (for example using the ANALYZE procedure). More information can + * be found in the documentation: https://docs.openmetadata.org/latest/profler + */ + useStatistics?: boolean; + /** + * Set the Confidence value for which you want the column to be tagged as PII. Confidence + * value ranges from 0 to 100. A higher number will yield less false positives but more + * false negatives. A lower number will yield more false positives but less false negatives. + */ + confidence?: number; + /** + * Optional configuration to automatically tag columns that might contain sensitive + * information + */ + enableAutoClassification?: boolean; + /** + * Option to turn on/off storing sample data. If enabled, we will ingest sample data for + * each table. + */ + storeSampleData?: boolean; + /** + * Optional configuration to turn off fetching lineage from pipelines. + */ + includeLineage?: boolean; + /** + * Optional configuration to toggle whether the un-deployed pipelines should be ingested or + * not. If set to false, only deployed pipelines will be ingested. + */ + includeUnDeployedPipelines?: boolean; + /** + * Optional configuration to soft delete Pipelines in OpenMetadata if the source Pipelines + * are deleted. Also, if the Pipeline is deleted, all the associated entities like lineage, + * etc., with that Pipeline will be deleted + */ + markDeletedPipelines?: boolean; + /** + * Regex exclude pipelines. + */ + pipelineFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete MlModels in OpenMetadata if the source MlModels are + * deleted. Also, if the MlModel is deleted, all the associated entities like lineage, etc., + * with that MlModels will be deleted + */ + markDeletedMlModels?: boolean; + /** + * Regex to only fetch MlModels with names matching the pattern. + */ + mlModelFilterPattern?: FilterPattern; + /** + * Regex to only fetch containers that matches the pattern. + */ + containerFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete containers in OpenMetadata if the source containers + * are deleted. Also, if the topic is deleted, all the associated entities with that + * containers will be deleted + */ + markDeletedContainers?: boolean; + storageMetadataConfigSource?: StorageMetadataConfigurationSource; + /** + * Enable the 'Include Index Template' toggle to manage the ingestion of index template data. + */ + includeIndexTemplate?: boolean; + /** + * Optional configuration to turn off fetching sample data for search index. + */ + includeSampleData?: boolean; + /** + * Optional configuration to soft delete search indexes in OpenMetadata if the source search + * indexes are deleted. Also, if the search index is deleted, all the associated entities + * like lineage, etc., with that search index will be deleted + */ + markDeletedSearchIndexes?: boolean; + /** + * No. of records of sample data we want to ingest. + */ + sampleSize?: number; + /** + * Regex to only fetch search indexes that matches the pattern. + */ + searchIndexFilterPattern?: FilterPattern; + /** + * Fully qualified name of the entity to be tested. + */ + entityFullyQualifiedName?: string; + /** + * List of test cases to be executed on the entity. If null, all test cases will be executed. + */ + testCases?: string[]; + /** + * Maximum number of events entities in a batch (Default 1000). + */ + batchSize?: number; + /** + * Certificate path to be added in configuration. The path should be local in the Ingestion + * Container. + */ + caCerts?: string; + recreateIndex?: boolean; + /** + * Region name. Required when using AWS Credentials. + */ + regionName?: string; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Connection Timeout + */ + timeout?: number; + /** + * Indicates whether to use aws credentials when connecting to OpenSearch in AWS. + */ + useAwsCredentials?: boolean; + /** + * Indicates whether to use SSL when connecting to ElasticSearch. By default, we will ignore + * SSL settings. + */ + useSSL?: boolean; + /** + * Indicates whether to verify certificates when using SSL connection to ElasticSearch. + * Ignored by default. Is set to true, make sure to send the certificates in the property + * `CA Certificates`. + */ + verifyCerts?: boolean; + /** + * Custom OpenMetadata Classification name for dbt tags. + */ + dbtClassificationName?: string; + /** + * Available sources to fetch DBT catalog and manifest files. + */ + dbtConfigSource?: DBTConfigurationSource; + /** + * Optional configuration to update the description from DBT or not + */ + dbtUpdateDescriptions?: boolean; + /** + * Application configuration + */ + appConfig?: any[] | boolean | CollateAIAppConfig | number | null | string; + /** + * Application private configuration + */ + appPrivateConfig?: PrivateConfig; + /** + * Source Python Class Name to run the application + */ + sourcePythonClass?: string; + /** + * Regex to only fetch api collections with names matching the pattern. + */ + apiCollectionFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete api collections in OpenMetadata if the source + * collections are deleted. Also, if the collection is deleted, all the associated entities + * like endpoints, etc., with that collection will be deleted + */ + markDeletedApiCollections?: boolean; +} + +/** + * Regex to only fetch databases that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + * + * Regex to only fetch tables or databases that matches the pattern. + * + * Regex exclude tables or databases that matches the pattern. + * + * Regex exclude or include charts that matches the pattern. + * + * Regex to exclude or include dashboards that matches the pattern. + * + * Regex exclude or include data models that matches the pattern. + * + * Regex to exclude or include projects that matches the pattern. + * + * Regex to only fetch topics that matches the pattern. + * + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + * + * Regex exclude pipelines. + * + * Regex to only fetch MlModels with names matching the pattern. + * + * Regex to only fetch containers that matches the pattern. + * + * Regex to only fetch search indexes that matches the pattern. + * + * Regex to only fetch api collections with names matching the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Configuration for the CollateAI External Application. + * + * Configuration for the Automator External Application. + * + * No configuration needed to instantiate the Data Insights Pipeline. The logic is handled + * in the backend. + * + * Search Indexing App. + * + * This schema defines the Slack App Token Configuration + */ +export interface CollateAIAppConfig { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + filter?: string; + /** + * Patch the description if it is empty, instead of raising a suggestion + */ + patchIfEmpty?: boolean; + /** + * Application Type + */ + type?: Type; + /** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + */ + actions?: Action[]; + /** + * Entities selected to run the automation. + */ + resources?: Resource; + backfillConfiguration?: BackfillConfiguration; + /** + * Maximum number of events processed at a time (Default 100). + * + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Recreates the DataAssets index on DataInsights. Useful if you changed a Custom Property + * Type and are facing errors. Bear in mind that recreating the index will delete your + * DataAssets and a backfill will be needed. + */ + recreateDataAssetsIndex?: boolean; + sendToAdmins?: boolean; + sendToTeams?: boolean; + /** + * Number of threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Maximum number of events sent in a batch (Default 100). + */ + payLoadSize?: number; + /** + * Number of threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to user internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Bot Token + */ + botToken?: string; + /** + * User Token + */ + userToken?: string; +} + +/** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + * + * Apply Tags to the selected assets. + * + * Remove Tags Action Type + * + * Add an owner to the selected assets. + * + * Remove Owner Action Type + * + * Add owners to the selected assets. + * + * Propagate description, tags and glossary terms via lineage + * + * ML Tagging action configuration for external automator. + */ +export interface Action { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + * + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + * + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + * + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + * + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + * + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + * + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + * + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + * + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + * + * Tags to remove + */ + tags?: TagLabel[]; + /** + * Application Type + */ + type: ActionType; + /** + * Domain to apply + */ + domain?: EntityReference; + /** + * Description to apply + */ + description?: string; + /** + * tier to apply + */ + tier?: TagLabel; + /** + * Owners to apply + */ + owners?: EntityReference[]; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + * + * tier to apply + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + * + * Remove Tags Action Type. + * + * Add Owner Action Type. + * + * Remove Domain Action Type + * + * Add Description Action Type. + * + * Remove Description Action Type + * + * Add Tier Action Type. + * + * Remove Tier Action Type + * + * Remove Owner Action Type + * + * Lineage propagation action type. + * + * ML PII Tagging action type. + */ +export enum ActionType { + AddDescriptionAction = "AddDescriptionAction", + AddDomainAction = "AddDomainAction", + AddOwnerAction = "AddOwnerAction", + AddTagsAction = "AddTagsAction", + AddTierAction = "AddTierAction", + LineagePropagationAction = "LineagePropagationAction", + MLTaggingAction = "MLTaggingAction", + RemoveDescriptionAction = "RemoveDescriptionAction", + RemoveDomainAction = "RemoveDomainAction", + RemoveOwnerAction = "RemoveOwnerAction", + RemoveTagsAction = "RemoveTagsAction", + RemoveTierAction = "RemoveTierAction", +} + +/** + * Backfill Configuration + */ +export interface BackfillConfiguration { + /** + * Enable Backfill for the configured dates + */ + enabled?: boolean; + /** + * Date for which the backfill will end + */ + endDate?: Date; + /** + * Date from which to start the backfill + */ + startDate?: Date; + [property: string]: any; +} + +/** + * Entities selected to run the automation. + */ +export interface Resource { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + queryFilter?: string; + /** + * Type of the entity. E.g., 'table', 'chart',... + */ + type?: string[]; + [property: string]: any; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Application Type + * + * Application type. + */ +export enum Type { + Automator = "Automator", + CollateAI = "CollateAI", + DataInsights = "DataInsights", + DataInsightsReport = "DataInsightsReport", + SearchIndexing = "SearchIndexing", +} + +/** + * Application private configuration + * + * PRivate Configuration for the CollateAI External Application. + */ +export interface PrivateConfig { + /** + * Collate Server public URL. WAII will use this information to interact with the server. + * E.g., https://sandbox.getcollate.io + */ + collateURL: string; + /** + * Limits for the CollateAI Application. + */ + limits: CollateAILimits; + /** + * WAII API Token + */ + token: string; + /** + * WAII API host URL + */ + waiiInstance: string; +} + +/** + * Limits for the CollateAI Application. + */ +export interface CollateAILimits { + /** + * Start of the billing cycle. + */ + billingCycleStart?: Date; + /** + * Maximum number of descriptions generated by the CollateAI + */ + descriptions?: number; + /** + * Maximum number of queries generated by CollateAI. + */ + queries?: number; + [property: string]: any; +} + +/** + * Available sources to fetch DBT catalog and manifest files. + * + * dbt Cloud configuration. + * + * DBT Catalog, Manifest and Run Results file path config. + * + * DBT Catalog, Manifest and Run Results HTTP path configuration. + * + * DBT Catalog, Manifest and Run Results files in S3 bucket. We will search for + * catalog.json, manifest.json and run_results.json. + * + * DBT Catalog, Manifest and Run Results files in GCS storage. We will search for + * catalog.json, manifest.json and run_results.json. + * + * DBT Catalog, Manifest and Run Results files in Azure bucket. We will search for + * catalog.json, manifest.json and run_results.json. + */ +export interface DBTConfigurationSource { + /** + * dbt cloud account Id + */ + dbtCloudAccountId?: string; + /** + * dbt cloud account authentication token + */ + dbtCloudAuthToken?: string; + /** + * dbt cloud job id. + */ + dbtCloudJobId?: string; + /** + * In case of multiple projects in a dbt cloud account, specify the project's id from which + * you want to extract the dbt run artifacts + */ + dbtCloudProjectId?: string; + /** + * URL to connect to your dbt cloud instance. E.g., https://cloud.getdbt.com or + * https://emea.dbt.com/ + */ + dbtCloudUrl?: string; + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigType; + /** + * DBT catalog file path to extract dbt models with their column schemas. + */ + dbtCatalogFilePath?: string; + /** + * DBT manifest file path to extract dbt models and associate with tables. + */ + dbtManifestFilePath?: string; + /** + * DBT run results file path to extract the test results information. + */ + dbtRunResultsFilePath?: string; + /** + * DBT sources file path to extract the freshness test result. + */ + dbtSourcesFilePath?: string; + /** + * DBT catalog http file path to extract dbt models with their column schemas. + */ + dbtCatalogHttpPath?: string; + /** + * DBT manifest http file path to extract dbt models and associate with tables. + */ + dbtManifestHttpPath?: string; + /** + * DBT run results http file path to extract the test results information. + */ + dbtRunResultsHttpPath?: string; + /** + * DBT sources http file path to extract freshness test results information. + */ + dbtSourcesHttpPath?: string; + /** + * Details of the bucket where the dbt files are stored + */ + dbtPrefixConfig?: DBTPrefixConfig; + dbtSecurityConfig?: Credentials; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigType { + Azure = "azure", + Cloud = "cloud", + Gcs = "gcs", + HTTP = "http", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the dbt files are stored + */ +export interface DBTPrefixConfig { + /** + * Name of the bucket where the dbt files are stored + */ + dbtBucketName?: string; + /** + * Path of the folder where the dbt files are stored + */ + dbtObjectPrefix?: string; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + * + * GCP credentials configs. + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Use incremental Metadata extraction after the first execution. This is commonly done by + * getting the changes from Audit tables on the supporting databases. + */ +export interface IncrementalMetadataExtractionConfiguration { + /** + * If True, enables Metadata Extraction to be incremental + */ + enabled: boolean; + /** + * Number os days to search back for a successful pipeline run. The timestamp of the last + * found successful pipeline run will be used as a base to search for updated entities. + */ + lookbackDays?: number; + /** + * Number of days to add to the last successful pipeline run timestamp to search for updated + * entities. + */ + safetyMarginDays?: number; +} + +/** + * Details required to generate Lineage + */ +export interface LineageInformation { + /** + * List of Database Service Names for creation of lineage + */ + dbServiceNames?: string[]; + /** + * List of Storage Service Names for creation of lineage + */ + storageServiceNames?: string[]; + [property: string]: any; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * No manifest file available. Ingestion would look for bucket-level metadata file instead + * + * Storage Metadata Manifest file path config. + * + * Storage Metadata Manifest file HTTP path config. + * + * Storage Metadata Manifest file S3 path config. + * + * Storage Metadata Manifest file ADLS path config. + * + * Storage Metadata Manifest file GCS path config. + */ +export interface StorageMetadataConfigurationSource { + /** + * Storage Metadata manifest file path to extract locations to ingest from. + */ + manifestFilePath?: string; + /** + * Storage Metadata manifest http file path to extract locations to ingest from. + */ + manifestHttpPath?: string; + prefixConfig?: StorageMetadataBucketDetails; + securityConfig?: Credentials; +} + +/** + * Details of the bucket where the storage metadata manifest file is stored + */ +export interface StorageMetadataBucketDetails { + /** + * Name of the top level container where the storage metadata file is stored + */ + containerName: string; + /** + * Path of the folder where the storage metadata file is stored. If the file is at the root, + * you can keep it empty. + */ + objectPrefix?: string; +} + +/** + * Pipeline type + * + * Database Source Config Metadata Pipeline type + * + * Database Source Config Usage Pipeline type + * + * Dashboard Source Config Metadata Pipeline type + * + * Messaging Source Config Metadata Pipeline type + * + * Profiler Source Config Pipeline type + * + * Pipeline Source Config Metadata Pipeline type + * + * MlModel Source Config Metadata Pipeline type + * + * Object Store Source Config Metadata Pipeline type + * + * Search Source Config Metadata Pipeline type + * + * DBT Config Pipeline type + * + * Pipeline Source Config For Application Pipeline type. Nothing is required. + * + * Api Source Config Metadata Pipeline type + */ +export enum ConfigType { + APIMetadata = "ApiMetadata", + Application = "Application", + AutoClassification = "AutoClassification", + DashboardMetadata = "DashboardMetadata", + DataInsight = "dataInsight", + DatabaseLineage = "DatabaseLineage", + DatabaseMetadata = "DatabaseMetadata", + DatabaseUsage = "DatabaseUsage", + Dbt = "DBT", + MessagingMetadata = "MessagingMetadata", + MetadataToElasticSearch = "MetadataToElasticSearch", + MlModelMetadata = "MlModelMetadata", + PipelineMetadata = "PipelineMetadata", + Profiler = "Profiler", + SearchMetadata = "SearchMetadata", + StorageMetadata = "StorageMetadata", + TestSuite = "TestSuite", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/setOwner.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/setOwner.ts new file mode 100644 index 000000000000..b065f7f1aa95 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/setOwner.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Set ownership for a given entity + */ +export interface SetOwner { + /** + * Id of the owner of the entity + */ + id?: string; + /** + * Entity type of the owner typically either 'user' or 'team' + */ + type?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createPersona.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createPersona.ts new file mode 100644 index 000000000000..0b1468b2cb4f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createPersona.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Persona entity + */ +export interface CreatePersona { + /** + * Optional description of the team. + */ + description?: string; + /** + * Optional name used for display purposes. Example 'Data Steward'. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + name: string; + /** + * Optional IDs of users that are going to assign a Persona. + */ + users?: string[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createRole.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createRole.ts new file mode 100644 index 000000000000..5ff6bda04dcf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createRole.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Request for creating a Role entity + */ +export interface CreateRole { + /** + * Optional description of the role + */ + description?: string; + /** + * Optional name used for display purposes. Example 'Data Consumer' + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + name: string; + /** + * Policies that is attached to this role. At least one policy is required. + */ + policies: string[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createTeam.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createTeam.ts new file mode 100644 index 000000000000..a1bf316a2b08 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createTeam.ts @@ -0,0 +1,231 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Team entity + */ +export interface CreateTeam { + /** + * Children teams. An `Organization` can have `BusinessUnit`, `Division` or `Department` as + * children. A `BusinessUnit` can have `BusinessUnit`, `Division`, or `Department` as + * children. A `Division` can have `Division` or `Department` as children. A `Department` + * can have `Department` as children. + */ + children?: string[]; + /** + * Roles to be assigned to all users that are part of this team. + */ + defaultRoles?: string[]; + /** + * Optional description of the team. + */ + description?: string; + /** + * Optional name used for display purposes. Example 'Marketing Team'. + */ + displayName?: string; + /** + * Domains the team belongs to. + */ + domains?: string[]; + /** + * Email address of the team. + */ + email?: string; + /** + * Can any user join this team during sign up? Value of true indicates yes, and false no. + */ + isJoinable?: boolean; + name: string; + /** + * Owners sof this team. + */ + owners?: EntityReference[]; + /** + * Parent teams. For an `Organization` the `parent` is always null. A `BusinessUnit` always + * has only one parent of type `BusinessUnit` or an `Organization`. A `Division` can have + * multiple parents of type `BusinessUnit` or `Division`. A `Department` can have multiple + * parents of type `Division` or `Department`. + */ + parents?: string[]; + /** + * Policies that is attached to this team. + */ + policies?: string[]; + /** + * Optional team profile information. + */ + profile?: Profile; + /** + * Team type + */ + teamType: TeamType; + /** + * Optional IDs of users that are part of the team. + */ + users?: string[]; +} + +/** + * Owners sof this team. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Optional team profile information. + * + * This schema defines the type for a profile of a user, team, or organization. + */ +export interface Profile { + images?: ImageList; + subscription?: MessagingProvider; +} + +/** + * Links to a list of images of varying resolutions/sizes. + */ +export interface ImageList { + image?: string; + image192?: string; + image24?: string; + image32?: string; + image48?: string; + image512?: string; + image72?: string; +} + +/** + * Holds the Subscription Config for different types + */ +export interface MessagingProvider { + gChat?: Webhook; + generic?: Webhook; + msTeams?: Webhook; + slack?: Webhook; +} + +/** + * This schema defines webhook for receiving events from OpenMetadata. + */ +export interface Webhook { + /** + * Endpoint to receive the webhook events over POST requests. + */ + endpoint?: string; + /** + * Custom headers to be sent with the webhook request. + */ + headers?: { [key: string]: any }; + /** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ + httpMethod?: HTTPMethod; + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Secret set by the webhook client used for computing HMAC SHA256 signature of webhook + * payload and sent in `X-OM-Signature` header in POST requests to publish the events. + */ + secretKey?: string; + /** + * Send the Event to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Event to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Event to Owners + */ + sendToOwners?: boolean; +} + +/** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ +export enum HTTPMethod { + Post = "POST", + Put = "PUT", +} + +/** + * Team type + * + * Organization is the highest level entity. An Organization has one of more Business Units, + * Division, Departments, Group, or Users. A Business Unit has one or more Divisions, + * Departments, Group, or Users. A Division has one or more Divisions, Departments, Group, + * or Users. A Department has one or more Departments, Group, or Users. A Group has only + * Users + */ +export enum TeamType { + BusinessUnit = "BusinessUnit", + Department = "Department", + Division = "Division", + Group = "Group", + Organization = "Organization", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createUser.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createUser.ts new file mode 100644 index 000000000000..e09a042810ef --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/teams/createUser.ts @@ -0,0 +1,501 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Request to create User entity + */ +export interface CreateUser { + /** + * Authentication mechanism specified + */ + authenticationMechanism?: AuthenticationMechanism; + /** + * User bot name if we want to associate this bot with an specific bot + */ + botName?: string; + /** + * Confirm Password for User + */ + confirmPassword?: string; + /** + * User Password Method + */ + createPasswordType?: CreatePasswordType; + /** + * Default Persona from User's Personas. + */ + defaultPersona?: EntityReference; + /** + * Used for user biography. + */ + description?: string; + /** + * Name used for display purposes. Example 'FirstName LastName' + */ + displayName?: string; + /** + * Domains the User belongs to. + */ + domains?: string[]; + email: string; + /** + * When true indicates user is an administrator for the system with superuser privileges + */ + isAdmin?: boolean; + /** + * When true indicates user is a bot with appropriate privileges + */ + isBot?: boolean; + name: string; + /** + * Password for User + */ + password?: string; + /** + * Persona that the user belongs to. + */ + personas?: EntityReference[]; + /** + * Profile of the user. + */ + profile?: Profile; + /** + * Roles that the user has been assigned + */ + roles?: string[]; + /** + * Teams that the user belongs to + */ + teams?: string[]; + /** + * Timezone of the user + */ + timezone?: string; +} + +/** + * Authentication mechanism specified + * + * User/Bot Authentication Mechanism. + */ +export interface AuthenticationMechanism { + authType?: AuthType; + config?: AuthMechanism; +} + +export enum AuthType { + Basic = "BASIC", + Jwt = "JWT", + Sso = "SSO", +} + +/** + * User/Bot SSOAuthN. + * + * User/Bot JWTAuthMechanism. + * + * User basic Auth Mechanism. + */ +export interface AuthMechanism { + /** + * The authentication configuration used by the SSO + */ + authConfig?: SsoClientConfig; + /** + * Type of database service such as Amundsen, Atlas... + */ + ssoServiceType?: SsoServiceType; + /** + * JWT Auth Token. + */ + JWTToken?: string; + /** + * JWT Auth Token expiration time. + */ + JWTTokenExpiresAt?: number; + JWTTokenExpiry?: JWTTokenExpiry; + /** + * User Password + */ + password?: string; +} + +/** + * JWT Auth Token expiration in days + */ +export enum JWTTokenExpiry { + OneHour = "OneHour", + The1 = "1", + The30 = "30", + The60 = "60", + The7 = "7", + The90 = "90", + Unlimited = "Unlimited", +} + +/** + * The authentication configuration used by the SSO + * + * Google SSO Configuration + * + * Google SSO client security configs. + * + * Okta SSO Configuration + * + * Okta SSO client security configs. + * + * Auth0 SSO Configuration + * + * Auth0 SSO client security configs. + * + * Azure SSO Configuration + * + * Azure SSO Client security config to connect to OpenMetadata. + * + * Custom OIDC SSO Configuration + * + * Custom OIDC SSO client security configs. + * + * SAML SSO Configuration + * + * SAML SSO client security configs. + */ +export interface SsoClientConfig { + /** + * Google SSO audience URL + */ + audience?: string; + /** + * Google SSO client secret key path or contents. + * + * Auth0 Client Secret Key. + * + * Custom OIDC Client Secret Key. + */ + secretKey?: string; + /** + * Okta Client ID. + * + * Auth0 Client ID. + * + * Azure Client ID. + * + * Custom OIDC Client ID. + */ + clientId?: string; + /** + * Okta Service account Email. + */ + email?: string; + /** + * Okta org url. + */ + orgURL?: string; + /** + * Okta Private Key. + */ + privateKey?: string; + /** + * Okta client scopes. + * + * Azure Client ID. + */ + scopes?: string[]; + /** + * Auth0 Domain. + */ + domain?: string; + /** + * Azure SSO Authority + */ + authority?: string; + /** + * Azure SSO client secret key + */ + clientSecret?: string; + /** + * Custom OIDC token endpoint. + */ + tokenEndpoint?: string; + /** + * Get logs from the Library in debug mode + */ + debugMode?: boolean; + idp?: Idp; + security?: Security; + sp?: SP; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface Idp { + /** + * Authority URL to redirect the users on Sign In page + */ + authorityUrl?: string; + /** + * Identity Provider Entity ID usually same as the SSO login URL. + */ + entityId: string; + /** + * X509 Certificate + */ + idpX509Certificate?: string; + /** + * Authority URL to redirect the users on Sign In page + */ + nameId?: string; + /** + * SSO Login URL. + */ + ssoLoginUrl: string; +} + +/** + * This schema defines defines the security config for SAML. + */ +export interface Security { + /** + * KeyStore Alias + */ + keyStoreAlias?: string; + /** + * KeyStore File Path + */ + keyStoreFilePath?: string; + /** + * KeyStore Password + */ + keyStorePassword?: string; + /** + * Encrypt Name Id while sending requests from SP. + */ + sendEncryptedNameId?: boolean; + /** + * Sign the Authn Request while sending. + */ + sendSignedAuthRequest?: boolean; + /** + * Want the Metadata of this SP to be signed. + */ + signSpMetadata?: boolean; + /** + * Only accept valid signed and encrypted assertions if the relevant flags are set + */ + strictMode?: boolean; + /** + * Validity for the JWT Token created from SAML Response + */ + tokenValidity?: number; + /** + * In case of strict mode whether to validate XML format. + */ + validateXml?: boolean; + /** + * SP requires the assertion received to be encrypted. + */ + wantAssertionEncrypted?: boolean; + /** + * SP requires the assertions received to be signed. + */ + wantAssertionsSigned?: boolean; + /** + * SP requires the messages received to be signed. + */ + wantMessagesSigned?: boolean; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface SP { + /** + * Assertion Consumer URL. + */ + acs: string; + /** + * Service Provider Entity ID usually same as the SSO login URL. + */ + callback: string; + /** + * Service Provider Entity ID. + */ + entityId: string; + /** + * Sp Private Key for Signing and Encryption Only + */ + spPrivateKey?: string; + /** + * X509 Certificate + */ + spX509Certificate?: string; +} + +/** + * Type of database service such as Amundsen, Atlas... + */ +export enum SsoServiceType { + Auth0 = "auth0", + Azure = "azure", + CustomOidc = "custom-oidc", + Google = "google", + Okta = "okta", +} + +/** + * User Password Method + */ +export enum CreatePasswordType { + AdminCreate = "ADMIN_CREATE", + UserCreate = "USER_CREATE", +} + +/** + * Default Persona from User's Personas. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Persona that the user belongs to. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Profile of the user. + * + * This schema defines the type for a profile of a user, team, or organization. + */ +export interface Profile { + images?: ImageList; + subscription?: MessagingProvider; +} + +/** + * Links to a list of images of varying resolutions/sizes. + */ +export interface ImageList { + image?: string; + image192?: string; + image24?: string; + image32?: string; + image48?: string; + image512?: string; + image72?: string; +} + +/** + * Holds the Subscription Config for different types + */ +export interface MessagingProvider { + gChat?: Webhook; + generic?: Webhook; + msTeams?: Webhook; + slack?: Webhook; +} + +/** + * This schema defines webhook for receiving events from OpenMetadata. + */ +export interface Webhook { + /** + * Endpoint to receive the webhook events over POST requests. + */ + endpoint?: string; + /** + * Custom headers to be sent with the webhook request. + */ + headers?: { [key: string]: any }; + /** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ + httpMethod?: HTTPMethod; + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Secret set by the webhook client used for computing HMAC SHA256 signature of webhook + * payload and sent in `X-OM-Signature` header in POST requests to publish the events. + */ + secretKey?: string; + /** + * Send the Event to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Event to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Event to Owners + */ + sendToOwners?: boolean; +} + +/** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ +export enum HTTPMethod { + Post = "POST", + Put = "PUT", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createCustomMetric.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createCustomMetric.ts new file mode 100644 index 000000000000..09e1460fddac --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createCustomMetric.ts @@ -0,0 +1,104 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom Metric definition that we will associate with a column. + */ +export interface CreateCustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the custom metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Pipeline. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Owners of this Pipeline. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createLogicalTestCases.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createLogicalTestCases.ts new file mode 100644 index 000000000000..3438066ae49f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createLogicalTestCases.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Object used to create logical test cases. + */ +export interface CreateLogicalTestCases { + /** + * Ids of the test cases to create. + */ + testCaseIds: string[]; + /** + * TestSuite ID where we will be adding the test cases. + */ + testSuiteId: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCase.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCase.ts new file mode 100644 index 000000000000..40aad5d76dea --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCase.ts @@ -0,0 +1,125 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Test is a test definition to capture data quality tests. + */ +export interface CreateTestCase { + /** + * Compute the passed and failed row count for the test case. + */ + computePassedFailedRowCount?: boolean; + /** + * Description of the testcase. + */ + description?: string; + /** + * Display Name that identifies this test. + */ + displayName?: string; + entityLink: string; + /** + * Name that identifies this test case. + */ + name: string; + /** + * Owners of this test + */ + owners?: EntityReference[]; + parameterValues?: TestCaseParameterValue[]; + /** + * Fully qualified name of the test definition. + */ + testDefinition: string; + /** + * Fully qualified name of the testSuite + */ + testSuite: string; + /** + * If the test definition supports it, use dynamic assertion to evaluate the test case. + */ + useDynamicAssertion?: boolean; +} + +/** + * Owners of this test + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the parameter values that can be passed for a Test Case. + */ +export interface TestCaseParameterValue { + /** + * name of the parameter. Must match the parameter names in testCaseParameterDefinition + */ + name?: string; + /** + * value to be passed for the Parameters. These are input from Users. We capture this in + * string and convert during the runtime. + */ + value?: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResolutionStatus.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResolutionStatus.ts new file mode 100644 index 000000000000..c3af51af4b17 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResolutionStatus.ts @@ -0,0 +1,152 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema to create a new test case result resolution status. + */ +export interface CreateTestCaseResolutionStatus { + /** + * Severity failure for the test associated with the resolution. + */ + severity?: Severities; + /** + * Test case reference FQN + */ + testCaseReference: string; + /** + * Details of the test case failure status. + */ + testCaseResolutionStatusDetails?: Resolved; + /** + * Status of Test Case. + */ + testCaseResolutionStatusType: TestCaseResolutionStatusTypes; +} + +/** + * Severity failure for the test associated with the resolution. + * + * Test case resolution status type. + */ +export enum Severities { + Severity1 = "Severity1", + Severity2 = "Severity2", + Severity3 = "Severity3", + Severity4 = "Severity4", + Severity5 = "Severity5", +} + +/** + * Details of the test case failure status. + * + * test case failure details for resolved failures + * + * test case failure details for assigned failures + */ +export interface Resolved { + /** + * User who resolved the test case failure. + */ + resolvedBy?: EntityReference; + /** + * Test case failure resolution comment. + */ + testCaseFailureComment?: string; + /** + * Reason of Test Case resolution. + */ + testCaseFailureReason?: TestCaseFailureReasonType; + /** + * User working on failure resolution. + */ + assignee?: EntityReference; +} + +/** + * User who resolved the test case failure. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * User working on failure resolution. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Reason of Test Case resolution. + * + * Reason of Test Case initial failure. + */ +export enum TestCaseFailureReasonType { + Duplicates = "Duplicates", + FalsePositive = "FalsePositive", + MissingData = "MissingData", + Other = "Other", + OutOfBounds = "OutOfBounds", +} + +/** + * Status of Test Case. + * + * Test case resolution status type. + */ +export enum TestCaseResolutionStatusTypes { + ACK = "Ack", + Assigned = "Assigned", + New = "New", + Resolved = "Resolved", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResult.ts new file mode 100644 index 000000000000..935d7418da3e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestCaseResult.ts @@ -0,0 +1,94 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema to create a new test case result . + */ +export interface CreateTestCaseResult { + /** + * Number of rows that failed. + */ + failedRows?: number; + /** + * Percentage of rows that failed. + */ + failedRowsPercentage?: number; + /** + * Incident State ID associated with this result. This association happens when the result + * is created, and will stay there even when the incident is resolved. + */ + incidentId?: string; + /** + * Upper bound limit for the test case result as defined in the test definition. + */ + maxBound?: number; + /** + * Lower bound limit for the test case result as defined in the test definition. + */ + minBound?: number; + /** + * Number of rows that passed. + */ + passedRows?: number; + /** + * Percentage of rows that passed. + */ + passedRowsPercentage?: number; + /** + * Details of test case results. + */ + result?: string; + /** + * sample data to capture rows/columns that didn't match the expressed testcase. + */ + sampleData?: string; + /** + * Status of Test Case run. + */ + testCaseStatus: TestCaseStatus; + testResultValue: TestResultValue[]; + /** + * Data one which test case result is taken. + */ + timestamp: number; +} + +/** + * Status of Test Case run. + */ +export enum TestCaseStatus { + Aborted = "Aborted", + Failed = "Failed", + Queued = "Queued", + Success = "Success", +} + +/** + * Schema to capture test case result values. + */ +export interface TestResultValue { + /** + * name of the value + */ + name?: string; + /** + * predicted value + */ + predictedValue?: string; + /** + * test result value + */ + value?: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestDefinition.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestDefinition.ts new file mode 100644 index 000000000000..c136f6c570b6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestDefinition.ts @@ -0,0 +1,298 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema corresponding to a Test Definition + */ +export interface CreateTestDefinition { + /** + * Description of the testcase. + */ + description: string; + /** + * Display Name that identifies this test case. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + entityType: EntityType; + /** + * Name that identifies this test case. + */ + name: string; + /** + * Owners of this TestCase definition. + */ + owners?: EntityReference[]; + parameterDefinition?: TestCaseParameterDefinition[]; + provider?: ProviderType; + supportedDataTypes?: DataType[]; + testPlatforms: TestPlatform[]; +} + +/** + * This enum defines the type for which this test definition applies to. + */ +export enum EntityType { + Column = "COLUMN", + Table = "TABLE", +} + +/** + * Owners of this TestCase definition. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the parameters that can be passed for a Test Case. + */ +export interface TestCaseParameterDefinition { + /** + * Data type of the parameter (int, date etc.). + */ + dataType?: TestDataType; + /** + * Description of the parameter. + */ + description?: string; + /** + * Display Name that identifies this parameter name. + */ + displayName?: string; + /** + * name of the parameter. + */ + name?: string; + /** + * List of values that can be passed for this parameter. + */ + optionValues?: any[]; + /** + * Is this parameter required. + */ + required?: boolean; + /** + * Validation for the test parameter value. + */ + validationRule?: ValidationRule; + [property: string]: any; +} + +/** + * Data type of the parameter (int, date etc.). + * + * This enum defines the type of data stored in a column. + */ +export enum TestDataType { + Array = "ARRAY", + Boolean = "BOOLEAN", + Date = "DATE", + Datetime = "DATETIME", + Decimal = "DECIMAL", + Double = "DOUBLE", + Float = "FLOAT", + Int = "INT", + Map = "MAP", + Number = "NUMBER", + Set = "SET", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", +} + +/** + * Validation for the test parameter value. + */ +export interface ValidationRule { + /** + * Name of the parameter to validate against. + */ + parameterField?: string; + /** + * This enum defines the type to use for a parameter validation rule. + */ + rule?: Rule; + [property: string]: any; +} + +/** + * This enum defines the type to use for a parameter validation rule. + */ +export enum Rule { + Equals = "EQUALS", + GreaterThanOrEquals = "GREATER_THAN_OR_EQUALS", + LessThanOrEquals = "LESS_THAN_OR_EQUALS", + NotEquals = "NOT_EQUALS", +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * This enum defines the type of data stored in a column. + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * This schema defines the platform where tests are defined and ran. + */ +export enum TestPlatform { + Dbt = "DBT", + Deequ = "Deequ", + GreatExpectations = "GreatExpectations", + OpenMetadata = "OpenMetadata", + Other = "Other", + Soda = "Soda", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestSuite.ts b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestSuite.ts new file mode 100644 index 000000000000..975616f8bc3f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/api/tests/createTestSuite.ts @@ -0,0 +1,191 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema corresponding to a Test Suite + */ +export interface CreateTestSuite { + /** + * Description of the test suite. + */ + description?: string; + /** + * Display Name that identifies this test suite. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * FQN of the entity the test suite is executed against. Only applicable for executable test + * suites. + */ + executableEntityReference?: string; + /** + * Name that identifies this test suite. + */ + name: string; + /** + * Owners of this test suite + */ + owners?: EntityReference[]; + /** + * Tags for this TestSuite + */ + tags?: TagLabel[]; +} + +/** + * Owners of this test suite + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/basicAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/basicAuth.ts new file mode 100644 index 000000000000..8e581c7833cc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/basicAuth.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * User basic Auth Mechanism. + */ +export interface BasicAuth { + /** + * User Password + */ + password: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/basicLoginRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/basicLoginRequest.ts new file mode 100644 index 000000000000..1617723bec01 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/basicLoginRequest.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Login Request + */ +export interface BasicLoginRequest { + /** + * Email address of the user. + */ + email: string; + /** + * Name of the column in a table. + */ + password: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/changePasswordRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/changePasswordRequest.ts new file mode 100644 index 000000000000..aed0c52c7a82 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/changePasswordRequest.ts @@ -0,0 +1,47 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Change Password Request + */ +export interface ChangePasswordRequest { + /** + * Name of the column in a table. + */ + confirmPassword: string; + /** + * Name of the column in a table. + */ + newPassword: string; + /** + * Name that identifies this Custom Metric. + */ + oldPassword?: string; + /** + * Name of the column in a table. + */ + requestType?: RequestType; + /** + * Name of the user + */ + username?: string; +} + +/** + * Name of the column in a table. + */ +export enum RequestType { + Self = "SELF", + User = "USER", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/createPersonalToken.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/createPersonalToken.ts new file mode 100644 index 000000000000..ac99caff4cc2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/createPersonalToken.ts @@ -0,0 +1,37 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Create Personal Access Token Request + */ +export interface CreatePersonalToken { + JWTTokenExpiry: JWTTokenExpiry; + /** + * Name of the Personal Access Token + */ + tokenName: string; +} + +/** + * JWT Auth Token expiration in days + */ +export enum JWTTokenExpiry { + OneHour = "OneHour", + The1 = "1", + The30 = "30", + The60 = "60", + The7 = "7", + The90 = "90", + Unlimited = "Unlimited", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/emailRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/emailRequest.ts new file mode 100644 index 000000000000..d38ddc334409 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/emailRequest.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Email Request containing only Email + */ +export interface EmailRequest { + /** + * Login Email + */ + email: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/generateToken.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/generateToken.ts new file mode 100644 index 000000000000..23a1fbcdd793 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/generateToken.ts @@ -0,0 +1,33 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Generate JWT Token Request. + */ +export interface GenerateToken { + JWTTokenExpiry: JWTTokenExpiry; +} + +/** + * JWT Auth Token expiration in days + */ +export enum JWTTokenExpiry { + OneHour = "OneHour", + The1 = "1", + The30 = "30", + The60 = "60", + The7 = "7", + The90 = "90", + Unlimited = "Unlimited", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/jwtAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/jwtAuth.ts new file mode 100644 index 000000000000..df465164a543 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/jwtAuth.ts @@ -0,0 +1,41 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * User/Bot JWTAuthMechanism. + */ +export interface JwtAuth { + /** + * JWT Auth Token. + */ + JWTToken?: string; + /** + * JWT Auth Token expiration time. + */ + JWTTokenExpiresAt?: number; + JWTTokenExpiry: JWTTokenExpiry; +} + +/** + * JWT Auth Token expiration in days + */ +export enum JWTTokenExpiry { + OneHour = "OneHour", + The1 = "1", + The30 = "30", + The60 = "60", + The7 = "7", + The90 = "90", + Unlimited = "Unlimited", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/loginRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/loginRequest.ts new file mode 100644 index 000000000000..251ed3034a31 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/loginRequest.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Email Verification Token Schema. + */ +export interface LoginRequest { + /** + * Login Email + */ + email: string; + /** + * Login Password in base64 format + */ + password: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/logoutRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/logoutRequest.ts new file mode 100644 index 000000000000..cdf73c1940b8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/logoutRequest.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Logout Request. + */ +export interface LogoutRequest { + /** + * Logout Time + */ + logoutTime?: Date; + /** + * Refresh Token + */ + refreshToken?: string; + /** + * Token To be Expired + */ + token: string; + /** + * Logout Username + */ + username?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/passwordResetRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/passwordResetRequest.ts new file mode 100644 index 000000000000..8bc351840278 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/passwordResetRequest.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Email Verification Token Schema. + */ +export interface PasswordResetRequest { + /** + * Confirm Password + */ + confirmPassword?: string; + /** + * Password + */ + password?: string; + /** + * Token + */ + token?: string; + /** + * UserName + */ + username: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/passwordResetToken.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/passwordResetToken.ts new file mode 100644 index 000000000000..b462a9ec38d3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/passwordResetToken.ts @@ -0,0 +1,55 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Password Verification Token Schema. + */ +export interface PasswordResetToken { + /** + * Expiry Date-Time of the token + */ + expiryDate: number; + /** + * Expiry Date-Time of the token + */ + isActive?: boolean; + /** + * Expiry Date-Time of the token + */ + isClaimed?: boolean; + /** + * Unique Refresh Token for user + */ + token: string; + /** + * Token Type + */ + tokenType?: TokenType; + /** + * User Id of the User this refresh token is given to + */ + userId: string; +} + +/** + * Token Type + * + * Different Type of User token + */ +export enum TokenType { + EmailVerification = "EMAIL_VERIFICATION", + PasswordReset = "PASSWORD_RESET", + PersonalAccessToken = "PERSONAL_ACCESS_TOKEN", + RefreshToken = "REFRESH_TOKEN", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/personalAccessToken.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/personalAccessToken.ts new file mode 100644 index 000000000000..63e843974ae4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/personalAccessToken.ts @@ -0,0 +1,55 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Personal Access Token Schema. + */ +export interface PersonalAccessToken { + /** + * Expiry Date-Time of the token + */ + expiryDate: number; + /** + * JWT Auth Token. + */ + jwtToken?: string; + /** + * Unique Refresh Token for user + */ + token: string; + /** + * Name of the token + */ + tokenName?: string; + /** + * Token Type + */ + tokenType?: TokenType; + /** + * User Id of the User this refresh token is given to + */ + userId: string; +} + +/** + * Token Type + * + * Different Type of User token + */ +export enum TokenType { + EmailVerification = "EMAIL_VERIFICATION", + PasswordReset = "PASSWORD_RESET", + PersonalAccessToken = "PERSONAL_ACCESS_TOKEN", + RefreshToken = "REFRESH_TOKEN", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/refreshToken.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/refreshToken.ts new file mode 100644 index 000000000000..e33f6925c3af --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/refreshToken.ts @@ -0,0 +1,55 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Refresh Token Schema. + */ +export interface RefreshToken { + /** + * Expiry Date-Time of the token + */ + expiryDate: number; + /** + * Refresh Count + */ + maxRefreshCount?: number; + /** + * Refresh Count + */ + refreshCount?: number; + /** + * Unique Refresh Token for user + */ + token: string; + /** + * Token Type + */ + tokenType?: TokenType; + /** + * User Id of the User this refresh token is given to + */ + userId: string; +} + +/** + * Token Type + * + * Different Type of User token + */ +export enum TokenType { + EmailVerification = "EMAIL_VERIFICATION", + PasswordReset = "PASSWORD_RESET", + PersonalAccessToken = "PERSONAL_ACCESS_TOKEN", + RefreshToken = "REFRESH_TOKEN", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/registrationRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/registrationRequest.ts new file mode 100644 index 000000000000..f79208905329 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/registrationRequest.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the SMTP Settings for sending Email + */ +export interface RegistrationRequest { + /** + * Email address of the user. + */ + email: string; + /** + * First Name + */ + firstName: string; + /** + * Last Name + */ + lastName: string; + /** + * Login Password + */ + password: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/revokePersonalToken.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/revokePersonalToken.ts new file mode 100644 index 000000000000..5edee367a374 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/revokePersonalToken.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Generate JWT Token Request. + */ +export interface RevokePersonalToken { + /** + * Ids of Personal Access Tokens to remove. + */ + tokenIds?: string[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/revokeToken.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/revokeToken.ts new file mode 100644 index 000000000000..f1d4af8284c9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/revokeToken.ts @@ -0,0 +1,20 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Generate JWT Token Request. + */ +export interface RevokeToken { + id: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/serviceTokenEnum.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/serviceTokenEnum.ts new file mode 100644 index 000000000000..bc4f2f0530fc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/serviceTokenEnum.ts @@ -0,0 +1,22 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Different Type of OpenMetadata Service tokens + */ +export enum ServiceTokenEnum { + Bot = "BOT", + OmUser = "OM_USER", + PersonalAccess = "PERSONAL_ACCESS", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/ssoAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/ssoAuth.ts new file mode 100644 index 000000000000..a00d1e323a8b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/ssoAuth.ts @@ -0,0 +1,237 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * User/Bot SSOAuthN. + */ +export interface SsoAuth { + /** + * The authentication configuration used by the SSO + */ + authConfig?: SsoClientConfig; + /** + * Type of database service such as Amundsen, Atlas... + */ + ssoServiceType?: SsoServiceType; +} + +/** + * The authentication configuration used by the SSO + * + * Google SSO Configuration + * + * Google SSO client security configs. + * + * Okta SSO Configuration + * + * Okta SSO client security configs. + * + * Auth0 SSO Configuration + * + * Auth0 SSO client security configs. + * + * Azure SSO Configuration + * + * Azure SSO Client security config to connect to OpenMetadata. + * + * Custom OIDC SSO Configuration + * + * Custom OIDC SSO client security configs. + * + * SAML SSO Configuration + * + * SAML SSO client security configs. + */ +export interface SsoClientConfig { + /** + * Google SSO audience URL + */ + audience?: string; + /** + * Google SSO client secret key path or contents. + * + * Auth0 Client Secret Key. + * + * Custom OIDC Client Secret Key. + */ + secretKey?: string; + /** + * Okta Client ID. + * + * Auth0 Client ID. + * + * Azure Client ID. + * + * Custom OIDC Client ID. + */ + clientId?: string; + /** + * Okta Service account Email. + */ + email?: string; + /** + * Okta org url. + */ + orgURL?: string; + /** + * Okta Private Key. + */ + privateKey?: string; + /** + * Okta client scopes. + * + * Azure Client ID. + */ + scopes?: string[]; + /** + * Auth0 Domain. + */ + domain?: string; + /** + * Azure SSO Authority + */ + authority?: string; + /** + * Azure SSO client secret key + */ + clientSecret?: string; + /** + * Custom OIDC token endpoint. + */ + tokenEndpoint?: string; + /** + * Get logs from the Library in debug mode + */ + debugMode?: boolean; + idp?: Idp; + security?: Security; + sp?: SP; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface Idp { + /** + * Authority URL to redirect the users on Sign In page + */ + authorityUrl?: string; + /** + * Identity Provider Entity ID usually same as the SSO login URL. + */ + entityId: string; + /** + * X509 Certificate + */ + idpX509Certificate?: string; + /** + * Authority URL to redirect the users on Sign In page + */ + nameId?: string; + /** + * SSO Login URL. + */ + ssoLoginUrl: string; +} + +/** + * This schema defines defines the security config for SAML. + */ +export interface Security { + /** + * KeyStore Alias + */ + keyStoreAlias?: string; + /** + * KeyStore File Path + */ + keyStoreFilePath?: string; + /** + * KeyStore Password + */ + keyStorePassword?: string; + /** + * Encrypt Name Id while sending requests from SP. + */ + sendEncryptedNameId?: boolean; + /** + * Sign the Authn Request while sending. + */ + sendSignedAuthRequest?: boolean; + /** + * Want the Metadata of this SP to be signed. + */ + signSpMetadata?: boolean; + /** + * Only accept valid signed and encrypted assertions if the relevant flags are set + */ + strictMode?: boolean; + /** + * Validity for the JWT Token created from SAML Response + */ + tokenValidity?: number; + /** + * In case of strict mode whether to validate XML format. + */ + validateXml?: boolean; + /** + * SP requires the assertion received to be encrypted. + */ + wantAssertionEncrypted?: boolean; + /** + * SP requires the assertions received to be signed. + */ + wantAssertionsSigned?: boolean; + /** + * SP requires the messages received to be signed. + */ + wantMessagesSigned?: boolean; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface SP { + /** + * Assertion Consumer URL. + */ + acs: string; + /** + * Service Provider Entity ID usually same as the SSO login URL. + */ + callback: string; + /** + * Service Provider Entity ID. + */ + entityId: string; + /** + * Sp Private Key for Signing and Encryption Only + */ + spPrivateKey?: string; + /** + * X509 Certificate + */ + spX509Certificate?: string; +} + +/** + * Type of database service such as Amundsen, Atlas... + */ +export enum SsoServiceType { + Auth0 = "auth0", + Azure = "azure", + CustomOidc = "custom-oidc", + Google = "google", + Okta = "okta", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/auth/tokenRefreshRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/auth/tokenRefreshRequest.ts new file mode 100644 index 000000000000..52a0c374e7e2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/auth/tokenRefreshRequest.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Token Refresh Request + */ +export interface TokenRefreshRequest { + /** + * Refresh Token that was shared earlier + */ + refreshToken: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/appsPrivateConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/appsPrivateConfiguration.ts new file mode 100644 index 000000000000..dd05eeec8972 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/appsPrivateConfiguration.ts @@ -0,0 +1,42 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines a list of configurations for the Application Framework + */ +export interface AppsPrivateConfiguration { + /** + * List of configuration for apps + */ + appsPrivateConfiguration: AppPrivateConfig[]; +} + +/** + * Single Application Configuration Definition + */ +export interface AppPrivateConfig { + /** + * Application Name + */ + name: string; + /** + * Parameters to initialize the Applications. + */ + parameters: { [key: string]: any }; + /** + * Flag to enable/disable preview for the application. If the app is in preview mode, it + * can't be installed. + */ + preview?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/assetCertificationSettings.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/assetCertificationSettings.ts new file mode 100644 index 000000000000..1155e81649e0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/assetCertificationSettings.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Asset Certification Settings. + */ +export interface AssetCertificationSettings { + /** + * Classification that can be used for certifications. + */ + allowedClassification: string; + /** + * ISO 8601 duration for the validity period. + */ + validityPeriod: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/authConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/authConfig.ts new file mode 100644 index 000000000000..a87babf762bf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/authConfig.ts @@ -0,0 +1,163 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Auth Config. + */ +export interface AuthConfig { + /** + * Auth0 SSO Configuration + */ + auth0?: Auth0SSOClientConfig; + /** + * Azure SSO Configuration + */ + azure?: AzureSSOClientConfig; + /** + * Custom OIDC SSO Configuration + */ + customOidc?: CustomOIDCSSOClientConfig; + /** + * Google SSO Configuration + */ + google?: GoogleSSOClientConfig; + /** + * Okta SSO Configuration + */ + okta?: OktaSSOClientConfig; + /** + * OpenMetadata SSO Configuration + */ + openmetadata?: OpenMetadataJWTClientConfig; +} + +/** + * Auth0 SSO Configuration + * + * Auth0 SSO client security configs. + */ +export interface Auth0SSOClientConfig { + /** + * Auth0 Client ID. + */ + clientId: string; + /** + * Auth0 Domain. + */ + domain: string; + /** + * Auth0 Client Secret Key. + */ + secretKey: string; +} + +/** + * Azure SSO Configuration + * + * Azure SSO Client security config to connect to OpenMetadata. + */ +export interface AzureSSOClientConfig { + /** + * Azure SSO Authority + */ + authority: string; + /** + * Azure Client ID. + */ + clientId: string; + /** + * Azure SSO client secret key + */ + clientSecret: string; + /** + * Azure Client ID. + */ + scopes: string[]; +} + +/** + * Custom OIDC SSO Configuration + * + * Custom OIDC SSO client security configs. + */ +export interface CustomOIDCSSOClientConfig { + /** + * Custom OIDC Client ID. + */ + clientId: string; + /** + * Custom OIDC Client Secret Key. + */ + secretKey: string; + /** + * Custom OIDC token endpoint. + */ + tokenEndpoint: string; +} + +/** + * Google SSO Configuration + * + * Google SSO client security configs. + */ +export interface GoogleSSOClientConfig { + /** + * Google SSO audience URL + */ + audience?: string; + /** + * Google SSO client secret key path or contents. + */ + secretKey: string; +} + +/** + * Okta SSO Configuration + * + * Okta SSO client security configs. + */ +export interface OktaSSOClientConfig { + /** + * Okta Client ID. + */ + clientId: string; + /** + * Okta Service account Email. + */ + email: string; + /** + * Okta org url. + */ + orgURL: string; + /** + * Okta Private Key. + */ + privateKey: string; + /** + * Okta client scopes. + */ + scopes?: string[]; +} + +/** + * OpenMetadata SSO Configuration + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/authenticationConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/authenticationConfiguration.ts new file mode 100644 index 000000000000..e6b408483e1b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/authenticationConfiguration.ts @@ -0,0 +1,494 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Authentication Configuration. + */ +export interface AuthenticationConfiguration { + /** + * Authentication Authority + */ + authority: string; + /** + * Callback URL + */ + callbackUrl: string; + /** + * Client ID + */ + clientId: string; + /** + * Client Type + */ + clientType?: ClientType; + /** + * Enable Self Sign Up + */ + enableSelfSignup?: boolean; + /** + * Jwt Principal Claim + */ + jwtPrincipalClaims: string[]; + /** + * Jwt Principal Claim Mapping + */ + jwtPrincipalClaimsMapping?: string[]; + /** + * LDAP Configuration in case the Provider is LDAP + */ + ldapConfiguration?: LDAPConfiguration; + /** + * Oidc Configuration for Confidential Client Type + */ + oidcConfiguration?: OidcClientConfig; + provider: AuthProvider; + /** + * Custom OIDC Authentication Provider Name + */ + providerName: string; + /** + * List of Public Key URLs + */ + publicKeyUrls: string[]; + /** + * This is used by auth provider provide response as either id_token or code. + */ + responseType?: ResponseType; + /** + * Saml Configuration that is applicable only when the provider is Saml + */ + samlConfiguration?: SamlSSOClientConfig; +} + +/** + * Client Type + */ +export enum ClientType { + Confidential = "confidential", + Public = "public", +} + +/** + * LDAP Configuration in case the Provider is LDAP + * + * LDAP Configuration + */ +export interface LDAPConfiguration { + /** + * All attribute name + */ + allAttributeName?: string; + /** + * Roles should be reassign every time user login + */ + authReassignRoles?: string[]; + /** + * Json string of roles mapping between LDAP roles and Ranger roles + */ + authRolesMapping?: string; + /** + * Password for LDAP Admin + */ + dnAdminPassword: string; + /** + * Distinguished Admin name with search capabilities + */ + dnAdminPrincipal: string; + /** + * Group Name attribute name + */ + groupAttributeName?: string; + /** + * Group attribute value + */ + groupAttributeValue?: string; + /** + * Group base distinguished name + */ + groupBaseDN?: string; + /** + * Group Member Name attribute name + */ + groupMemberAttributeName?: string; + /** + * LDAP server address without scheme(Example :- localhost) + */ + host: string; + /** + * If enable need to give full dn to login + */ + isFullDn?: boolean; + /** + * Email attribute name + */ + mailAttributeName: string; + /** + * No of connection to create the pool with + */ + maxPoolSize?: number; + /** + * Port of the server + */ + port: number; + /** + * Admin role name + */ + roleAdminName?: string; + /** + * LDAPS (secure LDAP) or LDAP + */ + sslEnabled?: boolean; + /** + * Truststore Configuration + */ + trustStoreConfig?: TruststoreConfig; + /** + * Truststore Type e.g. TrustAll, HostName, JVMDefault, CustomTrustStore. + */ + truststoreConfigType?: TruststoreConfigType; + /** + * Truststore format e.g. PKCS12, JKS. + */ + truststoreFormat?: string; + /** + * User base distinguished name + */ + userBaseDN: string; + /** + * User Name attribute name + */ + usernameAttributeName?: string; +} + +/** + * Truststore Configuration + */ +export interface TruststoreConfig { + /** + * CustomTrust Configuration + */ + customTrustManagerConfig?: CustomTrustManagerConfig; + /** + * HostName Configuration + */ + hostNameConfig?: HostNameConfig; + /** + * JVMDefault Configuration + */ + jvmDefaultConfig?: JVMDefaultConfig; + /** + * TrustAll Configuration + */ + trustAllConfig?: TrustAllConfig; +} + +/** + * CustomTrust Configuration + */ +export interface CustomTrustManagerConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; + /** + * Truststore file format + */ + trustStoreFileFormat?: string; + /** + * Truststore file password + */ + trustStoreFilePassword?: string; + /** + * Truststore file path + */ + trustStoreFilePath?: string; + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} + +/** + * HostName Configuration + */ +export interface HostNameConfig { + /** + * list of acceptable host names + */ + acceptableHostNames?: string[]; + /** + * Allow wildcards + */ + allowWildCards?: boolean; +} + +/** + * JVMDefault Configuration + */ +export interface JVMDefaultConfig { + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} + +/** + * TrustAll Configuration + */ +export interface TrustAllConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; +} + +/** + * Truststore Type e.g. TrustAll, HostName, JVMDefault, CustomTrustStore. + */ +export enum TruststoreConfigType { + CustomTrustStore = "CustomTrustStore", + HostName = "HostName", + JVMDefault = "JVMDefault", + TrustAll = "TrustAll", +} + +/** + * Oidc Configuration for Confidential Client Type + * + * Oidc client security configs. + */ +export interface OidcClientConfig { + /** + * Callback Url. + */ + callbackUrl?: string; + /** + * Client Authentication Method. + */ + clientAuthenticationMethod?: ClientAuthenticationMethod; + /** + * Custom Params. + */ + customParams?: { [key: string]: any }; + /** + * Disable PKCE. + */ + disablePkce?: boolean; + /** + * Discovery Uri for the Client. + */ + discoveryUri?: string; + /** + * Client ID. + */ + id?: string; + /** + * Max Clock Skew + */ + maxClockSkew?: string; + /** + * Preferred Jws Algorithm. + */ + preferredJwsAlgorithm?: string; + /** + * Auth0 Client Secret Key. + */ + responseType?: string; + /** + * Oidc Request Scopes. + */ + scope?: string; + /** + * Client Secret. + */ + secret?: string; + /** + * Server Url. + */ + serverUrl?: string; + /** + * Tenant in case of Azure. + */ + tenant?: string; + /** + * Validity for the JWT Token created from SAML Response + */ + tokenValidity?: number; + /** + * IDP type (Example Google,Azure). + */ + type?: string; + /** + * Use Nonce. + */ + useNonce?: string; +} + +/** + * Client Authentication Method. + */ +export enum ClientAuthenticationMethod { + ClientSecretBasic = "client_secret_basic", + ClientSecretJwt = "client_secret_jwt", + ClientSecretPost = "client_secret_post", + PrivateKeyJwt = "private_key_jwt", +} + +/** + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * This is used by auth provider provide response as either id_token or code. + * + * Response Type + */ +export enum ResponseType { + Code = "code", + IDToken = "id_token", +} + +/** + * Saml Configuration that is applicable only when the provider is Saml + * + * SAML SSO client security configs. + */ +export interface SamlSSOClientConfig { + /** + * Get logs from the Library in debug mode + */ + debugMode?: boolean; + idp: Idp; + security?: Security; + sp: SP; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface Idp { + /** + * Authority URL to redirect the users on Sign In page + */ + authorityUrl?: string; + /** + * Identity Provider Entity ID usually same as the SSO login URL. + */ + entityId: string; + /** + * X509 Certificate + */ + idpX509Certificate?: string; + /** + * Authority URL to redirect the users on Sign In page + */ + nameId?: string; + /** + * SSO Login URL. + */ + ssoLoginUrl: string; +} + +/** + * This schema defines defines the security config for SAML. + */ +export interface Security { + /** + * KeyStore Alias + */ + keyStoreAlias?: string; + /** + * KeyStore File Path + */ + keyStoreFilePath?: string; + /** + * KeyStore Password + */ + keyStorePassword?: string; + /** + * Encrypt Name Id while sending requests from SP. + */ + sendEncryptedNameId?: boolean; + /** + * Sign the Authn Request while sending. + */ + sendSignedAuthRequest?: boolean; + /** + * Want the Metadata of this SP to be signed. + */ + signSpMetadata?: boolean; + /** + * Only accept valid signed and encrypted assertions if the relevant flags are set + */ + strictMode?: boolean; + /** + * Validity for the JWT Token created from SAML Response + */ + tokenValidity?: number; + /** + * In case of strict mode whether to validate XML format. + */ + validateXml?: boolean; + /** + * SP requires the assertion received to be encrypted. + */ + wantAssertionEncrypted?: boolean; + /** + * SP requires the assertions received to be signed. + */ + wantAssertionsSigned?: boolean; + /** + * SP requires the messages received to be signed. + */ + wantMessagesSigned?: boolean; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface SP { + /** + * Assertion Consumer URL. + */ + acs: string; + /** + * Service Provider Entity ID usually same as the SSO login URL. + */ + callback: string; + /** + * Service Provider Entity ID. + */ + entityId: string; + /** + * Sp Private Key for Signing and Encryption Only + */ + spPrivateKey?: string; + /** + * X509 Certificate + */ + spX509Certificate?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/authorizerConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/authorizerConfiguration.ts new file mode 100644 index 000000000000..2e110329d3dd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/authorizerConfiguration.ts @@ -0,0 +1,60 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Authorization Configuration. + */ +export interface AuthorizerConfiguration { + /** + * List of unique admin principals. + */ + adminPrincipals: string[]; + /** + * List of unique email domains that are allowed to signup on the platforms + */ + allowedEmailRegistrationDomains?: string[]; + /** + * **@Deprecated** List of unique bot principals + */ + botPrincipals?: string[]; + /** + * Class Name for authorizer. + */ + className: string; + /** + * Filter for the request authorization. + */ + containerRequestFilter: string; + /** + * Enable Secure Socket Connection. + */ + enableSecureSocketConnection: boolean; + /** + * Enable Enforce Principal Domain + */ + enforcePrincipalDomain: boolean; + /** + * Principal Domain + */ + principalDomain: string; + /** + * List of unique principals used as test users. **NOTE THIS IS ONLY FOR TEST SETUP AND NOT + * TO BE USED IN PRODUCTION SETUP** + */ + testPrincipals?: string[]; + /** + * Use Roles from Provider + */ + useRolesFromProvider?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/changeEventConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/changeEventConfiguration.ts new file mode 100644 index 000000000000..ad7b8fc993cb --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/changeEventConfiguration.ts @@ -0,0 +1,20 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the ChangeEvent Configuration. + */ +export interface ChangeEventConfiguration { + omUri?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/dataQualityConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/dataQualityConfiguration.ts new file mode 100644 index 000000000000..0feb6a558590 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/dataQualityConfiguration.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Data Quality Configuration + */ +export interface DataQualityConfiguration { + /** + * Class Name for the severity incident classifier. + */ + severityIncidentClassifier: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/elasticSearchConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/elasticSearchConfiguration.ts new file mode 100644 index 000000000000..0571e923a14b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/elasticSearchConfiguration.ts @@ -0,0 +1,97 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Elastic Search Configuration. + */ +export interface ElasticSearchConfiguration { + /** + * Batch Size for Requests + */ + batchSize: number; + /** + * Alias for search indexes to provide segregation of indexes. + */ + clusterAlias?: string; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs: number; + /** + * Elastic Search Host + */ + host: string; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * Elastic Search Password for Login + */ + password?: string; + /** + * Payload size in bytes depending on elasticsearch config + */ + payLoadSize?: number; + /** + * Elastic Search port + */ + port: number; + /** + * Http/Https connection scheme + */ + scheme: string; + /** + * Index factory name + */ + searchIndexFactoryClassName?: string; + searchIndexMappingLanguage: SearchIndexMappingLanguage; + /** + * This enum defines the search Type elastic/open search. + */ + searchType?: SearchType; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs: number; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; + /** + * Elastic Search Username for Login + */ + username?: string; +} + +/** + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * This enum defines the search Type elastic/open search. + */ +export enum SearchType { + Elasticsearch = "elasticsearch", + Opensearch = "opensearch", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/eventHandlerConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/eventHandlerConfiguration.ts new file mode 100644 index 000000000000..7386f2295be0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/eventHandlerConfiguration.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Event Handler Configuration. + */ +export interface EventHandlerConfiguration { + /** + * Event Handler Class Names + */ + eventHandlerClassNames: string[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/fernetConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/fernetConfiguration.ts new file mode 100644 index 000000000000..bab28494f4aa --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/fernetConfiguration.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Fernet Configuration. + */ +export interface FernetConfiguration { + /** + * Fernet Key + */ + fernetKey: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/jwtTokenConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/jwtTokenConfiguration.ts new file mode 100644 index 000000000000..2750a14bd39e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/jwtTokenConfiguration.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the JWT Configuration. + */ +export interface JwtTokenConfiguration { + /** + * JWT Issuer + */ + jwtissuer: string; + /** + * Key ID + */ + keyId: string; + /** + * RSA Private Key File Path + */ + rsaprivateKeyFilePath?: string; + /** + * RSA Public Key File Path + */ + rsapublicKeyFilePath?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/kafkaEventConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/kafkaEventConfiguration.ts new file mode 100644 index 000000000000..6859214ec369 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/kafkaEventConfiguration.ts @@ -0,0 +1,83 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Kafka Event Publisher Configuration. + */ +export interface KafkaEventConfiguration { + /** + * Acknowledgment + */ + acks?: string; + /** + * Buffer Memory + */ + bufferMemory?: number; + /** + * Serializer class for key + */ + keySerializer?: string; + /** + * Artificial Delay in milliseconds + */ + lingerMS?: number; + /** + * No. of retries + */ + retries?: number; + /** + * Kafka security protocol config + */ + securityProtocol?: SecurityProtocol; + /** + * Kafka SSL key password + */ + SSLKeyPassword?: string; + /** + * Kafka SSL keystore location + */ + SSLKeystoreLocation?: string; + /** + * Kafka SSL keystore password + */ + SSLKeystorePassword?: string; + /** + * Kafka SSL protocol config + */ + SSLProtocol?: string; + /** + * Kafka SSL truststore location + */ + SSLTrustStoreLocation?: string; + /** + * Kafka SSL truststore password + */ + SSLTrustStorePassword?: string; + /** + * Topics of Kafka Producer + */ + topics: string[]; + /** + * Serializer class for value + */ + valueSerializer?: string; +} + +/** + * Kafka security protocol config + */ +export enum SecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapConfiguration.ts new file mode 100644 index 000000000000..50748cfb3c74 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapConfiguration.ts @@ -0,0 +1,195 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * LDAP Configuration + */ +export interface LDAPConfiguration { + /** + * All attribute name + */ + allAttributeName?: string; + /** + * Roles should be reassign every time user login + */ + authReassignRoles?: string[]; + /** + * Json string of roles mapping between LDAP roles and Ranger roles + */ + authRolesMapping?: string; + /** + * Password for LDAP Admin + */ + dnAdminPassword: string; + /** + * Distinguished Admin name with search capabilities + */ + dnAdminPrincipal: string; + /** + * Group Name attribute name + */ + groupAttributeName?: string; + /** + * Group attribute value + */ + groupAttributeValue?: string; + /** + * Group base distinguished name + */ + groupBaseDN?: string; + /** + * Group Member Name attribute name + */ + groupMemberAttributeName?: string; + /** + * LDAP server address without scheme(Example :- localhost) + */ + host: string; + /** + * If enable need to give full dn to login + */ + isFullDn?: boolean; + /** + * Email attribute name + */ + mailAttributeName: string; + /** + * No of connection to create the pool with + */ + maxPoolSize?: number; + /** + * Port of the server + */ + port: number; + /** + * Admin role name + */ + roleAdminName?: string; + /** + * LDAPS (secure LDAP) or LDAP + */ + sslEnabled?: boolean; + /** + * Truststore Configuration + */ + trustStoreConfig?: TruststoreConfig; + /** + * Truststore Type e.g. TrustAll, HostName, JVMDefault, CustomTrustStore. + */ + truststoreConfigType?: TruststoreConfigType; + /** + * Truststore format e.g. PKCS12, JKS. + */ + truststoreFormat?: string; + /** + * User base distinguished name + */ + userBaseDN: string; + /** + * User Name attribute name + */ + usernameAttributeName?: string; +} + +/** + * Truststore Configuration + */ +export interface TruststoreConfig { + /** + * CustomTrust Configuration + */ + customTrustManagerConfig?: CustomTrustManagerConfig; + /** + * HostName Configuration + */ + hostNameConfig?: HostNameConfig; + /** + * JVMDefault Configuration + */ + jvmDefaultConfig?: JVMDefaultConfig; + /** + * TrustAll Configuration + */ + trustAllConfig?: TrustAllConfig; +} + +/** + * CustomTrust Configuration + */ +export interface CustomTrustManagerConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; + /** + * Truststore file format + */ + trustStoreFileFormat?: string; + /** + * Truststore file password + */ + trustStoreFilePassword?: string; + /** + * Truststore file path + */ + trustStoreFilePath?: string; + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} + +/** + * HostName Configuration + */ +export interface HostNameConfig { + /** + * list of acceptable host names + */ + acceptableHostNames?: string[]; + /** + * Allow wildcards + */ + allowWildCards?: boolean; +} + +/** + * JVMDefault Configuration + */ +export interface JVMDefaultConfig { + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} + +/** + * TrustAll Configuration + */ +export interface TrustAllConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; +} + +/** + * Truststore Type e.g. TrustAll, HostName, JVMDefault, CustomTrustStore. + */ +export enum TruststoreConfigType { + CustomTrustStore = "CustomTrustStore", + HostName = "HostName", + JVMDefault = "JVMDefault", + TrustAll = "TrustAll", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/customTrustManagerConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/customTrustManagerConfig.ts new file mode 100644 index 000000000000..9fb8d611a398 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/customTrustManagerConfig.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * CustomTrust Configuration + */ +export interface CustomTrustManagerConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; + /** + * Truststore file format + */ + trustStoreFileFormat?: string; + /** + * Truststore file password + */ + trustStoreFilePassword?: string; + /** + * Truststore file path + */ + trustStoreFilePath?: string; + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/hostNameConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/hostNameConfig.ts new file mode 100644 index 000000000000..598eeecfea82 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/hostNameConfig.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * HostName Configuration + */ +export interface HostNameConfig { + /** + * list of acceptable host names + */ + acceptableHostNames?: string[]; + /** + * Allow wildcards + */ + allowWildCards?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/jvmDefaultConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/jvmDefaultConfig.ts new file mode 100644 index 000000000000..d2af1f941984 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/jvmDefaultConfig.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * JVMDefault Configuration + */ +export interface JVMDefaultConfig { + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/trustAllConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/trustAllConfig.ts new file mode 100644 index 000000000000..73de3523f44d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/trustAllConfig.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * TrustAll Configuration + */ +export interface TrustAllConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/truststoreConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/truststoreConfig.ts new file mode 100644 index 000000000000..380103214f76 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/ldapTrustStoreConfig/truststoreConfig.ts @@ -0,0 +1,95 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Truststore Configuration + */ +export interface TruststoreConfig { + /** + * CustomTrust Configuration + */ + customTrustManagerConfig?: CustomTrustManagerConfig; + /** + * HostName Configuration + */ + hostNameConfig?: HostNameConfig; + /** + * JVMDefault Configuration + */ + jvmDefaultConfig?: JVMDefaultConfig; + /** + * TrustAll Configuration + */ + trustAllConfig?: TrustAllConfig; +} + +/** + * CustomTrust Configuration + */ +export interface CustomTrustManagerConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; + /** + * Truststore file format + */ + trustStoreFileFormat?: string; + /** + * Truststore file password + */ + trustStoreFilePassword?: string; + /** + * Truststore file path + */ + trustStoreFilePath?: string; + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} + +/** + * HostName Configuration + */ +export interface HostNameConfig { + /** + * list of acceptable host names + */ + acceptableHostNames?: string[]; + /** + * Allow wildcards + */ + allowWildCards?: boolean; +} + +/** + * JVMDefault Configuration + */ +export interface JVMDefaultConfig { + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} + +/** + * TrustAll Configuration + */ +export interface TrustAllConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/limitsConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/limitsConfiguration.ts new file mode 100644 index 000000000000..2314a5f5ab02 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/limitsConfiguration.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Limits Configuration. + */ +export interface LimitsConfiguration { + /** + * Class Name for authorizer. + */ + className?: string; + /** + * Limits Enabled or Disabled. + */ + enable: boolean; + /** + * Limits Configuration File. + */ + limitsConfigFile?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/lineageSettings.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/lineageSettings.ts new file mode 100644 index 000000000000..b0e2b87d1822 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/lineageSettings.ts @@ -0,0 +1,42 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Lineage Settings. + */ +export interface LineageSettings { + /** + * DownStream Depth for Lineage. + */ + downstreamDepth: number; + /** + * Lineage Layer. + */ + lineageLayer: LineageLayer; + /** + * Upstream Depth for Lineage. + */ + upstreamDepth: number; +} + +/** + * Lineage Layer. + * + * Lineage Layers + */ +export enum LineageLayer { + ColumnLevelLineage = "ColumnLevelLineage", + DataObservability = "DataObservability", + EntityLineage = "EntityLineage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/loginConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/loginConfiguration.ts new file mode 100644 index 000000000000..befa8d6d6bdd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/loginConfiguration.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Login Configuration + */ +export interface LoginConfiguration { + /** + * Access Block time for user on exceeding failed attempts(in seconds) + */ + accessBlockTime?: number; + /** + * Jwt Token Expiry time for login in seconds + */ + jwtTokenExpiryTime?: number; + /** + * Failed Login Attempts allowed for user. + */ + maxLoginFailAttempts?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/logoConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/logoConfiguration.ts new file mode 100644 index 000000000000..dda3a1c6a3f9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/logoConfiguration.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Logo Configuration. + */ +export interface LogoConfiguration { + /** + * Favicon Page Logo Image Url + */ + customFaviconUrlPath?: string; + /** + * Login Page Logo Image Url + */ + customLogoUrlPath?: string; + /** + * Navigation Bar Logo Image Url + */ + customMonogramUrlPath?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/pipelineServiceClientConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/pipelineServiceClientConfiguration.ts new file mode 100644 index 000000000000..8d70e2f6726a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/pipelineServiceClientConfiguration.ts @@ -0,0 +1,291 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Pipeline Service Client Configuration + */ +export interface PipelineServiceClientConfiguration { + /** + * External API root to interact with the Pipeline Service Client + */ + apiEndpoint: string; + /** + * Auth Provider Configuration. + */ + authConfig?: AuthConfiguration; + /** + * Auth Provider with which OpenMetadata service configured with. + */ + authProvider?: AuthProvider; + /** + * Class Name for the Pipeline Service Client. + */ + className: string; + /** + * Flags if the ingestion from the OpenMetadata UI is enabled. If ingesting externally, we + * can set this value to false to not check the Pipeline Service Client component health. + */ + enabled?: boolean; + /** + * Interval in seconds that the server will use to check the /status of the + * pipelineServiceClient and flag any errors in a Prometheus metric + * `pipelineServiceClientStatus.counter`. + */ + healthCheckInterval?: number; + /** + * Pipeline Service Client host IP that will be used to connect to the sources. + */ + hostIp?: string; + /** + * Enable or disable the API that fetches the public IP running the ingestion process. + */ + ingestionIpInfoEnabled?: boolean; + /** + * Metadata api endpoint, e.g., `http://localhost:8585/api` + */ + metadataApiEndpoint: string; + /** + * Additional parameters to initialize the PipelineServiceClient. + */ + parameters?: { [key: string]: any }; + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * OpenMetadata Client SSL configuration. This SSL information is about the OpenMetadata + * server. It will be picked up from the pipelineServiceClient to use/ignore SSL when + * connecting to the OpenMetadata server. + */ + sslConfig?: Config; + /** + * Client SSL verification policy when connecting to the OpenMetadata server: no-ssl, + * ignore, validate. + */ + verifySSL?: VerifySSL; +} + +/** + * Auth Provider Configuration. + * + * This schema defines the Auth Config. + */ +export interface AuthConfiguration { + /** + * Auth0 SSO Configuration + */ + auth0?: Auth0SSOClientConfig; + /** + * Azure SSO Configuration + */ + azure?: AzureSSOClientConfig; + /** + * Custom OIDC SSO Configuration + */ + customOidc?: CustomOIDCSSOClientConfig; + /** + * Google SSO Configuration + */ + google?: GoogleSSOClientConfig; + /** + * Okta SSO Configuration + */ + okta?: OktaSSOClientConfig; + /** + * OpenMetadata SSO Configuration + */ + openmetadata?: OpenMetadataJWTClientConfig; +} + +/** + * Auth0 SSO Configuration + * + * Auth0 SSO client security configs. + */ +export interface Auth0SSOClientConfig { + /** + * Auth0 Client ID. + */ + clientId: string; + /** + * Auth0 Domain. + */ + domain: string; + /** + * Auth0 Client Secret Key. + */ + secretKey: string; +} + +/** + * Azure SSO Configuration + * + * Azure SSO Client security config to connect to OpenMetadata. + */ +export interface AzureSSOClientConfig { + /** + * Azure SSO Authority + */ + authority: string; + /** + * Azure Client ID. + */ + clientId: string; + /** + * Azure SSO client secret key + */ + clientSecret: string; + /** + * Azure Client ID. + */ + scopes: string[]; +} + +/** + * Custom OIDC SSO Configuration + * + * Custom OIDC SSO client security configs. + */ +export interface CustomOIDCSSOClientConfig { + /** + * Custom OIDC Client ID. + */ + clientId: string; + /** + * Custom OIDC Client Secret Key. + */ + secretKey: string; + /** + * Custom OIDC token endpoint. + */ + tokenEndpoint: string; +} + +/** + * Google SSO Configuration + * + * Google SSO client security configs. + */ +export interface GoogleSSOClientConfig { + /** + * Google SSO audience URL + */ + audience?: string; + /** + * Google SSO client secret key path or contents. + */ + secretKey: string; +} + +/** + * Okta SSO Configuration + * + * Okta SSO client security configs. + */ +export interface OktaSSOClientConfig { + /** + * Okta Client ID. + */ + clientId: string; + /** + * Okta Service account Email. + */ + email: string; + /** + * Okta org url. + */ + orgURL: string; + /** + * Okta Private Key. + */ + privateKey: string; + /** + * Okta client scopes. + */ + scopes?: string[]; +} + +/** + * OpenMetadata SSO Configuration + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * Auth Provider with which OpenMetadata service configured with. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * OpenMetadata Client SSL configuration. This SSL information is about the OpenMetadata + * server. It will be picked up from the pipelineServiceClient to use/ignore SSL when + * connecting to the OpenMetadata server. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Client SSL verification policy when connecting to the OpenMetadata server: no-ssl, + * ignore, validate. + * + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/profilerConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/profilerConfiguration.ts new file mode 100644 index 000000000000..284a7795e029 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/profilerConfiguration.ts @@ -0,0 +1,158 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the profiler configuration. It is used to configure globally the + * metrics to compute for specific data types. + */ +export interface ProfilerConfiguration { + metricConfiguration?: MetricConfigurationDefinition[]; +} + +/** + * This schema defines the parameters that can be passed for a Test Case. + */ +export interface MetricConfigurationDefinition { + dataType?: DataType; + /** + * If true, the metric will not be computed for the data type. + */ + disabled?: boolean; + metrics?: MetricType[]; +} + +/** + * This enum defines the type of data stored in a column. + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * This schema defines all possible metric types in OpenMetadata. + */ +export enum MetricType { + ColumnCount = "columnCount", + ColumnNames = "columnNames", + CountInSet = "countInSet", + DistinctCount = "distinctCount", + DistinctProportion = "distinctProportion", + DuplicateCount = "duplicateCount", + FirstQuartile = "firstQuartile", + Histogram = "histogram", + ILikeCount = "iLikeCount", + ILikeRatio = "iLikeRatio", + InterQuartileRange = "interQuartileRange", + LikeCount = "likeCount", + LikeRatio = "likeRatio", + Max = "max", + MaxLength = "maxLength", + Mean = "mean", + Median = "median", + Min = "min", + MinLength = "minLength", + NonParametricSkew = "nonParametricSkew", + NotLikeCount = "notLikeCount", + NotRegexCount = "notRegexCount", + NullCount = "nullCount", + NullProportion = "nullProportion", + RegexCount = "regexCount", + RowCount = "rowCount", + Stddev = "stddev", + Sum = "sum", + System = "system", + ThirdQuartile = "thirdQuartile", + UniqueCount = "uniqueCount", + UniqueProportion = "uniqueProportion", + ValuesCount = "valuesCount", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/searchSettings.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/searchSettings.ts new file mode 100644 index 000000000000..4ab0a3e6be01 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/searchSettings.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Rbac Search Configuration. + */ +export interface SearchSettings { + /** + * Flag to enable or disable the RBAC Search Configuration. + */ + enableAccessControl?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/slackAppConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/slackAppConfiguration.ts new file mode 100644 index 000000000000..5a58fc5f9c63 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/slackAppConfiguration.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Slack App Information + */ +export interface SlackAppConfiguration { + /** + * Client Id of the Application + */ + clientId: string; + /** + * Client Secret of the Application. + */ + clientSecret: string; + /** + * Signing Secret of the Application. Confirm that each request comes from Slack by + * verifying its unique signature. + */ + signingSecret: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/taskNotificationConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/taskNotificationConfiguration.ts new file mode 100644 index 000000000000..cfe6d6508940 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/taskNotificationConfiguration.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the SSL Config. + */ +export interface TaskNotificationConfiguration { + /** + * Is Task Notification Enabled? + */ + enabled?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/testResultNotificationConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/testResultNotificationConfiguration.ts new file mode 100644 index 000000000000..acea051f4b88 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/testResultNotificationConfiguration.ts @@ -0,0 +1,45 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the SSL Config. + */ +export interface TestResultNotificationConfiguration { + /** + * Is Test Notification Enabled? + */ + enabled?: boolean; + /** + * Send notification on Success, Failed or Aborted? + */ + onResult?: TestCaseStatus[]; + /** + * Send notification on the mail + */ + receivers?: string[]; + /** + * Send notification on the mail + */ + sendToOwners?: boolean; +} + +/** + * Status of Test Case run. + */ +export enum TestCaseStatus { + Aborted = "Aborted", + Failed = "Failed", + Queued = "Queued", + Success = "Success", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/themeConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/themeConfiguration.ts new file mode 100644 index 000000000000..76c924f87612 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/themeConfiguration.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Theme Configuration for UI elements. + */ +export interface ThemeConfiguration { + /** + * Color used to indicate errors in the UI, in hex code format or empty + */ + errorColor: string; + /** + * Color used for informational messages in the UI, in hex code format or empty + */ + infoColor: string; + /** + * Primary color used in the UI, in hex code format or empty. + */ + primaryColor: string; + /** + * Color used to indicate success in the UI, in hex code format or empty + */ + successColor: string; + /** + * Color used to indicate warnings in the UI, in hex code format or empty + */ + warningColor: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/configuration/uiThemePreference.ts b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/uiThemePreference.ts new file mode 100644 index 000000000000..80ce69a17de8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/configuration/uiThemePreference.ts @@ -0,0 +1,79 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines UI related configuration and settings. + */ +export interface UIThemePreference { + /** + * References the LogoConfiguration schema which includes settings related to the custom + * logos used in the application's user interface. + */ + customLogoConfig: LogoConfiguration; + /** + * References the ThemeConfiguration schema that defines the custom theme color used in the + * application's user interface. + */ + customTheme: ThemeConfiguration; +} + +/** + * References the LogoConfiguration schema which includes settings related to the custom + * logos used in the application's user interface. + * + * This schema defines the Logo Configuration. + */ +export interface LogoConfiguration { + /** + * Favicon Page Logo Image Url + */ + customFaviconUrlPath?: string; + /** + * Login Page Logo Image Url + */ + customLogoUrlPath?: string; + /** + * Navigation Bar Logo Image Url + */ + customMonogramUrlPath?: string; +} + +/** + * References the ThemeConfiguration schema that defines the custom theme color used in the + * application's user interface. + * + * This schema defines the Theme Configuration for UI elements. + */ +export interface ThemeConfiguration { + /** + * Color used to indicate errors in the UI, in hex code format or empty + */ + errorColor: string; + /** + * Color used for informational messages in the UI, in hex code format or empty + */ + infoColor: string; + /** + * Primary color used in the UI, in hex code format or empty. + */ + primaryColor: string; + /** + * Color used to indicate success in the UI, in hex code format or empty + */ + successColor: string; + /** + * Color used to indicate warnings in the UI, in hex code format or empty + */ + warningColor: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChart.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChart.ts new file mode 100644 index 000000000000..f1ca7717cbc3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChart.ts @@ -0,0 +1,291 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DI Chart Entity + */ +export interface DataInsightCustomChart { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + chartDetails: LineChart; + /** + * Type of chart, used for UI to render the chart + */ + chartType?: ChartType; + /** + * Dashboard where this chart is displayed + */ + dashboard?: EntityReference; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the data insight chart. + */ + description?: string; + /** + * Display Name the data insight chart. + */ + displayName?: string; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this table instance. + */ + id?: string; + /** + * Flag to indicate if the chart is system generated or user created. + */ + isSystemChart?: boolean; + /** + * Name that identifies this data insight chart. + */ + name: string; + /** + * Owner of this chart + */ + owner?: EntityReference; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Line Chart + * + * Summary Card + */ +export interface LineChart { + /** + * List of groups to be excluded in the data insight chart when groupBy is specified. + */ + excludeGroups?: string[]; + /** + * Breakdown field for the data insight chart. + */ + groupBy?: string; + /** + * List of groups to be included in the data insight chart when groupBy is specified. + */ + includeGroups?: string[]; + kpiDetails?: KpiDetails; + /** + * Metrics for the data insight chart. + */ + metrics?: Metrics[]; + /** + * Type of the data insight chart. + */ + type?: Type; + /** + * X-axis field for the data insight chart. + */ + xAxisField?: string; + /** + * X-axis label for the data insight chart. + */ + xAxisLabel?: string; + /** + * Y-axis label for the data insight chart. + */ + yAxisLabel?: string; +} + +/** + * KPI details for the data insight chart. + */ +export interface KpiDetails { + /** + * End Date of KPI + */ + endDate?: string; + /** + * Start Date of KPI + */ + startDate?: string; + /** + * Target value of KPI + */ + target?: number; + [property: string]: any; +} + +export interface Metrics { + /** + * Filter field for the data insight chart. + */ + field?: string; + /** + * Filter value for the data insight chart. + */ + filter?: string; + /** + * Formula for the data insight chart calculation. + */ + formula?: string; + function?: Function; + /** + * Name of the metric for the data insight chart. + */ + name?: string; + /** + * Tree filter value for the data insight chart. Needed for UI to recreate advance filter + * tree. + */ + treeFilter?: string; + [property: string]: any; +} + +/** + * aggregation function for chart + */ +export enum Function { + Avg = "avg", + Count = "count", + Max = "max", + Min = "min", + Sum = "sum", + Unique = "unique", +} + +/** + * Type of the data insight chart. + */ +export enum Type { + LineChart = "LineChart", + SummaryCard = "SummaryCard", +} + +/** + * Type of chart, used for UI to render the chart + */ +export enum ChartType { + AreaChart = "AreaChart", + BarChart = "BarChart", + LineChart = "LineChart", + SummaryCard = "SummaryCard", +} + +/** + * Dashboard where this chart is displayed + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owner of this chart + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChartResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChartResult.ts new file mode 100644 index 000000000000..16db0161c172 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChartResult.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Data Insight Custom Chart Result + */ +export interface DataInsightCustomChartResult { + /** + * Count of Result + */ + count?: number; + /** + * Date of Result + */ + day?: number; + /** + * Group of Result + */ + group?: string; + /** + * Metric Name + */ + metric?: string; + /** + * Term of Result, used in case of horizontal axis not timestamp + */ + term?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChartResultList.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChartResultList.ts new file mode 100644 index 000000000000..3a09d02b151c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/dataInsightCustomChartResultList.ts @@ -0,0 +1,69 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Data Insight Custom Chart Result List + */ +export interface DataInsightCustomChartResultList { + kpiDetails?: KpiDetails; + /** + * List of Results + */ + results?: DataInsightCustomChartResult[]; +} + +/** + * KPI details for the data insight chart. + */ +export interface KpiDetails { + /** + * End Date of KPI + */ + endDate?: string; + /** + * Start Date of KPI + */ + startDate?: string; + /** + * Target value of KPI + */ + target?: number; + [property: string]: any; +} + +/** + * Data Insight Custom Chart Result + */ +export interface DataInsightCustomChartResult { + /** + * Count of Result + */ + count?: number; + /** + * Date of Result + */ + day?: number; + /** + * Group of Result + */ + group?: string; + /** + * Metric Name + */ + metric?: string; + /** + * Term of Result, used in case of horizontal axis not timestamp + */ + term?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/formulaHolder.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/formulaHolder.ts new file mode 100644 index 000000000000..8601e8e8bd18 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/formulaHolder.ts @@ -0,0 +1,44 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * formulaHolder + */ +export interface FormulaHolder { + /** + * Group of Result + */ + field?: string; + /** + * Formula + */ + formula?: string; + function?: Function; + /** + * Group of Result + */ + query?: string; +} + +/** + * aggregation function for chart + */ +export enum Function { + Avg = "avg", + Count = "count", + Max = "max", + Min = "min", + Sum = "sum", + Unique = "unique", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/lineChart.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/lineChart.ts new file mode 100644 index 000000000000..73850b8f3b01 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/lineChart.ts @@ -0,0 +1,116 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Line Chart + */ +export interface LineChart { + /** + * List of groups to be excluded in the data insight chart when groupBy is specified. + */ + excludeGroups?: string[]; + /** + * Breakdown field for the data insight chart. + */ + groupBy?: string; + /** + * List of groups to be included in the data insight chart when groupBy is specified. + */ + includeGroups?: string[]; + kpiDetails?: KpiDetails; + /** + * Metrics for the data insight chart. + */ + metrics?: Metrics[]; + /** + * Type of the data insight chart. + */ + type?: Type; + /** + * X-axis field for the data insight chart. + */ + xAxisField?: string; + /** + * X-axis label for the data insight chart. + */ + xAxisLabel?: string; + /** + * Y-axis label for the data insight chart. + */ + yAxisLabel?: string; +} + +/** + * KPI details for the data insight chart. + */ +export interface KpiDetails { + /** + * End Date of KPI + */ + endDate?: string; + /** + * Start Date of KPI + */ + startDate?: string; + /** + * Target value of KPI + */ + target?: number; + [property: string]: any; +} + +export interface Metrics { + /** + * Filter field for the data insight chart. + */ + field?: string; + /** + * Filter value for the data insight chart. + */ + filter?: string; + /** + * Formula for the data insight chart calculation. + */ + formula?: string; + function?: Function; + /** + * Name of the metric for the data insight chart. + */ + name?: string; + /** + * Tree filter value for the data insight chart. Needed for UI to recreate advance filter + * tree. + */ + treeFilter?: string; + [property: string]: any; +} + +/** + * aggregation function for chart + */ +export enum Function { + Avg = "avg", + Count = "count", + Max = "max", + Min = "min", + Sum = "sum", + Unique = "unique", +} + +/** + * Type of the data insight chart. + */ +export enum Type { + LineChart = "LineChart", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/summaryCard.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/summaryCard.ts new file mode 100644 index 000000000000..75a44fa3fbfe --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/custom/summaryCard.ts @@ -0,0 +1,72 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Summary Card + */ +export interface SummaryCard { + /** + * Metrics for the data insight chart. + */ + metrics?: Metrics[]; + /** + * Type of the data insight chart. + */ + type?: Type; +} + +export interface Metrics { + /** + * Filter field for the data insight chart. + */ + field?: string; + /** + * Filter value for the data insight chart. + */ + filter?: string; + /** + * Formula for the data insight chart calculation. + */ + formula?: string; + function?: Function; + /** + * Name of the metric for the data insight chart. + */ + name?: string; + /** + * Tree filter value for the data insight chart. Needed for UI to recreate advance filter + * tree. + */ + treeFilter?: string; + [property: string]: any; +} + +/** + * aggregation function for chart + */ +export enum Function { + Avg = "avg", + Count = "count", + Max = "max", + Min = "min", + Sum = "sum", + Unique = "unique", +} + +/** + * Type of the data insight chart. + */ +export enum Type { + SummaryCard = "SummaryCard", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChart.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChart.ts new file mode 100644 index 000000000000..8fb1ba6f1b90 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChart.ts @@ -0,0 +1,227 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DataInsightChart represents the definition of a chart with its parameters + */ +export interface DataInsightChart { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + dataIndexType?: DataReportIndex; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the data insight chart. + */ + description?: string; + dimensions?: ChartParameterValues[]; + /** + * Display Name that identifies this data insight chart. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this table instance. + */ + id?: string; + metrics?: ChartParameterValues[]; + /** + * Name that identifies this data insight chart. + */ + name: string; + /** + * Owners of this Pipeline. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Index where data are stored + */ +export enum DataReportIndex { + AggregatedCostAnalysisReportDataIndex = "aggregated_cost_analysis_report_data_index", + EntityReportDataIndex = "entity_report_data_index", + RawCostAnalysisReportDataIndex = "raw_cost_analysis_report_data_index", + WebAnalyticEntityViewReportDataIndex = "web_analytic_entity_view_report_data_index", + WebAnalyticUserActivityReportDataIndex = "web_analytic_user_activity_report_data_index", +} + +/** + * This schema defines the parameter values for a chart. + */ +export interface ChartParameterValues { + /** + * Data type of the parameter (int, date etc.). + */ + chartDataType?: ChartDataType; + /** + * Display Name that identifies this parameter name. + */ + displayName?: string; + /** + * name of the parameter. + */ + name?: string; + [property: string]: any; +} + +/** + * Data type of the parameter (int, date etc.). + */ +export enum ChartDataType { + Array = "ARRAY", + Boolean = "BOOLEAN", + Date = "DATE", + Datetime = "DATETIME", + Decimal = "DECIMAL", + Double = "DOUBLE", + Float = "FLOAT", + Int = "INT", + Map = "MAP", + Number = "NUMBER", + Percentage = "PERCENTAGE", + Set = "SET", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this Pipeline. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChartResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChartResult.ts new file mode 100644 index 000000000000..de157d582d2f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/dataInsightChartResult.ts @@ -0,0 +1,247 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DataInsightChartResult represents data that will be consumed by a specific chart + */ +export interface DataInsightChartResult { + /** + * Chart Type that will consume the data. Must match name of dataInsightChart. + */ + chartType: DataInsightChartType; + /** + * Array of consumable data. + */ + data?: DailyActiveUsers[]; + /** + * Total number of hits returned by the aggregation. + */ + total?: number; +} + +/** + * Chart Type that will consume the data. Must match name of dataInsightChart. + * + * chart type. Must match `name` of a `dataInsightChartDefinition`. + */ +export enum DataInsightChartType { + AggregatedUnusedAssetsCount = "AggregatedUnusedAssetsCount", + AggregatedUnusedAssetsSize = "AggregatedUnusedAssetsSize", + AggregatedUsedVsUnusedAssetsCount = "AggregatedUsedVsUnusedAssetsCount", + AggregatedUsedVsUnusedAssetsSize = "AggregatedUsedVsUnusedAssetsSize", + DailyActiveUsers = "DailyActiveUsers", + MostActiveUsers = "MostActiveUsers", + MostViewedEntities = "MostViewedEntities", + PageViewsByEntities = "PageViewsByEntities", + UnusedAssets = "UnusedAssets", +} + +/** + * dailyActiveUsers data blob + * + * pageViewsByEntities data blob + * + * UnusedAssets data blob + * + * AggregatedUnusedAssetsSize data blob + * + * AggregatedUnusedAssetsCount data blob + * + * AggregatedUsedVsUnusedAssetsSize data blob + * + * AggregatedUsedVsUnusedAssetsCount data blob + */ +export interface DailyActiveUsers { + /** + * Number of active users (user with at least 1 session). + */ + activeUsers?: number; + /** + * timestamp + */ + timestamp?: number; + /** + * Type of entity. Derived from the page URL. + */ + entityType?: string; + /** + * Number of page views + * + * Total number of pages viewed by the user + * + * Type of entity. Derived from the page URL. + */ + pageViews?: number; + /** + * avg. duration of a sessions in seconds + */ + avgSessionDuration?: number; + /** + * date time of the most recent session for the user + */ + lastSession?: number; + /** + * Total duration of all sessions in seconds + */ + sessionDuration?: number; + /** + * Total number of sessions + */ + sessions?: number; + /** + * Team a user belongs to + */ + team?: string; + /** + * Name of a user + */ + userName?: string; + /** + * Number of page views + */ + entityFqn?: string; + /** + * Entity href link + */ + entityHref?: string; + /** + * Owner of the entity + */ + owner?: string; + /** + * Entity of the life cycle data + */ + entity?: EntityReference; + /** + * timestamp + */ + lastAccessedAt?: number; + /** + * Size of the asset in bytes + */ + sizeInBytes?: number; + /** + * Frequently used Data Assets + */ + frequentlyUsedDataAssets?: DataAssetValues; + /** + * Unused Data Assets + */ + unusedDataAssets?: DataAssetValues; + /** + * Size of unused assets (last access >= 3 days) + * + * Count of unused assets (last access >= 3 days) + */ + Unused?: number; + /** + * Percentage of the size of unused assets (last access >= 3 days) + * + * Percentage of the count of unused assets (last access >= 3 days) + */ + UnusedPercentage?: number; + /** + * Size of used assets (last access < 3 days) + * + * Count of used assets (last access < 3 days) + */ + Used?: number; + /** + * Percentage of the size of used assets (last access < 3 days) + * + * Percentage of the count of used assets (last access < 3 days) + */ + UsedPercentage?: number; +} + +/** + * Entity of the life cycle data + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Frequently used Data Assets + * + * Count or Size in bytes of Data Assets over a time period + * + * Unused Data Assets + */ +export interface DataAssetValues { + /** + * Data Asset Count or Size for 14 days + */ + fourteenDays?: number | null; + /** + * Data Asset Count or Size for 7 days + */ + sevenDays?: number | null; + /** + * Data Asset Count or Size for 60 days + */ + sixtyDays?: number | null; + /** + * Data Asset Count or Size for 30 days + */ + thirtyDays?: number | null; + /** + * Data Asset Count or Size for 3 days + */ + threeDays?: number | null; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/kpi/kpi.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/kpi/kpi.ts new file mode 100644 index 000000000000..18d7bbfce805 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/kpi/kpi.ts @@ -0,0 +1,244 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `KIP` entity defines a metric and a target. + */ +export interface Kpi { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Data Insight Chart Referred by this Kpi Objective. + */ + dataInsightChart: EntityReference; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the KpiObjective. + */ + description: string; + /** + * Display Name that identifies this KPI Definition. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * End Date for the KPIs + */ + endDate: number; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this KPI Definition instance. + */ + id?: string; + /** + * Result of the Kpi + */ + kpiResult?: KpiResult; + metricType: KpiTargetType; + /** + * Name that identifies this KPI Definition. + */ + name: string; + /** + * Owners of this KPI definition. + */ + owners?: EntityReference[]; + /** + * Start Date for the KPIs + */ + startDate: number; + /** + * Metrics from the chart and the target to achieve the result. + */ + targetValue: number; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Data Insight Chart Referred by this Kpi Objective. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * Owners of this KPI definition. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Result of the Kpi + * + * Schema to capture kpi result. + */ +export interface KpiResult { + /** + * KPI FQN + */ + kpiFqn?: string; + /** + * Metric and their corresponding current results + */ + targetResult: KpiTarget[]; + /** + * Data one which result is updated + */ + timestamp: number; +} + +/** + * This schema defines the parameter values that can be passed for a Kpi Parameter. + */ +export interface KpiTarget { + /** + * name of the parameter. Must match the parameter names in metrics of the chart this + * objective refers + */ + name: string; + /** + * whether the target value was met or not. + */ + targetMet?: boolean; + /** + * value to be passed for the Parameters. These are input from Users. We capture this in + * string and convert during the runtime. + */ + value: string; +} + +/** + * This enum defines the type of key Result + */ +export enum KpiTargetType { + Number = "NUMBER", + Percentage = "PERCENTAGE", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUnusedAssetsCount.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUnusedAssetsCount.ts new file mode 100644 index 000000000000..d53314a9b2dc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUnusedAssetsCount.ts @@ -0,0 +1,61 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * AggregatedUnusedAssetsCount data blob + */ +export interface AggregatedUnusedAssetsCount { + /** + * Frequently used Data Assets + */ + frequentlyUsedDataAssets?: DataAssetValues; + /** + * timestamp + */ + timestamp?: number; + /** + * Unused Data Assets + */ + unusedDataAssets?: DataAssetValues; +} + +/** + * Frequently used Data Assets + * + * Count or Size in bytes of Data Assets over a time period + * + * Unused Data Assets + */ +export interface DataAssetValues { + /** + * Data Asset Count or Size for 14 days + */ + fourteenDays?: number | null; + /** + * Data Asset Count or Size for 7 days + */ + sevenDays?: number | null; + /** + * Data Asset Count or Size for 60 days + */ + sixtyDays?: number | null; + /** + * Data Asset Count or Size for 30 days + */ + thirtyDays?: number | null; + /** + * Data Asset Count or Size for 3 days + */ + threeDays?: number | null; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUnusedAssetsSize.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUnusedAssetsSize.ts new file mode 100644 index 000000000000..fa8273e0d63d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUnusedAssetsSize.ts @@ -0,0 +1,61 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * AggregatedUnusedAssetsSize data blob + */ +export interface AggregatedUnusedAssetsSize { + /** + * Frequently used Data Assets + */ + frequentlyUsedDataAssets?: DataAssetValues; + /** + * timestamp + */ + timestamp?: number; + /** + * Unused Data Assets + */ + unusedDataAssets?: DataAssetValues; +} + +/** + * Frequently used Data Assets + * + * Count or Size in bytes of Data Assets over a time period + * + * Unused Data Assets + */ +export interface DataAssetValues { + /** + * Data Asset Count or Size for 14 days + */ + fourteenDays?: number | null; + /** + * Data Asset Count or Size for 7 days + */ + sevenDays?: number | null; + /** + * Data Asset Count or Size for 60 days + */ + sixtyDays?: number | null; + /** + * Data Asset Count or Size for 30 days + */ + thirtyDays?: number | null; + /** + * Data Asset Count or Size for 3 days + */ + threeDays?: number | null; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.ts new file mode 100644 index 000000000000..575b3837df57 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * AggregatedUsedVsUnusedAssetsCount data blob + */ +export interface AggregatedUsedVsUnusedAssetsCount { + /** + * timestamp + */ + timestamp?: number; + /** + * Count of unused assets (last access >= 3 days) + */ + Unused?: number; + /** + * Percentage of the count of unused assets (last access >= 3 days) + */ + UnusedPercentage?: number; + /** + * Count of used assets (last access < 3 days) + */ + Used?: number; + /** + * Percentage of the count of used assets (last access < 3 days) + */ + UsedPercentage?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.ts new file mode 100644 index 000000000000..3700aad84d89 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * AggregatedUsedVsUnusedAssetsSize data blob + */ +export interface AggregatedUsedVsUnusedAssetsSize { + /** + * timestamp + */ + timestamp?: number; + /** + * Size of unused assets (last access >= 3 days) + */ + Unused?: number; + /** + * Percentage of the size of unused assets (last access >= 3 days) + */ + UnusedPercentage?: number; + /** + * Size of used assets (last access < 3 days) + */ + Used?: number; + /** + * Percentage of the size of used assets (last access < 3 days) + */ + UsedPercentage?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/dailyActiveUsers.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/dailyActiveUsers.ts new file mode 100644 index 000000000000..9221e59621f7 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/dailyActiveUsers.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * dailyActiveUsers data blob + */ +export interface DailyActiveUsers { + /** + * Number of active users (user with at least 1 session). + */ + activeUsers?: number; + /** + * timestamp + */ + timestamp?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/mostActiveUsers.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/mostActiveUsers.ts new file mode 100644 index 000000000000..51273478e8bd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/mostActiveUsers.ts @@ -0,0 +1,47 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * pageViewsByEntities data blob + */ +export interface MostActiveUsers { + /** + * avg. duration of a sessions in seconds + */ + avgSessionDuration?: number; + /** + * date time of the most recent session for the user + */ + lastSession?: number; + /** + * Total number of pages viewed by the user + */ + pageViews?: number; + /** + * Total duration of all sessions in seconds + */ + sessionDuration?: number; + /** + * Total number of sessions + */ + sessions?: number; + /** + * Team a user belongs to + */ + team?: string; + /** + * Name of a user + */ + userName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/mostViewedEntities.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/mostViewedEntities.ts new file mode 100644 index 000000000000..8636141c4678 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/mostViewedEntities.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * pageViewsByEntities data blob + */ +export interface MostViewedEntities { + /** + * Number of page views + */ + entityFqn?: string; + /** + * Entity href link + */ + entityHref?: string; + /** + * Type of entity. Derived from the page URL. + */ + entityType?: string; + /** + * Owner of the entity + */ + owner?: string; + /** + * Type of entity. Derived from the page URL. + */ + pageViews?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/pageViewsByEntities.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/pageViewsByEntities.ts new file mode 100644 index 000000000000..b05ca2edcd09 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/pageViewsByEntities.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * pageViewsByEntities data blob + */ +export interface PageViewsByEntities { + /** + * Type of entity. Derived from the page URL. + */ + entityType?: string; + /** + * Number of page views + */ + pageViews?: number; + /** + * timestamp + */ + timestamp?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/unusedAssets.ts b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/unusedAssets.ts new file mode 100644 index 000000000000..a2279a4653b3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/dataInsight/type/unusedAssets.ts @@ -0,0 +1,82 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * UnusedAssets data blob + */ +export interface UnusedAssets { + /** + * Entity of the life cycle data + */ + entity?: EntityReference; + /** + * timestamp + */ + lastAccessedAt?: number; + /** + * Size of the asset in bytes + */ + sizeInBytes?: number; +} + +/** + * Entity of the life cycle data + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/email/emailRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/email/emailRequest.ts new file mode 100644 index 000000000000..af4055923b60 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/email/emailRequest.ts @@ -0,0 +1,67 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Email Request for creating Email + */ +export interface EmailRequest { + /** + * List of BCC + */ + bccMails?: NameEmailPair[]; + /** + * List of CC + */ + ccMails?: NameEmailPair[]; + /** + * Content for mail + */ + content?: string; + contentType: ContentType; + /** + * List of Receiver Name with Email + */ + recipientMails?: NameEmailPair[]; + /** + * From Email Address + */ + senderMail?: string; + /** + * Sender Name + */ + senderName?: string; + /** + * Subject for Mail + */ + subject: string; +} + +/** + * Name Email Pair + */ +export interface NameEmailPair { + /** + * Email address of the user. + */ + email: string; + /** + * Name + */ + name?: string; +} + +export enum ContentType { + HTML = "html", + Plain = "plain", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/email/emailTemplate.ts b/openmetadata-ui/src/main/resources/ui/src/generated/email/emailTemplate.ts new file mode 100644 index 000000000000..e9ddd0b23ef3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/email/emailTemplate.ts @@ -0,0 +1,41 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema defining email templates. + */ +export interface EmailTemplate { + /** + * List of placeholders. + */ + placeHolders: EmailTemplatePlaceholder[]; + /** + * Template data. + */ + template: string; +} + +/** + * Schema defining placeholders used in email templates. + */ +export interface EmailTemplatePlaceholder { + /** + * Description of what this placeholder represents. + */ + description: string; + /** + * Name of the placeholder. + */ + name: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/email/emailTemplatePlaceholder.ts b/openmetadata-ui/src/main/resources/ui/src/generated/email/emailTemplatePlaceholder.ts new file mode 100644 index 000000000000..7fd51b156a0e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/email/emailTemplatePlaceholder.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema defining placeholders used in email templates. + */ +export interface EmailTemplatePlaceholder { + /** + * Description of what this placeholder represents. + */ + description: string; + /** + * Name of the placeholder. + */ + name: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/email/smtpSettings.ts b/openmetadata-ui/src/main/resources/ui/src/generated/email/smtpSettings.ts new file mode 100644 index 000000000000..f872c47ea65e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/email/smtpSettings.ts @@ -0,0 +1,69 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the SMTP Settings for sending Email + */ +export interface SMTPSettings { + /** + * Emailing Entity + */ + emailingEntity?: string; + /** + * If this is enable password will details will be shared on mail + */ + enableSmtpServer?: boolean; + /** + * Openmetadata Server Endpoint + */ + openMetadataUrl: string; + /** + * Smtp Server Password + */ + password?: string; + /** + * Mail of the sender + */ + senderMail: string; + /** + * Smtp Server Endpoint + */ + serverEndpoint: string; + /** + * Smtp Server Port + */ + serverPort: number; + /** + * Support Url + */ + supportUrl?: string; + templatePath?: string; + templates?: Templates; + transportationStrategy?: TransportationStrategy; + /** + * Smtp Server Username + */ + username?: string; +} + +export enum Templates { + Collate = "collate", + Openmetadata = "openmetadata", +} + +export enum TransportationStrategy { + SMTP = "SMTP", + SMTPTLS = "SMTP_TLS", + Smtps = "SMTPS", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/email/templateValidationReponse.ts b/openmetadata-ui/src/main/resources/ui/src/generated/email/templateValidationReponse.ts new file mode 100644 index 000000000000..55c9fe5d02dd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/email/templateValidationReponse.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema defining email templates. + */ +export interface TemplateValidationReponse { + /** + * List of additional placeholders. + */ + additionalPlaceholder?: string[]; + /** + * Flag indicating if the template is valid. + */ + isValid?: boolean; + /** + * Validation message. + */ + message?: string; + /** + * List of missing placeholders. + */ + missingPlaceholder?: string[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/app.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/app.ts new file mode 100644 index 000000000000..d1424da5680a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/app.ts @@ -0,0 +1,1031 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the applications for Open-Metadata. + */ +export interface App { + /** + * Allow users to configure the app from the UI. If `false`, the `configure` step will be + * hidden. + */ + allowConfiguration?: boolean; + /** + * Application Configuration object. + */ + appConfiguration?: any[] | boolean | CollateAIAppConfig | number | null | string; + /** + * Application Logo Url. + */ + appLogoUrl?: string; + /** + * In case the app supports scheduling, list of different app schedules + */ + appSchedule: any[] | boolean | AppScheduleClass | number | number | null | string; + /** + * Application Screenshots. + */ + appScreenshots?: string[]; + /** + * This schema defines the type of application. + */ + appType: AppType; + /** + * Bot User Associated with this application. + */ + bot?: EntityReference; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Fully Qualified ClassName for the Schedule + */ + className: string; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the Application. + */ + description?: string; + /** + * Developer For the Application. + */ + developer?: string; + /** + * Url for the developer + */ + developerUrl?: string; + /** + * Display Name for the application. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * Features of the Application. + */ + features?: string; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this application. + */ + id: string; + /** + * Name of the Application. + */ + name: string; + openMetadataServerConnection?: OpenMetadataConnection; + /** + * Owners of this workflow. + */ + owners?: EntityReference[]; + /** + * Permission used by Native Applications. + */ + permission: Permissions; + /** + * References to pipelines deployed for this database service to extract metadata, usage, + * lineage etc.. + */ + pipelines?: EntityReference[]; + /** + * Flag to enable/disable preview for the application. If the app is in preview mode, it + * can't be installed. + */ + preview?: boolean; + /** + * Privacy Policy for the developer + */ + privacyPolicyUrl?: string; + /** + * Application Private configuration loaded at runtime. + */ + privateConfiguration?: PrivateConfig; + provider?: ProviderType; + /** + * Execution Configuration. + */ + runtime: ExecutionContext; + /** + * This schema defines the Schedule Type of Application. + */ + scheduleType: ScheduleType; + /** + * Fully Qualified class name for the Python source that will execute the external + * application. + */ + sourcePythonClass?: string; + /** + * Support Email for the application + */ + supportEmail?: string; + /** + * If the app run can be interrupted as part of the execution. + */ + supportsInterrupt?: boolean; + /** + * A system app cannot be uninstalled or modified. + */ + system?: boolean; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Configuration for the CollateAI External Application. + * + * Configuration for the Automator External Application. + * + * No configuration needed to instantiate the Data Insights Pipeline. The logic is handled + * in the backend. + * + * Search Indexing App. + * + * This schema defines the Slack App Token Configuration + */ +export interface CollateAIAppConfig { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + filter?: string; + /** + * Patch the description if it is empty, instead of raising a suggestion + */ + patchIfEmpty?: boolean; + /** + * Application Type + */ + type?: Type; + /** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + */ + actions?: Action[]; + /** + * Entities selected to run the automation. + */ + resources?: Resource; + backfillConfiguration?: BackfillConfiguration; + /** + * Maximum number of events processed at a time (Default 100). + * + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Recreates the DataAssets index on DataInsights. Useful if you changed a Custom Property + * Type and are facing errors. Bear in mind that recreating the index will delete your + * DataAssets and a backfill will be needed. + */ + recreateDataAssetsIndex?: boolean; + sendToAdmins?: boolean; + sendToTeams?: boolean; + /** + * Number of threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Maximum number of events sent in a batch (Default 100). + */ + payLoadSize?: number; + /** + * Number of threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to user internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Bot Token + */ + botToken?: string; + /** + * User Token + */ + userToken?: string; +} + +/** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + * + * Apply Tags to the selected assets. + * + * Remove Tags Action Type + * + * Add an owner to the selected assets. + * + * Remove Owner Action Type + * + * Add owners to the selected assets. + * + * Propagate description, tags and glossary terms via lineage + * + * ML Tagging action configuration for external automator. + */ +export interface Action { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + * + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + * + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + * + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + * + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + * + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + * + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + * + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + * + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + * + * Tags to remove + */ + tags?: TagLabel[]; + /** + * Application Type + */ + type: ActionType; + /** + * Domain to apply + */ + domain?: EntityReference; + /** + * Description to apply + */ + description?: string; + /** + * tier to apply + */ + tier?: TagLabel; + /** + * Owners to apply + */ + owners?: EntityReference[]; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; +} + +/** + * Domain to apply + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners to apply + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Bot User Associated with this application. + * + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + * + * tier to apply + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + * + * Remove Tags Action Type. + * + * Add Owner Action Type. + * + * Remove Domain Action Type + * + * Add Description Action Type. + * + * Remove Description Action Type + * + * Add Tier Action Type. + * + * Remove Tier Action Type + * + * Remove Owner Action Type + * + * Lineage propagation action type. + * + * ML PII Tagging action type. + */ +export enum ActionType { + AddDescriptionAction = "AddDescriptionAction", + AddDomainAction = "AddDomainAction", + AddOwnerAction = "AddOwnerAction", + AddTagsAction = "AddTagsAction", + AddTierAction = "AddTierAction", + LineagePropagationAction = "LineagePropagationAction", + MLTaggingAction = "MLTaggingAction", + RemoveDescriptionAction = "RemoveDescriptionAction", + RemoveDomainAction = "RemoveDomainAction", + RemoveOwnerAction = "RemoveOwnerAction", + RemoveTagsAction = "RemoveTagsAction", + RemoveTierAction = "RemoveTierAction", +} + +/** + * Backfill Configuration + */ +export interface BackfillConfiguration { + /** + * Enable Backfill for the configured dates + */ + enabled?: boolean; + /** + * Date for which the backfill will end + */ + endDate?: Date; + /** + * Date from which to start the backfill + */ + startDate?: Date; + [property: string]: any; +} + +/** + * Entities selected to run the automation. + */ +export interface Resource { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + queryFilter?: string; + /** + * Type of the entity. E.g., 'table', 'chart',... + */ + type?: string[]; + [property: string]: any; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Application Type + * + * Application type. + */ +export enum Type { + Automator = "Automator", + CollateAI = "CollateAI", + DataInsights = "DataInsights", + DataInsightsReport = "DataInsightsReport", + SearchIndexing = "SearchIndexing", +} + +export interface AppScheduleClass { + /** + * Cron Expression in case of Custom scheduled Trigger + */ + cronExpression?: string; + scheduleTimeline: ScheduleTimeline; +} + +/** + * This schema defines the Application ScheduleTimeline Options + */ +export enum ScheduleTimeline { + Custom = "Custom", + Daily = " Daily", + Hourly = "Hourly", + Monthly = "Monthly", + None = "None", + Weekly = "Weekly", +} + +/** + * This schema defines the type of application. + */ +export enum AppType { + External = "external", + Internal = "internal", +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * OpenMetadata Connection Config + */ +export interface OpenMetadataConnection { + /** + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + */ + hostPort: string; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: Config; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * Service Type + */ + type?: OpenmetadataType; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: VerifySSL; +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * SSL Configuration for OpenMetadata Server + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * OpenMetadata service type + */ +export enum OpenmetadataType { + OpenMetadata = "OpenMetadata", +} + +/** + * Flag to verify SSL Certificate for OpenMetadata Server. + * + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Permission used by Native Applications. + * + * This schema defines the Permission used by Native Application. + */ +export enum Permissions { + All = "All", +} + +/** + * Application Private configuration loaded at runtime. + * + * PRivate Configuration for the CollateAI External Application. + */ +export interface PrivateConfig { + /** + * Collate Server public URL. WAII will use this information to interact with the server. + * E.g., https://sandbox.getcollate.io + */ + collateURL: string; + /** + * Limits for the CollateAI Application. + */ + limits: CollateAILimits; + /** + * WAII API Token + */ + token: string; + /** + * WAII API host URL + */ + waiiInstance: string; +} + +/** + * Limits for the CollateAI Application. + */ +export interface CollateAILimits { + /** + * Start of the billing cycle. + */ + billingCycleStart?: Date; + /** + * Maximum number of descriptions generated by the CollateAI + */ + descriptions?: number; + /** + * Maximum number of queries generated by CollateAI. + */ + queries?: number; + [property: string]: any; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * Execution Configuration. + * + * Live Execution object. + * + * Scheduled Execution Context Configuration. + */ +export interface ExecutionContext { +} + +/** + * This schema defines the Schedule Type of Application. + * + * This schema defines the type of application. + */ +export enum ScheduleType { + Live = "Live", + NoSchedule = "NoSchedule", + Scheduled = "Scheduled", + ScheduledOrManual = "ScheduledOrManual", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/appExtension.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/appExtension.ts new file mode 100644 index 000000000000..5958d1612f72 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/appExtension.ts @@ -0,0 +1,42 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * App Extension Object. + */ +export interface AppExtension { + /** + * Unique identifier of this application. + */ + appId: string; + /** + * Name of the application. + */ + appName: string; + extension: ExtensionType; + /** + * Start of the job status. + */ + timestamp?: number; + [property: string]: any; +} + +/** + * Extension type. + */ +export enum ExtensionType { + Custom = "custom", + Limits = "limits", + Status = "status", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/appRunRecord.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/appRunRecord.ts new file mode 100644 index 000000000000..80d9380528d0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/appRunRecord.ts @@ -0,0 +1,98 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * App Run Record. + */ +export interface AppRunRecord { + /** + * Unique identifier of this application for which the job is ran. + */ + appId?: string; + /** + * Name of the application. + */ + appName?: string; + /** + * End time of the job status. + */ + endTime?: number; + /** + * Execution time of the job status. + */ + executionTime?: number; + /** + * Extension type. + */ + extension?: string; + /** + * Failure Context for the Application. + */ + failureContext?: { [key: string]: any }; + /** + * This schema defines the type of application Run. + */ + runType?: string; + scheduleInfo?: any[] | boolean | AppScheduleClass | number | number | null | string; + /** + * Start of the job status. + */ + startTime?: number; + /** + * Status for the Job. + */ + status?: Status; + /** + * Success Context for the Application. + */ + successContext?: { [key: string]: any }; + /** + * Update time of the job status. + */ + timestamp?: number; +} + +export interface AppScheduleClass { + /** + * Cron Expression in case of Custom scheduled Trigger + */ + cronExpression?: string; + scheduleTimeline: ScheduleTimeline; +} + +/** + * This schema defines the Application ScheduleTimeline Options + */ +export enum ScheduleTimeline { + Custom = "Custom", + Daily = " Daily", + Hourly = "Hourly", + Monthly = "Monthly", + None = "None", + Weekly = "Weekly", +} + +/** + * Status for the Job. + */ +export enum Status { + Active = "active", + ActiveError = "activeError", + Completed = "completed", + Failed = "failed", + Running = "running", + Started = "started", + Stopped = "stopped", + Success = "success", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addDescriptionAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addDescriptionAction.ts new file mode 100644 index 000000000000..f2abd143f0f6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addDescriptionAction.ts @@ -0,0 +1,46 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Apply Tags to the selected assets. + */ +export interface AddDescriptionAction { + /** + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + */ + applyToChildren?: string[]; + /** + * Description to apply + */ + description: string; + /** + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + */ + overwriteMetadata?: boolean; + /** + * Application Type + */ + type: AddDescriptionActionType; +} + +/** + * Application Type + * + * Add Description Action Type. + */ +export enum AddDescriptionActionType { + AddDescriptionAction = "AddDescriptionAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addDomainAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addDomainAction.ts new file mode 100644 index 000000000000..b7fd679fd531 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addDomainAction.ts @@ -0,0 +1,92 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Add an owner to the selected assets. + */ +export interface AddDomainAction { + /** + * Domain to apply + */ + domain: EntityReference; + /** + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + */ + overwriteMetadata?: boolean; + /** + * Application Type + */ + type: AddDomainActionType; +} + +/** + * Domain to apply + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Application Type + * + * Add Owner Action Type. + */ +export enum AddDomainActionType { + AddDomainAction = "AddDomainAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addOwnerAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addOwnerAction.ts new file mode 100644 index 000000000000..78be58b0000a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addOwnerAction.ts @@ -0,0 +1,97 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Add owners to the selected assets. + */ +export interface AddOwnerAction { + /** + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + */ + overwriteMetadata?: boolean; + /** + * Owners to apply + */ + owners: EntityReference[]; + /** + * Application Type + */ + type: AddOwnerActionType; +} + +/** + * Owners to apply + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Application Type + * + * Add Owner Action Type. + */ +export enum AddOwnerActionType { + AddOwnerAction = "AddOwnerAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addTagsAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addTagsAction.ts new file mode 100644 index 000000000000..dbba86b42f58 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addTagsAction.ts @@ -0,0 +1,133 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Apply Tags to the selected assets. + */ +export interface AddTagsAction { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + */ + tags: TagLabel[]; + /** + * Application Type + */ + type: AddTagsActionType; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + */ +export enum AddTagsActionType { + AddTagsAction = "AddTagsAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addTierAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addTierAction.ts new file mode 100644 index 000000000000..5df19709c0dd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/addTierAction.ts @@ -0,0 +1,130 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Add an owner to the selected assets. + */ +export interface AddTierAction { + /** + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + */ + overwriteMetadata?: boolean; + /** + * tier to apply + */ + tier: TagLabel; + /** + * Application Type + */ + type: AddTierActionType; +} + +/** + * tier to apply + * + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tier Action Type. + */ +export enum AddTierActionType { + AddTierAction = "AddTierAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/lineagePropagationAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/lineagePropagationAction.ts new file mode 100644 index 000000000000..a49e465515f3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/lineagePropagationAction.ts @@ -0,0 +1,66 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Propagate description, tags and glossary terms via lineage + */ +export interface LineagePropagationAction { + /** + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; + /** + * Application Type + */ + type: LineagePropagationActionType; +} + +/** + * Application Type + * + * Lineage propagation action type. + */ +export enum LineagePropagationActionType { + LineagePropagationAction = "LineagePropagationAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/mlTaggingAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/mlTaggingAction.ts new file mode 100644 index 000000000000..fb8730612a70 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/mlTaggingAction.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * ML Tagging action configuration for external automator. + */ +export interface MlTaggingAction { + /** + * Application Type + */ + type: MlTaggingActionType; +} + +/** + * Application Type + * + * ML PII Tagging action type. + */ +export enum MlTaggingActionType { + MLTaggingAction = "MLTaggingAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeDescriptionAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeDescriptionAction.ts new file mode 100644 index 000000000000..93de962a2928 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeDescriptionAction.ts @@ -0,0 +1,37 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Remove Owner Action Type + */ +export interface RemoveDescriptionAction { + /** + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Application Type + */ + type: RemoveDescriptionActionType; +} + +/** + * Application Type + * + * Remove Description Action Type + */ +export enum RemoveDescriptionActionType { + RemoveDescriptionAction = "RemoveDescriptionAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeDomainAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeDomainAction.ts new file mode 100644 index 000000000000..9c131bf27708 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeDomainAction.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Remove Owner Action Type + */ +export interface RemoveDomainAction { + /** + * Application Type + */ + type: RemoveDomainActionType; +} + +/** + * Application Type + * + * Remove Domain Action Type + */ +export enum RemoveDomainActionType { + RemoveDomainAction = "RemoveDomainAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeOwnerAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeOwnerAction.ts new file mode 100644 index 000000000000..9a9796d9a1fb --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeOwnerAction.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Remove Owner Action Type + */ +export interface RemoveOwnerAction { + /** + * Application Type + */ + type: RemoveOwnerActionType; +} + +/** + * Application Type + * + * Remove Owner Action Type + */ +export enum RemoveOwnerActionType { + RemoveOwnerAction = "RemoveOwnerAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeTagsAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeTagsAction.ts new file mode 100644 index 000000000000..0975bf662a15 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeTagsAction.ts @@ -0,0 +1,128 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Remove Tags Action Type + */ +export interface RemoveTagsAction { + /** + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Tags to remove + */ + tags: TagLabel[]; + /** + * Application Type + */ + type: RemoveTagsActionType; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Remove Tags Action Type. + */ +export enum RemoveTagsActionType { + RemoveTagsAction = "RemoveTagsAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeTierAction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeTierAction.ts new file mode 100644 index 000000000000..3a7fc5f28575 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automator/removeTierAction.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Remove Owner Action Type + */ +export interface RemoveTierAction { + /** + * Application Type + */ + type: RemoveTierActionType; +} + +/** + * Application Type + * + * Remove Tier Action Type + */ +export enum RemoveTierActionType { + RemoveTierAction = "RemoveTierAction", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automatorAppConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automatorAppConfig.ts new file mode 100644 index 000000000000..4c879bb5cf5d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/automatorAppConfig.ts @@ -0,0 +1,355 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Configuration for the Automator External Application. + */ +export interface AutomatorAppConfig { + /** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + */ + actions: Action[]; + /** + * Entities selected to run the automation. + */ + resources: Resource; + /** + * Application Type + */ + type: AutomatorAppType; +} + +/** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + * + * Apply Tags to the selected assets. + * + * Remove Tags Action Type + * + * Add an owner to the selected assets. + * + * Remove Owner Action Type + * + * Add owners to the selected assets. + * + * Propagate description, tags and glossary terms via lineage + * + * ML Tagging action configuration for external automator. + */ +export interface Action { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + * + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + * + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + * + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + * + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + * + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + * + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + * + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + * + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + * + * Tags to remove + */ + tags?: TagLabel[]; + /** + * Application Type + */ + type: ActionType; + /** + * Domain to apply + */ + domain?: EntityReference; + /** + * Description to apply + */ + description?: string; + /** + * tier to apply + */ + tier?: TagLabel; + /** + * Owners to apply + */ + owners?: EntityReference[]; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; +} + +/** + * Domain to apply + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners to apply + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + * + * tier to apply + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + * + * Remove Tags Action Type. + * + * Add Owner Action Type. + * + * Remove Domain Action Type + * + * Add Description Action Type. + * + * Remove Description Action Type + * + * Add Tier Action Type. + * + * Remove Tier Action Type + * + * Remove Owner Action Type + * + * Lineage propagation action type. + * + * ML PII Tagging action type. + */ +export enum ActionType { + AddDescriptionAction = "AddDescriptionAction", + AddDomainAction = "AddDomainAction", + AddOwnerAction = "AddOwnerAction", + AddTagsAction = "AddTagsAction", + AddTierAction = "AddTierAction", + LineagePropagationAction = "LineagePropagationAction", + MLTaggingAction = "MLTaggingAction", + RemoveDescriptionAction = "RemoveDescriptionAction", + RemoveDomainAction = "RemoveDomainAction", + RemoveOwnerAction = "RemoveOwnerAction", + RemoveTagsAction = "RemoveTagsAction", + RemoveTierAction = "RemoveTierAction", +} + +/** + * Entities selected to run the automation. + */ +export interface Resource { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + queryFilter?: string; + /** + * Type of the entity. E.g., 'table', 'chart',... + */ + type?: string[]; + [property: string]: any; +} + +/** + * Application Type + * + * Application type. + */ +export enum AutomatorAppType { + Automator = "Automator", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/collateAIAppConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/collateAIAppConfig.ts new file mode 100644 index 000000000000..7f3bdb1400af --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/collateAIAppConfig.ts @@ -0,0 +1,42 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Configuration for the CollateAI External Application. + */ +export interface CollateAIAppConfig { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + filter: string; + /** + * Patch the description if it is empty, instead of raising a suggestion + */ + patchIfEmpty?: boolean; + /** + * Application Type + */ + type?: CollateAIAppType; +} + +/** + * Application Type + * + * Application type. + */ +export enum CollateAIAppType { + CollateAI = "CollateAI", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/slackAppTokenConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/slackAppTokenConfiguration.ts new file mode 100644 index 000000000000..eca464f8fe4e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/external/slackAppTokenConfiguration.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Slack App Token Configuration + */ +export interface SlackAppTokenConfiguration { + /** + * Bot Token + */ + botToken: string; + /** + * User Token + */ + userToken: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/dataInsightsAppConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/dataInsightsAppConfig.ts new file mode 100644 index 000000000000..ab3b6338185f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/dataInsightsAppConfig.ts @@ -0,0 +1,61 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * No configuration needed to instantiate the Data Insights Pipeline. The logic is handled + * in the backend. + */ +export interface DataInsightsAppConfig { + backfillConfiguration?: BackfillConfiguration; + /** + * Maximum number of events processed at a time (Default 100). + */ + batchSize?: number; + /** + * Recreates the DataAssets index on DataInsights. Useful if you changed a Custom Property + * Type and are facing errors. Bear in mind that recreating the index will delete your + * DataAssets and a backfill will be needed. + */ + recreateDataAssetsIndex?: boolean; + /** + * Application Type + */ + type?: DataInsightsAppType; +} + +/** + * Backfill Configuration + */ +export interface BackfillConfiguration { + /** + * Enable Backfill for the configured dates + */ + enabled?: boolean; + /** + * Date for which the backfill will end + */ + endDate?: Date; + /** + * Date from which to start the backfill + */ + startDate?: Date; + [property: string]: any; +} + +/** + * Application Type + */ +export enum DataInsightsAppType { + DataInsights = "DataInsights", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/dataInsightsReportAppConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/dataInsightsReportAppConfig.ts new file mode 100644 index 000000000000..6ec32d30cc50 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/dataInsightsReportAppConfig.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + export interface DataInsightsReportAppConfigClass { + sendToAdmins?: boolean; + sendToTeams?: boolean; + /** + * Application Type + */ + type?: DataInsightsReportAppType; +} + +/** + * Application Type + * + * Application type. + */ +export enum DataInsightsReportAppType { + DataInsightsReport = "DataInsightsReport", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/searchIndexingAppConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/searchIndexingAppConfig.ts new file mode 100644 index 000000000000..6cd169b84593 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/internal/searchIndexingAppConfig.ts @@ -0,0 +1,91 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Search Indexing App. + */ +export interface SearchIndexingAppConfig { + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Number of threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Maximum number of events sent in a batch (Default 100). + */ + payLoadSize?: number; + /** + * Number of threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to user internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Application Type + */ + type?: SearchIndexingType; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Application Type + * + * Application type. + */ +export enum SearchIndexingType { + SearchIndexing = "SearchIndexing", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/private/external/collateAIAppPrivateConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/private/external/collateAIAppPrivateConfig.ts new file mode 100644 index 000000000000..03c416aff44c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/configuration/private/external/collateAIAppPrivateConfig.ts @@ -0,0 +1,55 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * PRivate Configuration for the CollateAI External Application. + */ +export interface CollateAIAppPrivateConfig { + /** + * Collate Server public URL. WAII will use this information to interact with the server. + * E.g., https://sandbox.getcollate.io + */ + collateURL: string; + /** + * Limits for the CollateAI Application. + */ + limits: CollateAILimits; + /** + * WAII API Token + */ + token: string; + /** + * WAII API host URL + */ + waiiInstance: string; +} + +/** + * Limits for the CollateAI Application. + */ +export interface CollateAILimits { + /** + * Start of the billing cycle. + */ + billingCycleStart?: Date; + /** + * Maximum number of descriptions generated by the CollateAI + */ + descriptions?: number; + /** + * Maximum number of queries generated by CollateAI. + */ + queries?: number; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/createAppRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/createAppRequest.ts new file mode 100644 index 000000000000..11416bff80ee --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/createAppRequest.ts @@ -0,0 +1,128 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the create applications request for Open-Metadata. + */ +export interface CreateAppRequest { + /** + * Application Configuration object. + */ + appConfiguration?: any; + appSchedule?: any[] | boolean | AppScheduleClass | number | number | null | string; + /** + * Fqn of Bot Associated with this application. + */ + bot?: string; + /** + * Description of the Application. + */ + description?: string; + /** + * Display Name for the application. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Name of the Application. + */ + name?: string; + /** + * Owners of this workflow. + */ + owners?: EntityReference[]; + /** + * If the app run can be interrupted as part of the execution. + */ + supportsInterrupt?: boolean; +} + +export interface AppScheduleClass { + /** + * Cron Expression in case of Custom scheduled Trigger + */ + cronExpression?: string; + scheduleTimeline: ScheduleTimeline; +} + +/** + * This schema defines the Application ScheduleTimeline Options + */ +export enum ScheduleTimeline { + Custom = "Custom", + Daily = " Daily", + Hourly = "Hourly", + Monthly = "Monthly", + None = "None", + Weekly = "Weekly", +} + +/** + * Owners of this workflow. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/liveExecutionContext.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/liveExecutionContext.ts new file mode 100644 index 000000000000..a50aa692b5d5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/liveExecutionContext.ts @@ -0,0 +1,28 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Live Execution object. + */ +export interface LiveExecutionContext { + /** + * If Live Execution is enabled + */ + enabled?: boolean; + /** + * Resource full classname to register to extend any endpoints. + */ + resources?: string[]; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/marketplace/appMarketPlaceDefinition.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/marketplace/appMarketPlaceDefinition.ts new file mode 100644 index 000000000000..3c65309e6805 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/marketplace/appMarketPlaceDefinition.ts @@ -0,0 +1,699 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the applications for Open-Metadata. + */ +export interface AppMarketPlaceDefinition { + /** + * Allow users to configure the app from the UI. If `false`, the `configure` step will be + * hidden. + */ + allowConfiguration?: boolean; + /** + * Application Configuration object. + */ + appConfiguration?: any[] | boolean | CollateAIAppConfig | number | null | string; + /** + * Application Logo Url. + */ + appLogoUrl?: string; + /** + * Application Screenshots. + */ + appScreenshots?: string[]; + /** + * This schema defines the type of application. + */ + appType: AppType; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Full Qualified ClassName for the the application + */ + className: string; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the Application. + */ + description?: string; + /** + * Developer For the Application. + */ + developer?: string; + /** + * Url for the developer + */ + developerUrl?: string; + /** + * Display Name for the application. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * Features of the Application. + */ + features?: string; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this application. + */ + id: string; + /** + * Name of the Application. + */ + name: string; + /** + * Owners of this workflow. + */ + owners?: EntityReference[]; + /** + * Permission used by Native Applications. + */ + permission: Permissions; + /** + * Flag to enable/disable preview for the application. If the app is in preview mode, it + * can't be installed. + */ + preview?: boolean; + /** + * Privacy Policy for the developer + */ + privacyPolicyUrl?: string; + /** + * If app type is live, user can provide additional runtime context. + */ + runtime?: ExecutionContext; + /** + * This schema defines the Schedule Type of Application. + */ + scheduleType: ScheduleType; + /** + * Fully Qualified class name for the Python source that will execute the external + * application. + */ + sourcePythonClass?: string; + /** + * Support Email for the application + */ + supportEmail?: string; + /** + * If the app run can be interrupted as part of the execution. + */ + supportsInterrupt?: boolean; + /** + * A system app cannot be uninstalled or modified. + */ + system?: boolean; + /** + * Tags associated with the entity. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Configuration for the CollateAI External Application. + * + * Configuration for the Automator External Application. + * + * No configuration needed to instantiate the Data Insights Pipeline. The logic is handled + * in the backend. + * + * Search Indexing App. + * + * This schema defines the Slack App Token Configuration + */ +export interface CollateAIAppConfig { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + filter?: string; + /** + * Patch the description if it is empty, instead of raising a suggestion + */ + patchIfEmpty?: boolean; + /** + * Application Type + */ + type?: Type; + /** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + */ + actions?: Action[]; + /** + * Entities selected to run the automation. + */ + resources?: Resource; + backfillConfiguration?: BackfillConfiguration; + /** + * Maximum number of events processed at a time (Default 100). + * + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Recreates the DataAssets index on DataInsights. Useful if you changed a Custom Property + * Type and are facing errors. Bear in mind that recreating the index will delete your + * DataAssets and a backfill will be needed. + */ + recreateDataAssetsIndex?: boolean; + sendToAdmins?: boolean; + sendToTeams?: boolean; + /** + * Number of threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Maximum number of events sent in a batch (Default 100). + */ + payLoadSize?: number; + /** + * Number of threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to user internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Bot Token + */ + botToken?: string; + /** + * User Token + */ + userToken?: string; +} + +/** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + * + * Apply Tags to the selected assets. + * + * Remove Tags Action Type + * + * Add an owner to the selected assets. + * + * Remove Owner Action Type + * + * Add owners to the selected assets. + * + * Propagate description, tags and glossary terms via lineage + * + * ML Tagging action configuration for external automator. + */ +export interface Action { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + * + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + * + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + * + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + * + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + * + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + * + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + * + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + * + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + * + * Tags to remove + */ + tags?: TagLabel[]; + /** + * Application Type + */ + type: ActionType; + /** + * Domain to apply + */ + domain?: EntityReference; + /** + * Description to apply + */ + description?: string; + /** + * tier to apply + */ + tier?: TagLabel; + /** + * Owners to apply + */ + owners?: EntityReference[]; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; +} + +/** + * Domain to apply + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners to apply + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + * + * tier to apply + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + * + * Remove Tags Action Type. + * + * Add Owner Action Type. + * + * Remove Domain Action Type + * + * Add Description Action Type. + * + * Remove Description Action Type + * + * Add Tier Action Type. + * + * Remove Tier Action Type + * + * Remove Owner Action Type + * + * Lineage propagation action type. + * + * ML PII Tagging action type. + */ +export enum ActionType { + AddDescriptionAction = "AddDescriptionAction", + AddDomainAction = "AddDomainAction", + AddOwnerAction = "AddOwnerAction", + AddTagsAction = "AddTagsAction", + AddTierAction = "AddTierAction", + LineagePropagationAction = "LineagePropagationAction", + MLTaggingAction = "MLTaggingAction", + RemoveDescriptionAction = "RemoveDescriptionAction", + RemoveDomainAction = "RemoveDomainAction", + RemoveOwnerAction = "RemoveOwnerAction", + RemoveTagsAction = "RemoveTagsAction", + RemoveTierAction = "RemoveTierAction", +} + +/** + * Backfill Configuration + */ +export interface BackfillConfiguration { + /** + * Enable Backfill for the configured dates + */ + enabled?: boolean; + /** + * Date for which the backfill will end + */ + endDate?: Date; + /** + * Date from which to start the backfill + */ + startDate?: Date; + [property: string]: any; +} + +/** + * Entities selected to run the automation. + */ +export interface Resource { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + queryFilter?: string; + /** + * Type of the entity. E.g., 'table', 'chart',... + */ + type?: string[]; + [property: string]: any; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Application Type + * + * Application type. + */ +export enum Type { + Automator = "Automator", + CollateAI = "CollateAI", + DataInsights = "DataInsights", + DataInsightsReport = "DataInsightsReport", + SearchIndexing = "SearchIndexing", +} + +/** + * This schema defines the type of application. + */ +export enum AppType { + External = "external", + Internal = "internal", +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Permission used by Native Applications. + * + * This schema defines the Permission used by Native Application. + */ +export enum Permissions { + All = "All", +} + +/** + * If app type is live, user can provide additional runtime context. + * + * Execution Configuration. + * + * Live Execution object. + * + * Scheduled Execution Context Configuration. + */ +export interface ExecutionContext { +} + +/** + * This schema defines the Schedule Type of Application. + * + * This schema defines the type of application. + */ +export enum ScheduleType { + Live = "Live", + NoSchedule = "NoSchedule", + Scheduled = "Scheduled", + ScheduledOrManual = "ScheduledOrManual", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.ts new file mode 100644 index 000000000000..8d50dceb6f61 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.ts @@ -0,0 +1,616 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the applications for Open-Metadata. + */ +export interface CreateAppMarketPlaceDefinitionReq { + /** + * Allow users to configure the app from the UI. If `false`, the `configure` step will be + * hidden. + */ + allowConfiguration?: boolean; + /** + * Application Configuration object. + */ + appConfiguration?: any[] | boolean | CollateAIAppConfig | number | null | string; + /** + * Application Logo Url. + */ + appLogoUrl?: string; + /** + * Application Screenshots. + */ + appScreenshots?: string[]; + /** + * This schema defines the type of application. + */ + appType: AppType; + /** + * Full Qualified ClassName for the the application + */ + className: string; + /** + * Description of the Application. + */ + description?: string; + /** + * Developer For the Application. + */ + developer?: string; + /** + * Url for the developer + */ + developerUrl?: string; + /** + * Display Name for the application. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Features of the Application. + */ + features?: string; + /** + * Name of the Application. + */ + name: string; + /** + * Owners of this workflow. + */ + owners?: EntityReference[]; + /** + * Permission used by Native Applications. + */ + permission: Permissions; + /** + * Privacy Policy for the developer + */ + privacyPolicyUrl?: string; + /** + * If app type is live, user can provide additional runtime context. + */ + runtime?: ExecutionContext; + /** + * This schema defines the Schedule Type of Application. + */ + scheduleType: ScheduleType; + /** + * Fully Qualified class name for the Python source that will execute the external + * application. + */ + sourcePythonClass?: string; + /** + * Support Email for the application + */ + supportEmail?: string; + /** + * If the app run can be interrupted as part of the execution. + */ + supportsInterrupt?: boolean; + /** + * A system app cannot be uninstalled or modified. + */ + system?: boolean; + /** + * Tags associated with the entity. + */ + tags?: TagLabel[]; +} + +/** + * Configuration for the CollateAI External Application. + * + * Configuration for the Automator External Application. + * + * No configuration needed to instantiate the Data Insights Pipeline. The logic is handled + * in the backend. + * + * Search Indexing App. + * + * This schema defines the Slack App Token Configuration + */ +export interface CollateAIAppConfig { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + filter?: string; + /** + * Patch the description if it is empty, instead of raising a suggestion + */ + patchIfEmpty?: boolean; + /** + * Application Type + */ + type?: Type; + /** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + */ + actions?: Action[]; + /** + * Entities selected to run the automation. + */ + resources?: Resource; + backfillConfiguration?: BackfillConfiguration; + /** + * Maximum number of events processed at a time (Default 100). + * + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Recreates the DataAssets index on DataInsights. Useful if you changed a Custom Property + * Type and are facing errors. Bear in mind that recreating the index will delete your + * DataAssets and a backfill will be needed. + */ + recreateDataAssetsIndex?: boolean; + sendToAdmins?: boolean; + sendToTeams?: boolean; + /** + * Number of threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Maximum number of events sent in a batch (Default 100). + */ + payLoadSize?: number; + /** + * Number of threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to user internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Bot Token + */ + botToken?: string; + /** + * User Token + */ + userToken?: string; +} + +/** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + * + * Apply Tags to the selected assets. + * + * Remove Tags Action Type + * + * Add an owner to the selected assets. + * + * Remove Owner Action Type + * + * Add owners to the selected assets. + * + * Propagate description, tags and glossary terms via lineage + * + * ML Tagging action configuration for external automator. + */ +export interface Action { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + * + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + * + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + * + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + * + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + * + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + * + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + * + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + * + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + * + * Tags to remove + */ + tags?: TagLabel[]; + /** + * Application Type + */ + type: ActionType; + /** + * Domain to apply + */ + domain?: EntityReference; + /** + * Description to apply + */ + description?: string; + /** + * tier to apply + */ + tier?: TagLabel; + /** + * Owners to apply + */ + owners?: EntityReference[]; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; +} + +/** + * Domain to apply + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners to apply + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + * + * tier to apply + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + * + * Remove Tags Action Type. + * + * Add Owner Action Type. + * + * Remove Domain Action Type + * + * Add Description Action Type. + * + * Remove Description Action Type + * + * Add Tier Action Type. + * + * Remove Tier Action Type + * + * Remove Owner Action Type + * + * Lineage propagation action type. + * + * ML PII Tagging action type. + */ +export enum ActionType { + AddDescriptionAction = "AddDescriptionAction", + AddDomainAction = "AddDomainAction", + AddOwnerAction = "AddOwnerAction", + AddTagsAction = "AddTagsAction", + AddTierAction = "AddTierAction", + LineagePropagationAction = "LineagePropagationAction", + MLTaggingAction = "MLTaggingAction", + RemoveDescriptionAction = "RemoveDescriptionAction", + RemoveDomainAction = "RemoveDomainAction", + RemoveOwnerAction = "RemoveOwnerAction", + RemoveTagsAction = "RemoveTagsAction", + RemoveTierAction = "RemoveTierAction", +} + +/** + * Backfill Configuration + */ +export interface BackfillConfiguration { + /** + * Enable Backfill for the configured dates + */ + enabled?: boolean; + /** + * Date for which the backfill will end + */ + endDate?: Date; + /** + * Date from which to start the backfill + */ + startDate?: Date; + [property: string]: any; +} + +/** + * Entities selected to run the automation. + */ +export interface Resource { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + queryFilter?: string; + /** + * Type of the entity. E.g., 'table', 'chart',... + */ + type?: string[]; + [property: string]: any; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Application Type + * + * Application type. + */ +export enum Type { + Automator = "Automator", + CollateAI = "CollateAI", + DataInsights = "DataInsights", + DataInsightsReport = "DataInsightsReport", + SearchIndexing = "SearchIndexing", +} + +/** + * This schema defines the type of application. + */ +export enum AppType { + External = "external", + Internal = "internal", +} + +/** + * Permission used by Native Applications. + * + * This schema defines the Permission used by Native Application. + */ +export enum Permissions { + All = "All", +} + +/** + * If app type is live, user can provide additional runtime context. + * + * Execution Configuration. + * + * Live Execution object. + * + * Scheduled Execution Context Configuration. + */ +export interface ExecutionContext { +} + +/** + * This schema defines the Schedule Type of Application. + * + * This schema defines the type of application. + */ +export enum ScheduleType { + Live = "Live", + NoSchedule = "NoSchedule", + Scheduled = "Scheduled", + ScheduledOrManual = "ScheduledOrManual", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/scheduledExecutionContext.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/scheduledExecutionContext.ts new file mode 100644 index 000000000000..deb25d2f333e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/applications/scheduledExecutionContext.ts @@ -0,0 +1,24 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Scheduled Execution Context Configuration. + */ +export interface ScheduledExecutionContext { + /** + * If Live Execution is Enabled. + */ + enabled?: boolean; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts new file mode 100644 index 000000000000..3d2864d145bd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/testServiceConnection.ts @@ -0,0 +1,3392 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Test Service Connection to test user provided configuration is valid or not. + */ +export interface TestServiceConnection { + /** + * Connection object. + */ + connection?: TestServiceConnectionConnection; + /** + * Type of the connection to test such as Snowflake, MySQL, Looker, etc. + */ + connectionType?: string; + /** + * Secrets Manager Provider to use for fetching secrets. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * Optional value that identifies this service name. + */ + serviceName?: string; + /** + * Type of service such as Database, Dashboard, Messaging, etc. + */ + serviceType?: ServiceType; +} + +/** + * Connection object. + * + * API Service Connection. + * + * Database Connection. + * + * Dashboard Connection. + * + * Pipeline Connection. + * + * MlModel Connection. + * + * Metadata Service Connection. + * + * Storage Connection. + * + * search Connection. + */ +export interface TestServiceConnectionConnection { + config?: ConfigClass; +} + +/** + * REST Connection Config + * + * Google BigQuery Connection Config + * + * Google BigTable Connection Config + * + * AWS Athena Connection Config + * + * Azure SQL Connection Config + * + * Clickhouse Connection Config + * + * Databricks Connection Config + * + * Db2 Connection Config + * + * DeltaLake Database Connection Config + * + * Druid Connection Config + * + * DynamoDB Connection Config + * + * Glue Connection Config + * + * Hive SQL Connection Config + * + * Impala SQL Connection Config + * + * MariaDB Database Connection Config + * + * Mssql Database Connection Config + * + * Mysql Database Connection Config + * + * SQLite Database Connection Config + * + * Oracle Database Connection Config + * + * Postgres Database Connection Config + * + * Presto Database Connection Config + * + * Redshift Connection Config + * + * Salesforce Connection Config + * + * SingleStore Database Connection Config + * + * Snowflake Connection Config + * + * Trino Connection Config + * + * Vertica Connection Config + * + * PinotDB Database Connection Config + * + * Datalake Connection Config + * + * Domo Database Connection Config + * + * Custom Database Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Sap Hana Database Connection Config + * + * MongoDB Connection Config + * + * Couchbase Connection Config + * + * Greenplum Database Connection Config + * + * Doris Database Connection Config + * + * UnityCatalog Connection Config + * + * SAS Connection Config + * + * Iceberg Catalog Connection Config + * + * Teradata Database Connection Config + * + * Sap ERP Database Connection Config + * + * Synapse Database Connection Config + * + * Exasol Database Connection Config + * + * Looker Connection Config + * + * Metabase Connection Config + * + * PowerBI Connection Config + * + * PowerBIReportServer Connection Config + * + * Redash Connection Config + * + * Superset Connection Config + * + * Tableau Connection Config + * + * Mode Connection Config + * + * Custom Dashboard Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Domo Dashboard Connection Config + * + * QuickSight Connection Config + * + * Qlik Sense Connection Config + * + * Lightdash Connection Config + * + * MicroStrategy Connection Config + * + * Qlik Cloud Connection Config + * + * Sigma Connection Config + * + * Kafka Connection Config + * + * Redpanda Connection Config + * + * Kinesis Connection Config + * + * Custom Messaging Service Connection to build a source that is not supported by + * OpenMetadata yet. + * + * Airflow Metadata Database Connection Config + * + * Glue Pipeline Connection Config + * + * Airbyte Metadata Database Connection Config + * + * Fivetran Metadata Database Connection Config + * + * Flink Metadata Connection Config + * + * Dagster Metadata Database Connection Config + * + * Nifi Metadata Pipeline Connection Config + * + * Domo Pipeline Connection Config + * + * Custom Pipeline Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Spline Metadata Database Connection Config + * + * Spark Metadata Pipeline Connection Config + * + * OpenLineage Connection Config + * + * KafkaConnect Connection Config + * + * DBTCloud Connection Config + * + * Matillion Connection + * + * Azure Data Factory Connection Config + * + * Stitch Connection + * + * MlFlow Connection Config + * + * Sklearn Connection Config + * + * Custom MlModel Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * SageMaker Connection Config + * + * Google VertexAI Connection Config + * + * Amundsen Connection Config + * + * Metadata to ElasticSearch Connection Config + * + * OpenMetadata Connection Config + * + * Atlas Connection Config + * + * Alation Connection Config + * + * Alation Sink Connection Config + * + * S3 Connection. + * + * ADLS Connection. + * + * GCS Connection. + * + * Custom Storage Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * ElasticSearch Connection. + * + * OpenSearch Connection. + * + * Custom Search Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface ConfigClass { + /** + * Open API Schema URL. + */ + openAPISchemaURL?: string; + /** + * Supports Metadata Extraction. + */ + supportsMetadataExtraction?: boolean; + /** + * Generated Token to connect to OpenAPI Schema. + * + * Generated Token to connect to Databricks. + * + * token to connect to Qlik Cloud. + * + * To Connect to Dagster Cloud + * + * Generated Token to connect to DBTCloud. + * + * Token to connect to Stitch api doc + */ + token?: string; + /** + * REST API Type + * + * Service Type + * + * Custom database service type + * + * Custom dashboard service type + * + * Custom messaging service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * Custom search service type + */ + type?: RESTType; + /** + * If using Metastore, Key-Value pairs that will be used to add configs to the SparkSession. + */ + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * GCP Credentials + * + * Azure Credentials + */ + credentials?: GCPCredentials; + /** + * BigQuery APIs URL. + * + * Host and port of the AzureSQL service. + * + * Host and port of the Clickhouse service. + * + * Host and port of the Databricks service. + * + * Host and port of the DB2 service. + * + * Host and port of the Druid service. + * + * Host and port of the Hive service. + * + * Host and port of the Impala service. + * + * Host and port of the MariaDB service. + * + * Host and port of the MSSQL service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Host and port of the Oracle service. + * + * Host and port of the source service. + * + * Host and port of the Presto service. + * + * Host and port of the Redshift service. + * + * Host and port of the SingleStore service. + * + * Host and port of the Trino service. + * + * Host and port of the Vertica service. + * + * Host and port of the PinotDB Broker service. + * + * Host and port of the MongoDB service when using the `mongodb` connection scheme. Only + * host when using the `mongodb+srv` scheme. + * + * Host and port of the Doris service. + * + * Host and port of the Teradata service. + * + * Host and Port of the SAP ERP instance. + * + * Host and port of the Azure Synapse service. + * + * URL to the Looker instance. + * + * Host and Port of the Metabase instance. + * + * Dashboard URL for PowerBI service. + * + * Dashboard URL for PowerBI Report Server. + * + * URL for the Redash instance + * + * URL for the superset instance. + * + * Tableau Server. + * + * URL for the mode instance. + * + * URL for the Qlik instance. + * + * Address for your running Lightdash instance + * + * Host and Port of the MicroStrategy instance. + * + * Host and Port of the Qlik Cloud instance. + * + * Sigma API url. + * + * Pipeline Service Management/UI URI. + * + * Pipeline Service Management/UI URL. + * + * Spline REST Server Host & Port. + * + * KafkaConnect Service Management/UI URI. + * + * Host and port of the Stitch API host + * + * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: + * bolt://localhost:7687. + * + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + * + * Host and port of the Atlas service. + * + * Host and port of the Alation service. + * + * Host and port of the ElasticSearch service. + * + * Host and port of the OpenSearch service. + */ + hostPort?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + * + * Mongo connection scheme options. + * + * Couchbase driver scheme options. + * + * Http/Https connection scheme + */ + scheme?: string; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + /** + * Supports Lineage Extraction. + */ + supportsLineageExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + /** + * Supports Usage Extraction. + */ + supportsUsageExtraction?: boolean; + /** + * Taxonomy location used to fetch policy tags + */ + taxonomyLocation?: string; + /** + * Project IDs used to fetch policy tags + */ + taxonomyProjectID?: string[]; + /** + * Location used to query INFORMATION_SCHEMA.JOBS_BY_PROJECT to fetch usage data. You can + * pass multi-regions, such as `us` or `eu`, or you specific region. Australia and Asia + * multi-regions are not yet in GA. + */ + usageLocation?: string; + awsConfig?: AWSCredentials; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * S3 Staging Directory. Example: s3://postgres/input/ + */ + s3StagingDir?: string; + /** + * Athena workgroup. + */ + workgroup?: string; + /** + * This parameter determines the mode of authentication for connecting to AzureSQL using + * ODBC. If 'Active Directory Password' is selected, you need to provide the password. If + * 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with AzureSQL. + * + * This parameter determines the mode of authentication for connecting to Azure Synapse + * using ODBC. If 'Active Directory Password' is selected, you need to provide the password. + * If 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with Azure Synapse. + */ + authenticationMode?: any[] | boolean | number | null | AuthenticationModeObject | string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + * + * Database of the data source. + * + * Initial Redshift database to connect to. If you want to ingest all databases, set + * ingestAllDatabases to true. + */ + database?: string; + /** + * SQLAlchemy driver for AzureSQL. + * + * ODBC driver version in case of pyodbc connection. + */ + driver?: string; + /** + * Ingest data from all databases in Azuresql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Mssql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Redshift. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Greenplum. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Azure Synapse. You can use databaseFilterPattern on top + * of this. + */ + ingestAllDatabases?: boolean; + /** + * Password to connect to AzureSQL. + * + * Password to connect to Clickhouse. + * + * Password to connect to DB2. + * + * Password to connect to Druid. + * + * Password to connect to Hive. + * + * Password to connect to Impala. + * + * Password to connect to MariaDB. + * + * Password to connect to MSSQL. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to Oracle. + * + * Password to connect to Presto. + * + * Password to connect to Redshift. + * + * Password to connect to the Salesforce. + * + * Password to connect to SingleStore. + * + * Password to connect to Snowflake. + * + * Password to connect to Vertica. + * + * password to connect to the PinotDB. + * + * Password to connect to MongoDB. + * + * Password to connect to Couchbase. + * + * Password to connect to Doris. + * + * Password to connect to SAS Viya + * + * Password to connect to Teradata. + * + * Password to connect to Azure Synapse. + * + * Password to connect to Exasol. + * + * Password to connect to Metabase. + * + * Password to connect to PowerBI report server. + * + * Password to connect to MicroStrategy. + * + * Password to connect to Airbyte. + * + * password to connect to the Amundsen Neo4j Connection. + * + * password to connect to the Atlas. + * + * OpenSearch Password for Login + */ + password?: string; + /** + * Username to connect to AzureSQL. This user should have privileges to read the metadata. + * + * Username to connect to Clickhouse. This user should have privileges to read all the + * metadata in Clickhouse. + * + * Username to connect to DB2. This user should have privileges to read all the metadata in + * DB2. + * + * Username to connect to Druid. This user should have privileges to read all the metadata + * in Druid. + * + * Username to connect to Hive. This user should have privileges to read all the metadata in + * Hive. + * + * Username to connect to Impala. This user should have privileges to read all the metadata + * in Impala. + * + * Username to connect to MariaDB. This user should have privileges to read all the metadata + * in MariaDB. + * + * Username to connect to MSSQL. This user should have privileges to read all the metadata + * in MsSQL. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to Oracle. This user should have privileges to read all the metadata + * in Oracle. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to Presto. This user should have privileges to read all the metadata + * in Postgres. + * + * Username to connect to Redshift. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to the Salesforce. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to SingleStore. This user should have privileges to read all the + * metadata in MySQL. + * + * Username to connect to Snowflake. This user should have privileges to read all the + * metadata in Snowflake. + * + * Username to connect to Trino. This user should have privileges to read all the metadata + * in Trino. + * + * Username to connect to Vertica. This user should have privileges to read all the metadata + * in Vertica. + * + * username to connect to the PinotDB. This user should have privileges to read all the + * metadata in PinotDB. + * + * Username to connect to MongoDB. This user should have privileges to read all the metadata + * in MongoDB. + * + * Username to connect to Couchbase. This user should have privileges to read all the + * metadata in Couchbase. + * + * Username to connect to Greenplum. This user should have privileges to read all the + * metadata in Greenplum. + * + * Username to connect to Doris. This user should have privileges to read all the metadata + * in Doris. + * + * Username to connect to SAS Viya. + * + * Username to connect to Teradata. This user should have privileges to read all the + * metadata in Teradata. + * + * Username to connect to Azure Synapse. This user should have privileges to read all the + * metadata in Azure Synapse. + * + * Username to connect to Exasol. This user should have privileges to read all the metadata + * in Exasol. + * + * Username to connect to Metabase. This user should have privileges to read all the + * metadata in Metabase. + * + * Username to connect to PowerBI report server. + * + * Username for Redash + * + * Username to connect to MicroStrategy. This user should have privileges to read all the + * metadata in MicroStrategy. + * + * Username to connect to Airbyte. + * + * username to connect to the Amundsen Neo4j Connection. + * + * username to connect to the Atlas. This user should have privileges to read all the + * metadata in Atlas. + * + * OpenSearch Username for Login + */ + username?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + * + * Optional name to give to the schema in OpenMetadata. If left blank, we will use default + * as the schema name + */ + databaseSchema?: string; + /** + * Clickhouse SQL connection duration. + */ + duration?: number; + /** + * Use HTTPS Protocol for connection with clickhouse + */ + https?: boolean; + /** + * Path to key file for establishing secure connection + */ + keyfile?: string; + /** + * Establish secure connection with clickhouse + */ + secure?: boolean; + /** + * Catalog of the data source(Example: hive_metastore). This is optional parameter, if you + * would like to restrict the metadata reading to a single catalog. When left blank, + * OpenMetadata Ingestion attempts to scan all the catalog. + * + * Presto catalog + * + * Catalog of the data source. + */ + catalog?: IcebergCatalog | string; + /** + * The maximum amount of time (in seconds) to wait for a successful connection to the data + * source. If the connection attempt takes longer than this timeout period, an error will be + * returned. + */ + connectionTimeout?: number; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + supportsViewLineageExtraction?: boolean; + /** + * Available sources to fetch the metadata. + * + * Available sources to fetch files. + * + * Available sources to fetch metadata. + */ + configSource?: DeltaLakeConfigurationSource; + /** + * Authentication mode to connect to hive. + */ + auth?: AuthEnum; + /** + * Authentication options to pass to Hive connector. These options are based on SQLAlchemy. + * + * Authentication options to pass to Impala connector. These options are based on SQLAlchemy. + */ + authOptions?: string; + /** + * If authenticating with Kerberos specify the Kerberos service name + */ + kerberosServiceName?: string; + /** + * Hive Metastore Connection Details + */ + metastoreConnection?: HiveMetastoreConnectionDetails; + /** + * Authentication mode to connect to Impala. + */ + authMechanism?: AuthMechanismEnum; + /** + * Establish secure connection with Impala + */ + useSSL?: boolean; + /** + * Choose Auth Config Type. + * + * Types of methods used to authenticate to the tableau instance + * + * Types of methods used to authenticate to the alation instance + */ + authType?: AuthConfigurationType | NoConfigAuthenticationTypes; + /** + * SSL Configuration details. + * + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: SSLConfigObject; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * This directory will be used to set the LD_LIBRARY_PATH env variable. It is required if + * you need to enable thick connection mode. By default, we bring instant client 19 and + * point to /instantclient. + */ + instantClientDirectory?: string; + /** + * Connect with oracle by either passing service name or database schema name. + */ + oracleConnectionType?: OracleConnectionType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + sslMode?: SSLMode; + /** + * Protocol ( Connection Argument ) to connect to Presto. + */ + protocol?: string; + /** + * Verify ( Connection Argument for SSL ) to connect to Presto. + * + * Verify ( Connection Argument for SSL ) to connect to Trino. + */ + verify?: string; + /** + * Salesforce Organization ID is the unique identifier for your Salesforce identity + */ + organizationId?: string; + /** + * API version of the Salesforce instance + */ + salesforceApiVersion?: string; + /** + * Domain of Salesforce instance + */ + salesforceDomain?: string; + /** + * Salesforce Security Token. + */ + securityToken?: string; + /** + * Salesforce Object Name. + */ + sobjectName?: string; + /** + * If the Snowflake URL is https://xyz1234.us-east-1.gcp.snowflakecomputing.com, then the + * account is xyz1234.us-east-1.gcp + * + * Specifies an account string to override the default account string defined for the + * database user. Accounts are used by the database for workload management and resource + * usage monitoring. + */ + account?: string; + /** + * Optional configuration for ingestion to keep the client session active in case the + * ingestion process runs for longer durations. + */ + clientSessionKeepAlive?: boolean; + /** + * Optional configuration for ingestion of TRANSIENT tables, By default, it will skip the + * TRANSIENT tables. + */ + includeTransientTables?: boolean; + /** + * Connection to Snowflake instance via Private Key + */ + privateKey?: string; + /** + * Session query tag used to monitor usage on snowflake. To use a query tag snowflake user + * should have enough privileges to alter the session. + */ + queryTag?: string; + /** + * Snowflake Role. + */ + role?: string; + /** + * Snowflake Passphrase Key used with Private Key + */ + snowflakePrivatekeyPassphrase?: string; + /** + * Snowflake warehouse. + */ + warehouse?: string; + /** + * Proxies for the connection to Trino data source + */ + proxies?: { [key: string]: string }; + /** + * Pinot Controller Host and Port of the data source. + */ + pinotControllerHost?: string; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + /** + * Access token to connect to DOMO + * + * Access Token for Mode Dashboard + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + * + * User's Client ID. This user should have privileges to read all the metadata in Looker. + * + * client_id for PowerBI. + * + * client_id for Sigma. + */ + clientId?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret Token to connect DOMO + * + * Secret token to connect to DOMO + */ + secretToken?: string; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Choose between Database connection or HDB User Store connection. + * + * Choose between API or database connection fetch metadata from superset. + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Matillion Auth Configuration + * + * Choose between mysql and postgres connection for alation database + */ + connection?: ConnectionObject; + /** + * Couchbase connection Bucket options. + */ + bucket?: string; + /** + * Hostname of the Couchbase service. + */ + hostport?: string; + /** + * Enable dataflow for ingestion + */ + dataflows?: boolean; + /** + * Custom filter for dataflows + */ + dataflowsCustomFilter?: { [key: string]: any } | string; + /** + * Enable datatables for ingestion + */ + datatables?: boolean; + /** + * Custom filter for datatables + */ + dataTablesCustomFilter?: { [key: string]: any } | string; + /** + * Enable report for ingestion + */ + reports?: boolean; + /** + * Custom filter for reports + */ + reportsCustomFilter?: { [key: string]: any } | string; + /** + * Hostname of SAS Viya deployment. + */ + serverHost?: string; + /** + * Table property to look for the Owner. + */ + ownershipProperty?: string; + /** + * Specifies additional data needed by a logon mechanism, such as a secure token, + * Distinguished Name, or a domain/realm name. LOGDATA values are specific to each logon + * mechanism. + */ + logdata?: string; + /** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ + logmech?: Logmech; + /** + * Specifies the transaction mode for the connection + */ + tmode?: TransactionMode; + /** + * API key to authenticate with the SAP ERP APIs. + * + * API key of the redash instance to access. + * + * The personal access token you can generate in the Lightdash app under the user settings + * + * Fivetran API Secret. + */ + apiKey?: string; + /** + * Pagination limit used while querying the SAP ERP API for fetching the entities + * + * Pagination limit used while querying the tableau metadata API for getting data sources + * + * Pagination limit used for Alation APIs pagination + */ + paginationLimit?: number; + /** + * Boolean marking if we need to verify the SSL certs for KafkaConnect REST API. True by + * default. + * + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: boolean | VerifySSL; + /** + * Client SSL/TLS settings. + */ + tls?: SSLTLSSettings; + /** + * User's Client Secret. + * + * clientSecret for PowerBI. + * + * clientSecret for Sigma. + */ + clientSecret?: string; + /** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + */ + gitCredentials?: GitHubCredentials; + /** + * Authority URI for the PowerBI service. + */ + authorityURI?: string; + /** + * Entity Limit set here will be used to paginate the PowerBi APIs + */ + pagination_entity_per_page?: number; + /** + * Source to get the .pbit files to extract lineage information + */ + pbitFilesSource?: PowerBIPbitFilesSource; + /** + * PowerBI secrets. + */ + scope?: string[]; + /** + * Tenant ID for PowerBI. + */ + tenantId?: string; + /** + * Fetch the PowerBI metadata using admin APIs + */ + useAdminApis?: boolean; + /** + * Web Portal Virtual Directory Name. + */ + webPortalVirtualDirectory?: string; + /** + * Version of the Redash instance + */ + redashVersion?: string; + /** + * Tableau API version. + * + * Sigma API version. + * + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * Tableau Environment Name. + */ + env?: string; + /** + * Tableau Site Name. + */ + siteName?: string; + /** + * Tableau Site Url. + */ + siteUrl?: string; + /** + * Access Token Password for Mode Dashboard + */ + accessTokenPassword?: string; + /** + * Filter query parameter for some of the Mode API calls + */ + filterQueryParam?: string; + /** + * Mode Workspace Name + */ + workspaceName?: string; + /** + * AWS Account ID + */ + awsAccountId?: string; + /** + * The authentication method that the user uses to sign in. + */ + identityType?: IdentityType; + /** + * The Amazon QuickSight namespace that contains the dashboard IDs in this request ( To be + * provided when identityType is `ANONYMOUS` ) + */ + namespace?: string; + certificates?: QlikCertificatesBy; + /** + * Qlik Sense Base URL, used for genrating dashboard & chat url + */ + displayUrl?: string; + /** + * User Directory. + */ + userDirectory?: string; + /** + * User ID. + */ + userId?: string; + /** + * Validate Host Name + */ + validateHostName?: boolean; + /** + * The Project UUID for your Lightdash instance + */ + projectUUID?: string; + /** + * Use if your Lightdash instance is behind a proxy like (Cloud IAP) + */ + proxyAuthentication?: string; + /** + * The Space UUID for your Lightdash instance + */ + spaceUUID?: string; + /** + * Login Mode for Microstrategy's REST API connection. You can authenticate with one of the + * following authentication modes: `Standard (1)`, `Anonymous (8)`. Default will be + * `Standard (1)`. If you're using demo account for Microstrategy, it will be needed to + * authenticate through loginMode `8`. + */ + loginMode?: string; + /** + * MicroStrategy Project Name + * + * Project name to create the refreshToken. Can be anything + */ + projectName?: string; + /** + * basic.auth.user.info schema registry config property, Client HTTP credentials in the form + * of username:password. + */ + basicAuthUserInfo?: string; + /** + * Kafka bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + * + * Redpanda bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + */ + bootstrapServers?: string; + /** + * Confluent Kafka Consumer Config. From + * https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md + * + * Confluent Redpanda Consumer Config + */ + consumerConfig?: { [key: string]: any }; + /** + * sasl.mechanism Consumer Config property + */ + saslMechanism?: SaslMechanismType; + /** + * sasl.password consumer config property + */ + saslPassword?: string; + /** + * sasl.username consumer config property + */ + saslUsername?: string; + /** + * Confluent Kafka Schema Registry Config. From + * https://docs.confluent.io/5.5.1/clients/confluent-kafka-python/index.html#confluent_kafka.schema_registry.SchemaRegistryClient + * + * Confluent Redpanda Schema Registry Config. + */ + schemaRegistryConfig?: { [key: string]: any }; + /** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + */ + schemaRegistrySSL?: SchemaRegistrySSLClass; + /** + * Schema Registry Topic Suffix Name. The suffix to be appended to the topic name to get + * topic schema from registry. + */ + schemaRegistryTopicSuffixName?: string; + /** + * Confluent Kafka Schema Registry URL. + * + * Confluent Redpanda Schema Registry URL. + */ + schemaRegistryURL?: string; + /** + * security.protocol consumer config property + * + * Kafka security protocol config + */ + securityProtocol?: KafkaSecurityProtocol; + /** + * Pipeline Service Number Of Status + */ + numberOfStatus?: number; + /** + * Fivetran API Secret. + */ + apiSecret?: string; + /** + * Fivetran API Limit For Pagination. + */ + limit?: number; + /** + * URL to the Dagster instance + * + * DBT cloud Access URL. + */ + host?: string; + /** + * Connection Time Limit Between OM and Dagster Graphql API in second + */ + timeout?: number; + /** + * We support username/password or client certificate authentication + */ + nifiConfig?: NifiCredentialsConfiguration; + /** + * Spline UI Host & Port. + */ + uiHostPort?: string; + /** + * service type of the messaging source + */ + brokersUrl?: string; + /** + * consumer group name + */ + consumerGroupName?: string; + /** + * initial Kafka consumer offset + */ + consumerOffsets?: InitialConsumerOffsets; + /** + * max allowed wait time + */ + poolTimeout?: number; + /** + * SASL Configuration details. + */ + saslConfig?: SASLClientConfig; + /** + * max allowed inactivity time + */ + sessionTimeout?: number; + /** + * topic from where Open lineage events will be pulled + */ + topicName?: string; + /** + * We support username/password or No Authentication + */ + KafkaConnectConfig?: UsernamePasswordAuthentication; + /** + * Name of the Kafka Messaging Service associated with this KafkaConnect Pipeline Service. + * e.g. local_kafka + * + * service type of the messaging source + */ + messagingServiceName?: string[] | string; + /** + * ID of your DBT cloud account + */ + accountId?: string; + /** + * DBT cloud Metadata API URL. + */ + discoveryAPI?: string; + /** + * List of IDs of your DBT cloud jobs seperated by comma `,` + */ + jobIds?: string[]; + /** + * List of IDs of your DBT cloud projects seperated by comma `,` + */ + projectIds?: string[]; + /** + * The name of your azure data factory. + */ + factory_name?: string; + /** + * The name of your resource group the data factory is associated with. + */ + resource_group_name?: string; + /** + * Number of days in the past to filter pipeline runs. + */ + run_filter_days?: number; + /** + * The azure subscription identifier. + */ + subscription_id?: string; + /** + * Mlflow Model registry backend. E.g., + * mysql+pymysql://mlflow:password@localhost:3307/experiments + */ + registryUri?: string; + /** + * Mlflow Experiment tracking URI. E.g., http://localhost:5000 + */ + trackingUri?: string; + /** + * location/region of google cloud project + */ + location?: string; + /** + * Enable encryption for the Amundsen Neo4j Connection. + */ + encrypted?: boolean; + /** + * Maximum connection lifetime for the Amundsen Neo4j Connection. + */ + maxConnectionLifeTime?: number; + /** + * Enable SSL validation for the Amundsen Neo4j Connection. + */ + validateSSL?: boolean; + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * List of entities that you need to reindex + */ + entities?: string[]; + recreateIndex?: boolean; + runMode?: RunMode; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * service type of the data source. + */ + databaseServiceName?: string[]; + /** + * Name of the Entity Type available in Atlas. + */ + entity_type?: string; + /** + * Custom OpenMetadata Classification name for alation tags. + */ + alationTagClassificationName?: string; + /** + * Specifies if hidden datasources should be included while ingesting. + */ + includeHiddenDatasources?: boolean; + /** + * Specifies if undeployed datasources should be included while ingesting. + */ + includeUndeployedDatasources?: boolean; + /** + * Specifies if Dashboards are to be ingested while running the ingestion job. + */ + ingestDashboards?: boolean; + /** + * Specifies if Datasources are to be ingested while running the ingestion job. + */ + ingestDatasources?: boolean; + /** + * Specifies if Domains are to be ingested while running the ingestion job. + */ + ingestDomains?: boolean; + /** + * Specifies if Knowledge Articles are to be ingested while running the ingestion job. + */ + ingestKnowledgeArticles?: boolean; + /** + * Specifies if Users and Groups are to be ingested while running the ingestion job. + */ + ingestUsersAndGroups?: boolean; + datasourceLinks?: { [key: string]: string }; + /** + * Bucket Names of the data source. + */ + bucketNames?: string[]; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs?: number; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; +} + +/** + * We support username/password or No Authentication + * + * username/password auth + */ +export interface UsernamePasswordAuthentication { + /** + * KafkaConnect password to authenticate to the API. + */ + password?: string; + /** + * KafkaConnect user to authenticate to the API. + */ + username?: string; +} + +/** + * Authentication mode to connect to hive. + */ +export enum AuthEnum { + Basic = "BASIC", + Custom = "CUSTOM", + Gssapi = "GSSAPI", + Jwt = "JWT", + Kerberos = "KERBEROS", + LDAP = "LDAP", + None = "NONE", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Authentication mode to connect to Impala. + */ +export enum AuthMechanismEnum { + Gssapi = "GSSAPI", + Jwt = "JWT", + LDAP = "LDAP", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + * + * Types of methods used to authenticate to the tableau instance + * + * Basic Auth Credentials + * + * Access Token Auth Credentials + * + * Types of methods used to authenticate to the alation instance + * + * API Access Token Auth Credentials + * + * Basic Auth Configuration for ElasticSearch + * + * SSL Certificates By Path + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + * + * Password to access the service. + * + * Elastic Search Password for Login + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; + /** + * JWT to connect to source. + */ + jwt?: string; + /** + * Username to access the service. + * + * Elastic Search Username for Login + */ + username?: string; + /** + * Personal Access Token Name. + */ + personalAccessTokenName?: string; + /** + * Personal Access Token Secret. + */ + personalAccessTokenSecret?: string; + /** + * Access Token for the API + */ + accessToken?: string; + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Database Authentication types not requiring config. + */ +export enum NoConfigAuthenticationTypes { + OAuth2 = "OAuth2", +} + +export interface AuthenticationModeObject { + /** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ + authentication?: Authentication; + /** + * Connection Timeout from Connection String for AzureSQL. + * + * Connection Timeout from Connection String for Azure Synapse. + */ + connectionTimeout?: number; + /** + * Encrypt from Connection String for AzureSQL. + * + * Encrypt from Connection String for Azure Synapse. + */ + encrypt?: boolean; + /** + * Trust Server Certificate from Connection String for AzureSQL. + * + * Trust Server Certificate from Connection String for Azure Synapse. + */ + trustServerCertificate?: boolean; + [property: string]: any; +} + +/** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ +export enum Authentication { + ActiveDirectoryIntegrated = "ActiveDirectoryIntegrated", + ActiveDirectoryPassword = "ActiveDirectoryPassword", +} + +/** + * Iceberg Catalog configuration. + */ +export interface IcebergCatalog { + /** + * Catalog connection configuration, depending on your catalog type. + */ + connection: Connection; + /** + * Custom Database Name for your Iceberg Service. If not set it will be 'default'. + */ + databaseName?: string; + /** + * Catalog Name. + */ + name: string; + /** + * Warehouse Location. Used to specify a custom warehouse location if needed. + */ + warehouseLocation?: string; +} + +/** + * Catalog connection configuration, depending on your catalog type. + * + * Iceberg Hive Catalog configuration. + * + * Iceberg REST Catalog configuration. + * + * Iceberg Glue Catalog configuration. + * + * Iceberg DynamoDB Catalog configuration. + */ +export interface Connection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + * + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri?: string; + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + awsConfig?: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName?: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * Qlik Authentication Certificate By Values + * + * Qlik Authentication Certificate File Path + */ +export interface QlikCertificatesBy { + sslConfig?: SchemaRegistrySSLClass; + /** + * Client Certificate + */ + clientCertificate?: string; + /** + * Client Key Certificate. + */ + clientKeyCertificate?: string; + /** + * Root Certificate. + */ + rootCertificate?: string; + [property: string]: any; +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface SchemaRegistrySSLClass { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Available sources to fetch the metadata. + * + * Deltalake Metastore configuration. + * + * DeltaLake Storage Connection Config + * + * Available sources to fetch files. + * + * Local config source where no extra information needs to be sent. + * + * Azure Datalake Storage will ingest files in container + * + * DataLake GCS storage will ingest metadata of files + * + * DataLake S3 bucket will ingest metadata of files in bucket + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface DeltaLakeConfigurationSource { + /** + * pySpark App Name. + */ + appName?: string; + /** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + */ + connection?: ConfigSourceConnection; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + securityConfig?: SecurityConfigClass; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface ConfigSourceConnection { + /** + * Thrift connection to the metastore service. E.g., localhost:9083 + */ + metastoreHostPort?: string; + /** + * Driver class name for JDBC metastore. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionDriverName sparks property. E.g., + * org.mariadb.jdbc.Driver + */ + driverName?: string; + /** + * Class path to JDBC driver required for JDBC connection. The value will be mapped as + * spark.driver.extraClassPath sparks property. + */ + jdbcDriverClassPath?: string; + /** + * JDBC connection to the metastore database. E.g., jdbc:mysql://localhost:3306/demo_hive + */ + metastoreDb?: string; + /** + * Password to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionPassword sparks property. + */ + password?: string; + /** + * Username to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionUserName sparks property. + */ + username?: string; + /** + * Local path for the local file with metastore data. E.g., /tmp/metastore.db + */ + metastoreFilePath?: string; + securityConfig?: AWSCredentials; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + * + * GCP Credentials + * + * GCP credentials configs. + * + * AWS credentials configs. + */ +export interface SecurityConfigClass { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Choose between Database connection or HDB User Store connection. + * + * Sap Hana Database SQL Connection Config + * + * Sap Hana Database HDB User Store Connection Config + * + * Choose between API or database connection fetch metadata from superset. + * + * Superset API Connection Config + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Lineage Backend Connection Config + * + * SQLite Database Connection Config + * + * Matillion Auth Configuration + * + * Matillion ETL Auth Config + * + * Choose between mysql and postgres connection for alation database + */ +export interface ConnectionObject { + /** + * Database of the data source. + * + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Database Schema of the data source. This is an optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Hana service. + * + * Host and port of the source service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Matillion Host + */ + hostPort?: string; + /** + * Password to connect to Hana. + * + * Password for Superset. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to the Matillion. + */ + password?: string; + /** + * Username to connect to Hana. This user should have privileges to read all the metadata. + * + * Username for Superset. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to the Matillion. This user should have privileges to read all the + * metadata in Matillion. + */ + username?: string; + /** + * HDB Store User Key generated from the command `hdbuserstore SET + * ` + */ + userKey?: string; + /** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ + provider?: Provider; + /** + * SSL Configuration details. + */ + sslConfig?: ConnectionSSLConfig; + verifySSL?: VerifySSL; + /** + * Choose Auth Config Type. + */ + authType?: ConnectionAuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: ConnectionScheme; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: ConnectionType; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + supportsViewLineageExtraction?: boolean; + [property: string]: any; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface ConnectionAuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ +export enum Provider { + DB = "db", + LDAP = "ldap", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum ConnectionScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", + SqlitePysqlite = "sqlite+pysqlite", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + */ +export interface ConnectionSSLConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum ConnectionType { + Backend = "Backend", + MatillionETL = "MatillionETL", + Mysql = "Mysql", + Postgres = "Postgres", + SQLite = "SQLite", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + * + * Flag to verify SSL Certificate for OpenMetadata Server. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * initial Kafka consumer offset + */ +export enum InitialConsumerOffsets { + Earliest = "earliest", + Latest = "latest", +} + +/** + * GCP Credentials + * + * GCP credentials configs. + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + * + * Do not set any credentials. Note that credentials are required to extract .lkml views and + * their lineage. + * + * Credentials for a GitHub repository + * + * Credentials for a BitBucket repository + * + * Credentials for a Gitlab repository + */ +export interface GitHubCredentials { + repositoryName?: string; + repositoryOwner?: string; + token?: string; + /** + * Credentials Type + */ + type?: GitHubCredentialsType; + /** + * Main production branch of the repository. E.g., `main` + */ + branch?: string; +} + +/** + * Credentials Type + * + * GitHub Credentials type + * + * BitBucket Credentials type + * + * Gitlab Credentials type + */ +export enum GitHubCredentialsType { + BitBucket = "BitBucket", + GitHub = "GitHub", + Gitlab = "Gitlab", +} + +/** + * The authentication method that the user uses to sign in. + */ +export enum IdentityType { + Anonymous = "ANONYMOUS", + Iam = "IAM", + Quicksight = "QUICKSIGHT", +} + +/** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ +export enum Logmech { + Custom = "CUSTOM", + Jwt = "JWT", + Krb5 = "KRB5", + LDAP = "LDAP", + Td2 = "TD2", + Tdnego = "TDNEGO", +} + +/** + * Hive Metastore Connection Details + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface HiveMetastoreConnectionDetails { + /** + * Choose Auth Config Type. + */ + authType?: ConnectionAuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: HiveMetastoreConnectionDetailsScheme; + /** + * SSL Configuration details. + */ + sslConfig?: SchemaRegistrySSLClass; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: HiveMetastoreConnectionDetailsType; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum HiveMetastoreConnectionDetailsScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Service Type + * + * Service type. + */ +export enum HiveMetastoreConnectionDetailsType { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * We support username/password or client certificate authentication + * + * username/password auth + * + * client certificate auth + */ +export interface NifiCredentialsConfiguration { + /** + * Nifi password to authenticate to the API. + */ + password?: string; + /** + * Nifi user to authenticate to the API. + */ + username?: string; + /** + * Boolean marking if we need to verify the SSL certs for Nifi. False by default. + */ + verifySSL?: boolean; + /** + * Path to the root CA certificate + */ + certificateAuthorityPath?: string; + /** + * Path to the client certificate + */ + clientCertificatePath?: string; + /** + * Path to the client key + */ + clientkeyPath?: string; +} + +/** + * Connect with oracle by either passing service name or database schema name. + */ +export interface OracleConnectionType { + /** + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + */ + databaseSchema?: string; + /** + * The Oracle Service name is the TNS alias that you give when you remotely connect to your + * database. + */ + oracleServiceName?: string; + /** + * Pass the full constructed TNS string, e.g., + * (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1530)))(CONNECT_DATA=(SID=MYSERVICENAME))). + */ + oracleTNSConnection?: string; + [property: string]: any; +} + +/** + * Source to get the .pbit files to extract lineage information + * + * Local config source where no extra information needs to be sent. + * + * Azure storage config for pbit files + * + * GCS storage config for pbit files + * + * S3 storage config for pbit files + */ +export interface PowerBIPbitFilesSource { + /** + * Directory path for the pbit files + */ + path?: string; + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig?: SecurityConfigClass; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Azure = "azure", + Gcs = "gcs", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * This schema publisher run modes. + */ +export enum RunMode { + Batch = "batch", + Stream = "stream", +} + +/** + * SASL Configuration details. + * + * SASL client configuration. + */ +export interface SASLClientConfig { + /** + * SASL security mechanism + */ + saslMechanism?: SaslMechanismType; + /** + * The SASL authentication password. + */ + saslPassword?: string; + /** + * The SASL authentication username. + */ + saslUsername?: string; +} + +/** + * sasl.mechanism Consumer Config property + * + * SASL Mechanism consumer config property + * + * SASL security mechanism + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + * + * Secrets Manager Provider to use for fetching secrets. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * security.protocol consumer config property + * + * Kafka security protocol config + */ +export enum KafkaSecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslPlaintext = "SASL_PLAINTEXT", + SaslSSL = "SASL_SSL", +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Config + */ +export interface SSLConfigObject { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; + /** + * SSL Certificates + */ + certificates?: SSLCertificates; + [property: string]: any; +} + +/** + * SSL Certificates + * + * SSL Configuration details. + * + * SSL Certificates By Path + * + * SSL Certificates By Values + */ +export interface SSLCertificates { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} + +/** + * Client SSL/TLS settings. + */ +export enum SSLTLSSettings { + DisableTLS = "disable-tls", + IgnoreCertificate = "ignore-certificate", + ValidateCertificate = "validate-certificate", +} + +/** + * Specifies the transaction mode for the connection + */ +export enum TransactionMode { + ANSI = "ANSI", + Default = "DEFAULT", + Tera = "TERA", +} + +/** + * REST API Type + * + * REST API type + * + * Service Type + * + * Service type. + * + * service type + * + * Custom database service type + * + * Looker service type + * + * Metabase service type + * + * PowerBI service type + * + * PowerBIReportServer service type + * + * Redash service type + * + * Superset service type + * + * Tableau service type + * + * Mode service type + * + * Custom dashboard service type + * + * QuickSight service type + * + * Qlik sense service type + * + * Lightdash service type + * + * MicroStrategy service type + * + * Qlik Cloud service type + * + * Sigma service type + * + * Kafka service type + * + * Redpanda service type + * + * Custom messaging service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * Amundsen service type + * + * Metadata to Elastic Search type + * + * OpenMetadata service type + * + * S3 service type + * + * ADLS service type + * + * Gcs service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * ElasticSearch service type + * + * OpenSearch service type + * + * Custom search service type + */ +export enum RESTType { + Adls = "ADLS", + Airbyte = "Airbyte", + Airflow = "Airflow", + Alation = "Alation", + AlationSink = "AlationSink", + Amundsen = "Amundsen", + Athena = "Athena", + Atlas = "Atlas", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDashboard = "CustomDashboard", + CustomDatabase = "CustomDatabase", + CustomMessaging = "CustomMessaging", + CustomMlModel = "CustomMlModel", + CustomPipeline = "CustomPipeline", + CustomSearch = "CustomSearch", + CustomStorage = "CustomStorage", + DBTCloud = "DBTCloud", + Dagster = "Dagster", + DataFactory = "DataFactory", + Databricks = "Databricks", + DatabricksPipeline = "DatabricksPipeline", + Datalake = "Datalake", + Db2 = "Db2", + DeltaLake = "DeltaLake", + DomoDashboard = "DomoDashboard", + DomoDatabase = "DomoDatabase", + DomoPipeline = "DomoPipeline", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + ElasticSearch = "ElasticSearch", + Exasol = "Exasol", + Fivetran = "Fivetran", + Flink = "Flink", + Gcs = "GCS", + Glue = "Glue", + GluePipeline = "GluePipeline", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + Kafka = "Kafka", + KafkaConnect = "KafkaConnect", + Kinesis = "Kinesis", + Lightdash = "Lightdash", + Looker = "Looker", + MariaDB = "MariaDB", + Matillion = "Matillion", + Metabase = "Metabase", + MetadataES = "MetadataES", + MicroStrategy = "MicroStrategy", + Mlflow = "Mlflow", + Mode = "Mode", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Nifi = "Nifi", + OpenLineage = "OpenLineage", + OpenMetadata = "OpenMetadata", + OpenSearch = "OpenSearch", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + Presto = "Presto", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + REST = "Rest", + Redash = "Redash", + Redpanda = "Redpanda", + Redshift = "Redshift", + S3 = "S3", + SAS = "SAS", + SQLite = "SQLite", + SageMaker = "SageMaker", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + Sigma = "Sigma", + SingleStore = "SingleStore", + Sklearn = "Sklearn", + Snowflake = "Snowflake", + Spark = "Spark", + Spline = "Spline", + Stitch = "Stitch", + Superset = "Superset", + Synapse = "Synapse", + Tableau = "Tableau", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + VertexAI = "VertexAI", + Vertica = "Vertica", +} + +/** + * Type of service such as Database, Dashboard, Messaging, etc. + * + * This schema defines the service types entities which requires a connection. + */ +export enum ServiceType { + API = "Api", + Dashboard = "Dashboard", + Database = "Database", + Messaging = "Messaging", + Metadata = "Metadata", + MlModel = "MlModel", + Pipeline = "Pipeline", + Search = "Search", + Storage = "Storage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/workflow.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/workflow.ts new file mode 100644 index 000000000000..1e8ceac2c936 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/automations/workflow.ts @@ -0,0 +1,3805 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A unit of work that will be triggered as an API call to the OpenMetadata server. + */ +export interface Workflow { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the test connection def. + */ + description?: string; + /** + * Display Name that identifies this workflow definition. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this workflow instance. + */ + id: string; + /** + * Name of the workflow. + */ + name: string; + openMetadataServerConnection?: OpenMetadataConnection; + /** + * Owners of this workflow. + */ + owners?: EntityReference[]; + /** + * Request body for a specific workflow type + */ + request: TestServiceConnectionRequest; + /** + * Response to the request. + */ + response?: TestConnectionResult; + /** + * Workflow computation status. + */ + status?: WorkflowStatus; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Type of the workflow. + */ + workflowType: WorkflowType; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * OpenMetadata Connection Config + */ +export interface OpenMetadataConnection { + /** + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: OpenMetadataServerConnectionElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + */ + hostPort: string; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: SchemaRegistrySSLClass; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * Service Type + */ + type?: OpenmetadataType; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: VerifySSL; +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface OpenMetadataServerConnectionElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + * + * Secrets Manager Provider to use for fetching secrets. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * SSL Configuration for OpenMetadata Server + * + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface SchemaRegistrySSLClass { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * OpenMetadata service type + */ +export enum OpenmetadataType { + OpenMetadata = "OpenMetadata", +} + +/** + * Flag to verify SSL Certificate for OpenMetadata Server. + * + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Request body for a specific workflow type + * + * Test Service Connection to test user provided configuration is valid or not. + */ +export interface TestServiceConnectionRequest { + /** + * Connection object. + */ + connection?: RequestConnection; + /** + * Type of the connection to test such as Snowflake, MySQL, Looker, etc. + */ + connectionType?: string; + /** + * Secrets Manager Provider to use for fetching secrets. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * Optional value that identifies this service name. + */ + serviceName?: string; + /** + * Type of service such as Database, Dashboard, Messaging, etc. + */ + serviceType?: ServiceType; +} + +/** + * Connection object. + * + * API Service Connection. + * + * Database Connection. + * + * Dashboard Connection. + * + * Pipeline Connection. + * + * MlModel Connection. + * + * Metadata Service Connection. + * + * Storage Connection. + * + * search Connection. + */ +export interface RequestConnection { + config?: ConfigClass; +} + +/** + * REST Connection Config + * + * Google BigQuery Connection Config + * + * Google BigTable Connection Config + * + * AWS Athena Connection Config + * + * Azure SQL Connection Config + * + * Clickhouse Connection Config + * + * Databricks Connection Config + * + * Db2 Connection Config + * + * DeltaLake Database Connection Config + * + * Druid Connection Config + * + * DynamoDB Connection Config + * + * Glue Connection Config + * + * Hive SQL Connection Config + * + * Impala SQL Connection Config + * + * MariaDB Database Connection Config + * + * Mssql Database Connection Config + * + * Mysql Database Connection Config + * + * SQLite Database Connection Config + * + * Oracle Database Connection Config + * + * Postgres Database Connection Config + * + * Presto Database Connection Config + * + * Redshift Connection Config + * + * Salesforce Connection Config + * + * SingleStore Database Connection Config + * + * Snowflake Connection Config + * + * Trino Connection Config + * + * Vertica Connection Config + * + * PinotDB Database Connection Config + * + * Datalake Connection Config + * + * Domo Database Connection Config + * + * Custom Database Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Sap Hana Database Connection Config + * + * MongoDB Connection Config + * + * Couchbase Connection Config + * + * Greenplum Database Connection Config + * + * Doris Database Connection Config + * + * UnityCatalog Connection Config + * + * SAS Connection Config + * + * Iceberg Catalog Connection Config + * + * Teradata Database Connection Config + * + * Sap ERP Database Connection Config + * + * Synapse Database Connection Config + * + * Exasol Database Connection Config + * + * Looker Connection Config + * + * Metabase Connection Config + * + * PowerBI Connection Config + * + * PowerBIReportServer Connection Config + * + * Redash Connection Config + * + * Superset Connection Config + * + * Tableau Connection Config + * + * Mode Connection Config + * + * Custom Dashboard Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Domo Dashboard Connection Config + * + * QuickSight Connection Config + * + * Qlik Sense Connection Config + * + * Lightdash Connection Config + * + * MicroStrategy Connection Config + * + * Qlik Cloud Connection Config + * + * Sigma Connection Config + * + * Kafka Connection Config + * + * Redpanda Connection Config + * + * Kinesis Connection Config + * + * Custom Messaging Service Connection to build a source that is not supported by + * OpenMetadata yet. + * + * Airflow Metadata Database Connection Config + * + * Glue Pipeline Connection Config + * + * Airbyte Metadata Database Connection Config + * + * Fivetran Metadata Database Connection Config + * + * Flink Metadata Connection Config + * + * Dagster Metadata Database Connection Config + * + * Nifi Metadata Pipeline Connection Config + * + * Domo Pipeline Connection Config + * + * Custom Pipeline Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Spline Metadata Database Connection Config + * + * Spark Metadata Pipeline Connection Config + * + * OpenLineage Connection Config + * + * KafkaConnect Connection Config + * + * DBTCloud Connection Config + * + * Matillion Connection + * + * Azure Data Factory Connection Config + * + * Stitch Connection + * + * MlFlow Connection Config + * + * Sklearn Connection Config + * + * Custom MlModel Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * SageMaker Connection Config + * + * Google VertexAI Connection Config + * + * Amundsen Connection Config + * + * Metadata to ElasticSearch Connection Config + * + * OpenMetadata Connection Config + * + * Atlas Connection Config + * + * Alation Connection Config + * + * Alation Sink Connection Config + * + * S3 Connection. + * + * ADLS Connection. + * + * GCS Connection. + * + * Custom Storage Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * ElasticSearch Connection. + * + * OpenSearch Connection. + * + * Custom Search Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface ConfigClass { + /** + * Open API Schema URL. + */ + openAPISchemaURL?: string; + /** + * Supports Metadata Extraction. + */ + supportsMetadataExtraction?: boolean; + /** + * Generated Token to connect to OpenAPI Schema. + * + * Generated Token to connect to Databricks. + * + * token to connect to Qlik Cloud. + * + * To Connect to Dagster Cloud + * + * Generated Token to connect to DBTCloud. + * + * Token to connect to Stitch api doc + */ + token?: string; + /** + * REST API Type + * + * Service Type + * + * Custom database service type + * + * Custom dashboard service type + * + * Custom messaging service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * Custom search service type + */ + type?: RESTType; + /** + * If using Metastore, Key-Value pairs that will be used to add configs to the SparkSession. + */ + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * GCP Credentials + * + * Azure Credentials + */ + credentials?: GCPCredentials; + /** + * BigQuery APIs URL. + * + * Host and port of the AzureSQL service. + * + * Host and port of the Clickhouse service. + * + * Host and port of the Databricks service. + * + * Host and port of the DB2 service. + * + * Host and port of the Druid service. + * + * Host and port of the Hive service. + * + * Host and port of the Impala service. + * + * Host and port of the MariaDB service. + * + * Host and port of the MSSQL service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Host and port of the Oracle service. + * + * Host and port of the source service. + * + * Host and port of the Presto service. + * + * Host and port of the Redshift service. + * + * Host and port of the SingleStore service. + * + * Host and port of the Trino service. + * + * Host and port of the Vertica service. + * + * Host and port of the PinotDB Broker service. + * + * Host and port of the MongoDB service when using the `mongodb` connection scheme. Only + * host when using the `mongodb+srv` scheme. + * + * Host and port of the Doris service. + * + * Host and port of the Teradata service. + * + * Host and Port of the SAP ERP instance. + * + * Host and port of the Azure Synapse service. + * + * URL to the Looker instance. + * + * Host and Port of the Metabase instance. + * + * Dashboard URL for PowerBI service. + * + * Dashboard URL for PowerBI Report Server. + * + * URL for the Redash instance + * + * URL for the superset instance. + * + * Tableau Server. + * + * URL for the mode instance. + * + * URL for the Qlik instance. + * + * Address for your running Lightdash instance + * + * Host and Port of the MicroStrategy instance. + * + * Host and Port of the Qlik Cloud instance. + * + * Sigma API url. + * + * Pipeline Service Management/UI URI. + * + * Pipeline Service Management/UI URL. + * + * Spline REST Server Host & Port. + * + * KafkaConnect Service Management/UI URI. + * + * Host and port of the Stitch API host + * + * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: + * bolt://localhost:7687. + * + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + * + * Host and port of the Atlas service. + * + * Host and port of the Alation service. + * + * Host and port of the ElasticSearch service. + * + * Host and port of the OpenSearch service. + */ + hostPort?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + * + * Mongo connection scheme options. + * + * Couchbase driver scheme options. + * + * Http/Https connection scheme + */ + scheme?: string; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + /** + * Supports Lineage Extraction. + */ + supportsLineageExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + /** + * Supports Usage Extraction. + */ + supportsUsageExtraction?: boolean; + /** + * Taxonomy location used to fetch policy tags + */ + taxonomyLocation?: string; + /** + * Project IDs used to fetch policy tags + */ + taxonomyProjectID?: string[]; + /** + * Location used to query INFORMATION_SCHEMA.JOBS_BY_PROJECT to fetch usage data. You can + * pass multi-regions, such as `us` or `eu`, or you specific region. Australia and Asia + * multi-regions are not yet in GA. + */ + usageLocation?: string; + awsConfig?: AWSCredentials; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * S3 Staging Directory. Example: s3://postgres/input/ + */ + s3StagingDir?: string; + /** + * Athena workgroup. + */ + workgroup?: string; + /** + * This parameter determines the mode of authentication for connecting to AzureSQL using + * ODBC. If 'Active Directory Password' is selected, you need to provide the password. If + * 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with AzureSQL. + * + * This parameter determines the mode of authentication for connecting to Azure Synapse + * using ODBC. If 'Active Directory Password' is selected, you need to provide the password. + * If 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with Azure Synapse. + */ + authenticationMode?: any[] | boolean | number | null | AuthenticationModeObject | string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + * + * Database of the data source. + * + * Initial Redshift database to connect to. If you want to ingest all databases, set + * ingestAllDatabases to true. + */ + database?: string; + /** + * SQLAlchemy driver for AzureSQL. + * + * ODBC driver version in case of pyodbc connection. + */ + driver?: string; + /** + * Ingest data from all databases in Azuresql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Mssql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Redshift. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Greenplum. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Azure Synapse. You can use databaseFilterPattern on top + * of this. + */ + ingestAllDatabases?: boolean; + /** + * Password to connect to AzureSQL. + * + * Password to connect to Clickhouse. + * + * Password to connect to DB2. + * + * Password to connect to Druid. + * + * Password to connect to Hive. + * + * Password to connect to Impala. + * + * Password to connect to MariaDB. + * + * Password to connect to MSSQL. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to Oracle. + * + * Password to connect to Presto. + * + * Password to connect to Redshift. + * + * Password to connect to the Salesforce. + * + * Password to connect to SingleStore. + * + * Password to connect to Snowflake. + * + * Password to connect to Vertica. + * + * password to connect to the PinotDB. + * + * Password to connect to MongoDB. + * + * Password to connect to Couchbase. + * + * Password to connect to Doris. + * + * Password to connect to SAS Viya + * + * Password to connect to Teradata. + * + * Password to connect to Azure Synapse. + * + * Password to connect to Exasol. + * + * Password to connect to Metabase. + * + * Password to connect to PowerBI report server. + * + * Password to connect to MicroStrategy. + * + * Password to connect to Airbyte. + * + * password to connect to the Amundsen Neo4j Connection. + * + * password to connect to the Atlas. + * + * OpenSearch Password for Login + */ + password?: string; + /** + * Username to connect to AzureSQL. This user should have privileges to read the metadata. + * + * Username to connect to Clickhouse. This user should have privileges to read all the + * metadata in Clickhouse. + * + * Username to connect to DB2. This user should have privileges to read all the metadata in + * DB2. + * + * Username to connect to Druid. This user should have privileges to read all the metadata + * in Druid. + * + * Username to connect to Hive. This user should have privileges to read all the metadata in + * Hive. + * + * Username to connect to Impala. This user should have privileges to read all the metadata + * in Impala. + * + * Username to connect to MariaDB. This user should have privileges to read all the metadata + * in MariaDB. + * + * Username to connect to MSSQL. This user should have privileges to read all the metadata + * in MsSQL. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to Oracle. This user should have privileges to read all the metadata + * in Oracle. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to Presto. This user should have privileges to read all the metadata + * in Postgres. + * + * Username to connect to Redshift. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to the Salesforce. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to SingleStore. This user should have privileges to read all the + * metadata in MySQL. + * + * Username to connect to Snowflake. This user should have privileges to read all the + * metadata in Snowflake. + * + * Username to connect to Trino. This user should have privileges to read all the metadata + * in Trino. + * + * Username to connect to Vertica. This user should have privileges to read all the metadata + * in Vertica. + * + * username to connect to the PinotDB. This user should have privileges to read all the + * metadata in PinotDB. + * + * Username to connect to MongoDB. This user should have privileges to read all the metadata + * in MongoDB. + * + * Username to connect to Couchbase. This user should have privileges to read all the + * metadata in Couchbase. + * + * Username to connect to Greenplum. This user should have privileges to read all the + * metadata in Greenplum. + * + * Username to connect to Doris. This user should have privileges to read all the metadata + * in Doris. + * + * Username to connect to SAS Viya. + * + * Username to connect to Teradata. This user should have privileges to read all the + * metadata in Teradata. + * + * Username to connect to Azure Synapse. This user should have privileges to read all the + * metadata in Azure Synapse. + * + * Username to connect to Exasol. This user should have privileges to read all the metadata + * in Exasol. + * + * Username to connect to Metabase. This user should have privileges to read all the + * metadata in Metabase. + * + * Username to connect to PowerBI report server. + * + * Username for Redash + * + * Username to connect to MicroStrategy. This user should have privileges to read all the + * metadata in MicroStrategy. + * + * Username to connect to Airbyte. + * + * username to connect to the Amundsen Neo4j Connection. + * + * username to connect to the Atlas. This user should have privileges to read all the + * metadata in Atlas. + * + * OpenSearch Username for Login + */ + username?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + * + * Optional name to give to the schema in OpenMetadata. If left blank, we will use default + * as the schema name + */ + databaseSchema?: string; + /** + * Clickhouse SQL connection duration. + */ + duration?: number; + /** + * Use HTTPS Protocol for connection with clickhouse + */ + https?: boolean; + /** + * Path to key file for establishing secure connection + */ + keyfile?: string; + /** + * Establish secure connection with clickhouse + */ + secure?: boolean; + /** + * Catalog of the data source(Example: hive_metastore). This is optional parameter, if you + * would like to restrict the metadata reading to a single catalog. When left blank, + * OpenMetadata Ingestion attempts to scan all the catalog. + * + * Presto catalog + * + * Catalog of the data source. + */ + catalog?: IcebergCatalog | string; + /** + * The maximum amount of time (in seconds) to wait for a successful connection to the data + * source. If the connection attempt takes longer than this timeout period, an error will be + * returned. + */ + connectionTimeout?: number; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + supportsViewLineageExtraction?: boolean; + /** + * Available sources to fetch the metadata. + * + * Available sources to fetch files. + * + * Available sources to fetch metadata. + */ + configSource?: DeltaLakeConfigurationSource; + /** + * Authentication mode to connect to hive. + */ + auth?: AuthEnum; + /** + * Authentication options to pass to Hive connector. These options are based on SQLAlchemy. + * + * Authentication options to pass to Impala connector. These options are based on SQLAlchemy. + */ + authOptions?: string; + /** + * If authenticating with Kerberos specify the Kerberos service name + */ + kerberosServiceName?: string; + /** + * Hive Metastore Connection Details + */ + metastoreConnection?: HiveMetastoreConnectionDetails; + /** + * Authentication mode to connect to Impala. + */ + authMechanism?: AuthMechanismEnum; + /** + * Establish secure connection with Impala + */ + useSSL?: boolean; + /** + * Choose Auth Config Type. + * + * Types of methods used to authenticate to the tableau instance + * + * Types of methods used to authenticate to the alation instance + */ + authType?: AuthConfigurationType | NoConfigAuthenticationTypes; + /** + * SSL Configuration details. + * + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: SSLConfigObject; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * This directory will be used to set the LD_LIBRARY_PATH env variable. It is required if + * you need to enable thick connection mode. By default, we bring instant client 19 and + * point to /instantclient. + */ + instantClientDirectory?: string; + /** + * Connect with oracle by either passing service name or database schema name. + */ + oracleConnectionType?: OracleConnectionType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + sslMode?: SSLMode; + /** + * Protocol ( Connection Argument ) to connect to Presto. + */ + protocol?: string; + /** + * Verify ( Connection Argument for SSL ) to connect to Presto. + * + * Verify ( Connection Argument for SSL ) to connect to Trino. + */ + verify?: string; + /** + * Salesforce Organization ID is the unique identifier for your Salesforce identity + */ + organizationId?: string; + /** + * API version of the Salesforce instance + */ + salesforceApiVersion?: string; + /** + * Domain of Salesforce instance + */ + salesforceDomain?: string; + /** + * Salesforce Security Token. + */ + securityToken?: string; + /** + * Salesforce Object Name. + */ + sobjectName?: string; + /** + * If the Snowflake URL is https://xyz1234.us-east-1.gcp.snowflakecomputing.com, then the + * account is xyz1234.us-east-1.gcp + * + * Specifies an account string to override the default account string defined for the + * database user. Accounts are used by the database for workload management and resource + * usage monitoring. + */ + account?: string; + /** + * Optional configuration for ingestion to keep the client session active in case the + * ingestion process runs for longer durations. + */ + clientSessionKeepAlive?: boolean; + /** + * Optional configuration for ingestion of TRANSIENT tables, By default, it will skip the + * TRANSIENT tables. + */ + includeTransientTables?: boolean; + /** + * Connection to Snowflake instance via Private Key + */ + privateKey?: string; + /** + * Session query tag used to monitor usage on snowflake. To use a query tag snowflake user + * should have enough privileges to alter the session. + */ + queryTag?: string; + /** + * Snowflake Role. + */ + role?: string; + /** + * Snowflake Passphrase Key used with Private Key + */ + snowflakePrivatekeyPassphrase?: string; + /** + * Snowflake warehouse. + */ + warehouse?: string; + /** + * Proxies for the connection to Trino data source + */ + proxies?: { [key: string]: string }; + /** + * Pinot Controller Host and Port of the data source. + */ + pinotControllerHost?: string; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + /** + * Access token to connect to DOMO + * + * Access Token for Mode Dashboard + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + * + * User's Client ID. This user should have privileges to read all the metadata in Looker. + * + * client_id for PowerBI. + * + * client_id for Sigma. + */ + clientId?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret Token to connect DOMO + * + * Secret token to connect to DOMO + */ + secretToken?: string; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Choose between Database connection or HDB User Store connection. + * + * Choose between API or database connection fetch metadata from superset. + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Matillion Auth Configuration + * + * Choose between mysql and postgres connection for alation database + */ + connection?: ConnectionObject; + /** + * Couchbase connection Bucket options. + */ + bucket?: string; + /** + * Hostname of the Couchbase service. + */ + hostport?: string; + /** + * Enable dataflow for ingestion + */ + dataflows?: boolean; + /** + * Custom filter for dataflows + */ + dataflowsCustomFilter?: { [key: string]: any } | string; + /** + * Enable datatables for ingestion + */ + datatables?: boolean; + /** + * Custom filter for datatables + */ + dataTablesCustomFilter?: { [key: string]: any } | string; + /** + * Enable report for ingestion + */ + reports?: boolean; + /** + * Custom filter for reports + */ + reportsCustomFilter?: { [key: string]: any } | string; + /** + * Hostname of SAS Viya deployment. + */ + serverHost?: string; + /** + * Table property to look for the Owner. + */ + ownershipProperty?: string; + /** + * Specifies additional data needed by a logon mechanism, such as a secure token, + * Distinguished Name, or a domain/realm name. LOGDATA values are specific to each logon + * mechanism. + */ + logdata?: string; + /** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ + logmech?: Logmech; + /** + * Specifies the transaction mode for the connection + */ + tmode?: TransactionMode; + /** + * API key to authenticate with the SAP ERP APIs. + * + * API key of the redash instance to access. + * + * The personal access token you can generate in the Lightdash app under the user settings + * + * Fivetran API Secret. + */ + apiKey?: string; + /** + * Pagination limit used while querying the SAP ERP API for fetching the entities + * + * Pagination limit used while querying the tableau metadata API for getting data sources + * + * Pagination limit used for Alation APIs pagination + */ + paginationLimit?: number; + /** + * Boolean marking if we need to verify the SSL certs for KafkaConnect REST API. True by + * default. + * + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: boolean | VerifySSL; + /** + * Client SSL/TLS settings. + */ + tls?: SSLTLSSettings; + /** + * User's Client Secret. + * + * clientSecret for PowerBI. + * + * clientSecret for Sigma. + */ + clientSecret?: string; + /** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + */ + gitCredentials?: GitHubCredentials; + /** + * Authority URI for the PowerBI service. + */ + authorityURI?: string; + /** + * Entity Limit set here will be used to paginate the PowerBi APIs + */ + pagination_entity_per_page?: number; + /** + * Source to get the .pbit files to extract lineage information + */ + pbitFilesSource?: PowerBIPbitFilesSource; + /** + * PowerBI secrets. + */ + scope?: string[]; + /** + * Tenant ID for PowerBI. + */ + tenantId?: string; + /** + * Fetch the PowerBI metadata using admin APIs + */ + useAdminApis?: boolean; + /** + * Web Portal Virtual Directory Name. + */ + webPortalVirtualDirectory?: string; + /** + * Version of the Redash instance + */ + redashVersion?: string; + /** + * Tableau API version. + * + * Sigma API version. + * + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * Tableau Environment Name. + */ + env?: string; + /** + * Tableau Site Name. + */ + siteName?: string; + /** + * Tableau Site Url. + */ + siteUrl?: string; + /** + * Access Token Password for Mode Dashboard + */ + accessTokenPassword?: string; + /** + * Filter query parameter for some of the Mode API calls + */ + filterQueryParam?: string; + /** + * Mode Workspace Name + */ + workspaceName?: string; + /** + * AWS Account ID + */ + awsAccountId?: string; + /** + * The authentication method that the user uses to sign in. + */ + identityType?: IdentityType; + /** + * The Amazon QuickSight namespace that contains the dashboard IDs in this request ( To be + * provided when identityType is `ANONYMOUS` ) + */ + namespace?: string; + certificates?: QlikCertificatesBy; + /** + * Qlik Sense Base URL, used for genrating dashboard & chat url + */ + displayUrl?: string; + /** + * User Directory. + */ + userDirectory?: string; + /** + * User ID. + */ + userId?: string; + /** + * Validate Host Name + */ + validateHostName?: boolean; + /** + * The Project UUID for your Lightdash instance + */ + projectUUID?: string; + /** + * Use if your Lightdash instance is behind a proxy like (Cloud IAP) + */ + proxyAuthentication?: string; + /** + * The Space UUID for your Lightdash instance + */ + spaceUUID?: string; + /** + * Login Mode for Microstrategy's REST API connection. You can authenticate with one of the + * following authentication modes: `Standard (1)`, `Anonymous (8)`. Default will be + * `Standard (1)`. If you're using demo account for Microstrategy, it will be needed to + * authenticate through loginMode `8`. + */ + loginMode?: string; + /** + * MicroStrategy Project Name + * + * Project name to create the refreshToken. Can be anything + */ + projectName?: string; + /** + * basic.auth.user.info schema registry config property, Client HTTP credentials in the form + * of username:password. + */ + basicAuthUserInfo?: string; + /** + * Kafka bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + * + * Redpanda bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + */ + bootstrapServers?: string; + /** + * Confluent Kafka Consumer Config. From + * https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md + * + * Confluent Redpanda Consumer Config + */ + consumerConfig?: { [key: string]: any }; + /** + * sasl.mechanism Consumer Config property + */ + saslMechanism?: SaslMechanismType; + /** + * sasl.password consumer config property + */ + saslPassword?: string; + /** + * sasl.username consumer config property + */ + saslUsername?: string; + /** + * Confluent Kafka Schema Registry Config. From + * https://docs.confluent.io/5.5.1/clients/confluent-kafka-python/index.html#confluent_kafka.schema_registry.SchemaRegistryClient + * + * Confluent Redpanda Schema Registry Config. + */ + schemaRegistryConfig?: { [key: string]: any }; + /** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + */ + schemaRegistrySSL?: SchemaRegistrySSLClass; + /** + * Schema Registry Topic Suffix Name. The suffix to be appended to the topic name to get + * topic schema from registry. + */ + schemaRegistryTopicSuffixName?: string; + /** + * Confluent Kafka Schema Registry URL. + * + * Confluent Redpanda Schema Registry URL. + */ + schemaRegistryURL?: string; + /** + * security.protocol consumer config property + * + * Kafka security protocol config + */ + securityProtocol?: KafkaSecurityProtocol; + /** + * Pipeline Service Number Of Status + */ + numberOfStatus?: number; + /** + * Fivetran API Secret. + */ + apiSecret?: string; + /** + * Fivetran API Limit For Pagination. + */ + limit?: number; + /** + * URL to the Dagster instance + * + * DBT cloud Access URL. + */ + host?: string; + /** + * Connection Time Limit Between OM and Dagster Graphql API in second + */ + timeout?: number; + /** + * We support username/password or client certificate authentication + */ + nifiConfig?: NifiCredentialsConfiguration; + /** + * Spline UI Host & Port. + */ + uiHostPort?: string; + /** + * service type of the messaging source + */ + brokersUrl?: string; + /** + * consumer group name + */ + consumerGroupName?: string; + /** + * initial Kafka consumer offset + */ + consumerOffsets?: InitialConsumerOffsets; + /** + * max allowed wait time + */ + poolTimeout?: number; + /** + * SASL Configuration details. + */ + saslConfig?: SASLClientConfig; + /** + * max allowed inactivity time + */ + sessionTimeout?: number; + /** + * topic from where Open lineage events will be pulled + */ + topicName?: string; + /** + * We support username/password or No Authentication + */ + KafkaConnectConfig?: UsernamePasswordAuthentication; + /** + * Name of the Kafka Messaging Service associated with this KafkaConnect Pipeline Service. + * e.g. local_kafka + * + * service type of the messaging source + */ + messagingServiceName?: string[] | string; + /** + * ID of your DBT cloud account + */ + accountId?: string; + /** + * DBT cloud Metadata API URL. + */ + discoveryAPI?: string; + /** + * List of IDs of your DBT cloud jobs seperated by comma `,` + */ + jobIds?: string[]; + /** + * List of IDs of your DBT cloud projects seperated by comma `,` + */ + projectIds?: string[]; + /** + * The name of your azure data factory. + */ + factory_name?: string; + /** + * The name of your resource group the data factory is associated with. + */ + resource_group_name?: string; + /** + * Number of days in the past to filter pipeline runs. + */ + run_filter_days?: number; + /** + * The azure subscription identifier. + */ + subscription_id?: string; + /** + * Mlflow Model registry backend. E.g., + * mysql+pymysql://mlflow:password@localhost:3307/experiments + */ + registryUri?: string; + /** + * Mlflow Experiment tracking URI. E.g., http://localhost:5000 + */ + trackingUri?: string; + /** + * location/region of google cloud project + */ + location?: string; + /** + * Enable encryption for the Amundsen Neo4j Connection. + */ + encrypted?: boolean; + /** + * Maximum connection lifetime for the Amundsen Neo4j Connection. + */ + maxConnectionLifeTime?: number; + /** + * Enable SSL validation for the Amundsen Neo4j Connection. + */ + validateSSL?: boolean; + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * List of entities that you need to reindex + */ + entities?: string[]; + recreateIndex?: boolean; + runMode?: RunMode; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ConfigElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * service type of the data source. + */ + databaseServiceName?: string[]; + /** + * Name of the Entity Type available in Atlas. + */ + entity_type?: string; + /** + * Custom OpenMetadata Classification name for alation tags. + */ + alationTagClassificationName?: string; + /** + * Specifies if hidden datasources should be included while ingesting. + */ + includeHiddenDatasources?: boolean; + /** + * Specifies if undeployed datasources should be included while ingesting. + */ + includeUndeployedDatasources?: boolean; + /** + * Specifies if Dashboards are to be ingested while running the ingestion job. + */ + ingestDashboards?: boolean; + /** + * Specifies if Datasources are to be ingested while running the ingestion job. + */ + ingestDatasources?: boolean; + /** + * Specifies if Domains are to be ingested while running the ingestion job. + */ + ingestDomains?: boolean; + /** + * Specifies if Knowledge Articles are to be ingested while running the ingestion job. + */ + ingestKnowledgeArticles?: boolean; + /** + * Specifies if Users and Groups are to be ingested while running the ingestion job. + */ + ingestUsersAndGroups?: boolean; + datasourceLinks?: { [key: string]: string }; + /** + * Bucket Names of the data source. + */ + bucketNames?: string[]; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs?: number; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; +} + +/** + * We support username/password or No Authentication + * + * username/password auth + */ +export interface UsernamePasswordAuthentication { + /** + * KafkaConnect password to authenticate to the API. + */ + password?: string; + /** + * KafkaConnect user to authenticate to the API. + */ + username?: string; +} + +/** + * Authentication mode to connect to hive. + */ +export enum AuthEnum { + Basic = "BASIC", + Custom = "CUSTOM", + Gssapi = "GSSAPI", + Jwt = "JWT", + Kerberos = "KERBEROS", + LDAP = "LDAP", + None = "NONE", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Authentication mode to connect to Impala. + */ +export enum AuthMechanismEnum { + Gssapi = "GSSAPI", + Jwt = "JWT", + LDAP = "LDAP", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + * + * Types of methods used to authenticate to the tableau instance + * + * Basic Auth Credentials + * + * Access Token Auth Credentials + * + * Types of methods used to authenticate to the alation instance + * + * API Access Token Auth Credentials + * + * Basic Auth Configuration for ElasticSearch + * + * SSL Certificates By Path + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + * + * Password to access the service. + * + * Elastic Search Password for Login + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; + /** + * JWT to connect to source. + */ + jwt?: string; + /** + * Username to access the service. + * + * Elastic Search Username for Login + */ + username?: string; + /** + * Personal Access Token Name. + */ + personalAccessTokenName?: string; + /** + * Personal Access Token Secret. + */ + personalAccessTokenSecret?: string; + /** + * Access Token for the API + */ + accessToken?: string; + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Database Authentication types not requiring config. + */ +export enum NoConfigAuthenticationTypes { + OAuth2 = "OAuth2", +} + +export interface AuthenticationModeObject { + /** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ + authentication?: Authentication; + /** + * Connection Timeout from Connection String for AzureSQL. + * + * Connection Timeout from Connection String for Azure Synapse. + */ + connectionTimeout?: number; + /** + * Encrypt from Connection String for AzureSQL. + * + * Encrypt from Connection String for Azure Synapse. + */ + encrypt?: boolean; + /** + * Trust Server Certificate from Connection String for AzureSQL. + * + * Trust Server Certificate from Connection String for Azure Synapse. + */ + trustServerCertificate?: boolean; + [property: string]: any; +} + +/** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ +export enum Authentication { + ActiveDirectoryIntegrated = "ActiveDirectoryIntegrated", + ActiveDirectoryPassword = "ActiveDirectoryPassword", +} + +/** + * Iceberg Catalog configuration. + */ +export interface IcebergCatalog { + /** + * Catalog connection configuration, depending on your catalog type. + */ + connection: Connection; + /** + * Custom Database Name for your Iceberg Service. If not set it will be 'default'. + */ + databaseName?: string; + /** + * Catalog Name. + */ + name: string; + /** + * Warehouse Location. Used to specify a custom warehouse location if needed. + */ + warehouseLocation?: string; +} + +/** + * Catalog connection configuration, depending on your catalog type. + * + * Iceberg Hive Catalog configuration. + * + * Iceberg REST Catalog configuration. + * + * Iceberg Glue Catalog configuration. + * + * Iceberg DynamoDB Catalog configuration. + */ +export interface Connection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + * + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri?: string; + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + awsConfig?: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName?: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * Qlik Authentication Certificate By Values + * + * Qlik Authentication Certificate File Path + */ +export interface QlikCertificatesBy { + sslConfig?: SchemaRegistrySSLClass; + /** + * Client Certificate + */ + clientCertificate?: string; + /** + * Client Key Certificate. + */ + clientKeyCertificate?: string; + /** + * Root Certificate. + */ + rootCertificate?: string; + [property: string]: any; +} + +/** + * Available sources to fetch the metadata. + * + * Deltalake Metastore configuration. + * + * DeltaLake Storage Connection Config + * + * Available sources to fetch files. + * + * Local config source where no extra information needs to be sent. + * + * Azure Datalake Storage will ingest files in container + * + * DataLake GCS storage will ingest metadata of files + * + * DataLake S3 bucket will ingest metadata of files in bucket + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface DeltaLakeConfigurationSource { + /** + * pySpark App Name. + */ + appName?: string; + /** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + */ + connection?: ConfigSourceConnection; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + securityConfig?: SecurityConfigClass; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface ConfigSourceConnection { + /** + * Thrift connection to the metastore service. E.g., localhost:9083 + */ + metastoreHostPort?: string; + /** + * Driver class name for JDBC metastore. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionDriverName sparks property. E.g., + * org.mariadb.jdbc.Driver + */ + driverName?: string; + /** + * Class path to JDBC driver required for JDBC connection. The value will be mapped as + * spark.driver.extraClassPath sparks property. + */ + jdbcDriverClassPath?: string; + /** + * JDBC connection to the metastore database. E.g., jdbc:mysql://localhost:3306/demo_hive + */ + metastoreDb?: string; + /** + * Password to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionPassword sparks property. + */ + password?: string; + /** + * Username to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionUserName sparks property. + */ + username?: string; + /** + * Local path for the local file with metastore data. E.g., /tmp/metastore.db + */ + metastoreFilePath?: string; + securityConfig?: AWSCredentials; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + * + * GCP Credentials + * + * GCP credentials configs. + * + * AWS credentials configs. + */ +export interface SecurityConfigClass { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Choose between Database connection or HDB User Store connection. + * + * Sap Hana Database SQL Connection Config + * + * Sap Hana Database HDB User Store Connection Config + * + * Choose between API or database connection fetch metadata from superset. + * + * Superset API Connection Config + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Lineage Backend Connection Config + * + * SQLite Database Connection Config + * + * Matillion Auth Configuration + * + * Matillion ETL Auth Config + * + * Choose between mysql and postgres connection for alation database + */ +export interface ConnectionObject { + /** + * Database of the data source. + * + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Database Schema of the data source. This is an optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Hana service. + * + * Host and port of the source service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Matillion Host + */ + hostPort?: string; + /** + * Password to connect to Hana. + * + * Password for Superset. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to the Matillion. + */ + password?: string; + /** + * Username to connect to Hana. This user should have privileges to read all the metadata. + * + * Username for Superset. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to the Matillion. This user should have privileges to read all the + * metadata in Matillion. + */ + username?: string; + /** + * HDB Store User Key generated from the command `hdbuserstore SET + * ` + */ + userKey?: string; + /** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ + provider?: Provider; + /** + * SSL Configuration details. + */ + sslConfig?: ConnectionSSLConfig; + verifySSL?: VerifySSL; + /** + * Choose Auth Config Type. + */ + authType?: ConnectionAuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: ConnectionScheme; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: ConnectionType; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + supportsViewLineageExtraction?: boolean; + [property: string]: any; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface ConnectionAuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ +export enum Provider { + DB = "db", + LDAP = "ldap", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum ConnectionScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", + SqlitePysqlite = "sqlite+pysqlite", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Configuration for OpenMetadata Server + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + */ +export interface ConnectionSSLConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum ConnectionType { + Backend = "Backend", + MatillionETL = "MatillionETL", + Mysql = "Mysql", + Postgres = "Postgres", + SQLite = "SQLite", +} + +/** + * initial Kafka consumer offset + */ +export enum InitialConsumerOffsets { + Earliest = "earliest", + Latest = "latest", +} + +/** + * GCP Credentials + * + * GCP credentials configs. + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ConfigElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + * + * Do not set any credentials. Note that credentials are required to extract .lkml views and + * their lineage. + * + * Credentials for a GitHub repository + * + * Credentials for a BitBucket repository + * + * Credentials for a Gitlab repository + */ +export interface GitHubCredentials { + repositoryName?: string; + repositoryOwner?: string; + token?: string; + /** + * Credentials Type + */ + type?: GitHubCredentialsType; + /** + * Main production branch of the repository. E.g., `main` + */ + branch?: string; +} + +/** + * Credentials Type + * + * GitHub Credentials type + * + * BitBucket Credentials type + * + * Gitlab Credentials type + */ +export enum GitHubCredentialsType { + BitBucket = "BitBucket", + GitHub = "GitHub", + Gitlab = "Gitlab", +} + +/** + * The authentication method that the user uses to sign in. + */ +export enum IdentityType { + Anonymous = "ANONYMOUS", + Iam = "IAM", + Quicksight = "QUICKSIGHT", +} + +/** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ +export enum Logmech { + Custom = "CUSTOM", + Jwt = "JWT", + Krb5 = "KRB5", + LDAP = "LDAP", + Td2 = "TD2", + Tdnego = "TDNEGO", +} + +/** + * Hive Metastore Connection Details + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface HiveMetastoreConnectionDetails { + /** + * Choose Auth Config Type. + */ + authType?: ConnectionAuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: HiveMetastoreConnectionDetailsScheme; + /** + * SSL Configuration details. + */ + sslConfig?: SchemaRegistrySSLClass; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: HiveMetastoreConnectionDetailsType; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum HiveMetastoreConnectionDetailsScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Service Type + * + * Service type. + */ +export enum HiveMetastoreConnectionDetailsType { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * We support username/password or client certificate authentication + * + * username/password auth + * + * client certificate auth + */ +export interface NifiCredentialsConfiguration { + /** + * Nifi password to authenticate to the API. + */ + password?: string; + /** + * Nifi user to authenticate to the API. + */ + username?: string; + /** + * Boolean marking if we need to verify the SSL certs for Nifi. False by default. + */ + verifySSL?: boolean; + /** + * Path to the root CA certificate + */ + certificateAuthorityPath?: string; + /** + * Path to the client certificate + */ + clientCertificatePath?: string; + /** + * Path to the client key + */ + clientkeyPath?: string; +} + +/** + * Connect with oracle by either passing service name or database schema name. + */ +export interface OracleConnectionType { + /** + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + */ + databaseSchema?: string; + /** + * The Oracle Service name is the TNS alias that you give when you remotely connect to your + * database. + */ + oracleServiceName?: string; + /** + * Pass the full constructed TNS string, e.g., + * (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1530)))(CONNECT_DATA=(SID=MYSERVICENAME))). + */ + oracleTNSConnection?: string; + [property: string]: any; +} + +/** + * Source to get the .pbit files to extract lineage information + * + * Local config source where no extra information needs to be sent. + * + * Azure storage config for pbit files + * + * GCS storage config for pbit files + * + * S3 storage config for pbit files + */ +export interface PowerBIPbitFilesSource { + /** + * Directory path for the pbit files + */ + path?: string; + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig?: SecurityConfigClass; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Azure = "azure", + Gcs = "gcs", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * This schema publisher run modes. + */ +export enum RunMode { + Batch = "batch", + Stream = "stream", +} + +/** + * SASL Configuration details. + * + * SASL client configuration. + */ +export interface SASLClientConfig { + /** + * SASL security mechanism + */ + saslMechanism?: SaslMechanismType; + /** + * The SASL authentication password. + */ + saslPassword?: string; + /** + * The SASL authentication username. + */ + saslUsername?: string; +} + +/** + * sasl.mechanism Consumer Config property + * + * SASL Mechanism consumer config property + * + * SASL security mechanism + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * security.protocol consumer config property + * + * Kafka security protocol config + */ +export enum KafkaSecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslPlaintext = "SASL_PLAINTEXT", + SaslSSL = "SASL_SSL", +} + +/** + * SSL Configuration for OpenMetadata Server + * + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Config + */ +export interface SSLConfigObject { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; + /** + * SSL Certificates + */ + certificates?: SSLCertificates; + [property: string]: any; +} + +/** + * SSL Certificates + * + * SSL Configuration details. + * + * SSL Certificates By Path + * + * SSL Certificates By Values + */ +export interface SSLCertificates { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} + +/** + * Client SSL/TLS settings. + */ +export enum SSLTLSSettings { + DisableTLS = "disable-tls", + IgnoreCertificate = "ignore-certificate", + ValidateCertificate = "validate-certificate", +} + +/** + * Specifies the transaction mode for the connection + */ +export enum TransactionMode { + ANSI = "ANSI", + Default = "DEFAULT", + Tera = "TERA", +} + +/** + * REST API Type + * + * REST API type + * + * Service Type + * + * Service type. + * + * service type + * + * Custom database service type + * + * Looker service type + * + * Metabase service type + * + * PowerBI service type + * + * PowerBIReportServer service type + * + * Redash service type + * + * Superset service type + * + * Tableau service type + * + * Mode service type + * + * Custom dashboard service type + * + * QuickSight service type + * + * Qlik sense service type + * + * Lightdash service type + * + * MicroStrategy service type + * + * Qlik Cloud service type + * + * Sigma service type + * + * Kafka service type + * + * Redpanda service type + * + * Custom messaging service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * Amundsen service type + * + * Metadata to Elastic Search type + * + * OpenMetadata service type + * + * S3 service type + * + * ADLS service type + * + * Gcs service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * ElasticSearch service type + * + * OpenSearch service type + * + * Custom search service type + */ +export enum RESTType { + Adls = "ADLS", + Airbyte = "Airbyte", + Airflow = "Airflow", + Alation = "Alation", + AlationSink = "AlationSink", + Amundsen = "Amundsen", + Athena = "Athena", + Atlas = "Atlas", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDashboard = "CustomDashboard", + CustomDatabase = "CustomDatabase", + CustomMessaging = "CustomMessaging", + CustomMlModel = "CustomMlModel", + CustomPipeline = "CustomPipeline", + CustomSearch = "CustomSearch", + CustomStorage = "CustomStorage", + DBTCloud = "DBTCloud", + Dagster = "Dagster", + DataFactory = "DataFactory", + Databricks = "Databricks", + DatabricksPipeline = "DatabricksPipeline", + Datalake = "Datalake", + Db2 = "Db2", + DeltaLake = "DeltaLake", + DomoDashboard = "DomoDashboard", + DomoDatabase = "DomoDatabase", + DomoPipeline = "DomoPipeline", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + ElasticSearch = "ElasticSearch", + Exasol = "Exasol", + Fivetran = "Fivetran", + Flink = "Flink", + Gcs = "GCS", + Glue = "Glue", + GluePipeline = "GluePipeline", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + Kafka = "Kafka", + KafkaConnect = "KafkaConnect", + Kinesis = "Kinesis", + Lightdash = "Lightdash", + Looker = "Looker", + MariaDB = "MariaDB", + Matillion = "Matillion", + Metabase = "Metabase", + MetadataES = "MetadataES", + MicroStrategy = "MicroStrategy", + Mlflow = "Mlflow", + Mode = "Mode", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Nifi = "Nifi", + OpenLineage = "OpenLineage", + OpenMetadata = "OpenMetadata", + OpenSearch = "OpenSearch", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + Presto = "Presto", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + REST = "Rest", + Redash = "Redash", + Redpanda = "Redpanda", + Redshift = "Redshift", + S3 = "S3", + SAS = "SAS", + SQLite = "SQLite", + SageMaker = "SageMaker", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + Sigma = "Sigma", + SingleStore = "SingleStore", + Sklearn = "Sklearn", + Snowflake = "Snowflake", + Spark = "Spark", + Spline = "Spline", + Stitch = "Stitch", + Superset = "Superset", + Synapse = "Synapse", + Tableau = "Tableau", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + VertexAI = "VertexAI", + Vertica = "Vertica", +} + +/** + * Type of service such as Database, Dashboard, Messaging, etc. + * + * This schema defines the service types entities which requires a connection. + */ +export enum ServiceType { + API = "Api", + Dashboard = "Dashboard", + Database = "Database", + Messaging = "Messaging", + Metadata = "Metadata", + MlModel = "MlModel", + Pipeline = "Pipeline", + Search = "Search", + Storage = "Storage", +} + +/** + * Response to the request. + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} + +/** + * Workflow computation status. + * + * Enum defining possible Workflow status + */ +export enum WorkflowStatus { + Failed = "Failed", + Pending = "Pending", + Running = "Running", + Successful = "Successful", +} + +/** + * Type of the workflow. + * + * This enum defines the type for which this workflow applies to. + */ +export enum WorkflowType { + TestConnection = "TEST_CONNECTION", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/bot.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/bot.ts new file mode 100644 index 000000000000..3b503139a326 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/bot.ts @@ -0,0 +1,182 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines a Bot entity. A bot automates tasks, such as adding description, + * identifying the importance of data. It performs this task as a special user in the system. + */ +export interface Bot { + /** + * Bot user created for this bot on behalf of which the bot performs all the operations, + * such as updating description, responding on the conversation threads, etc. + */ + botUser: EntityReference; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the bot. + */ + description?: string; + /** + * Name used for display purposes. Example 'FirstName LastName'. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this bot. + */ + href?: string; + /** + * Unique identifier of a bot instance. + */ + id: string; + /** + * Name of the bot. + */ + name: string; + provider?: ProviderType; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Bot user created for this bot on behalf of which the bot performs all the operations, + * such as updating description, responding on the conversation threads, etc. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/classification/classification.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/classification/classification.ts new file mode 100644 index 000000000000..571587bc224e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/classification/classification.ts @@ -0,0 +1,193 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `Classification` entity contains hierarchical terms called tags used for categorizing + * and classifying data assets and other entities. + */ +export interface Classification { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the classification. + */ + description: string; + /** + * System classifications can't be deleted. Use this flag to disable them. + */ + disabled?: boolean; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to the classification. + */ + href?: string; + /** + * Unique identifier of this entity instance. + */ + id?: string; + /** + * Tags under this classification are mutually exclusive. When mutually exclusive is `true` + * the tags from this classification are used to **classify** an entity. An entity can only + * be in one class - example, it can only be either `tier1` or `tier2` and not both. When + * mutually exclusive is `false`, the tags from this classification are used to + * **categorize** an entity. An entity have multiple tags simultaneously - example a + * customer can be `newCustomer` and `atRisk` simultaneously. + */ + mutuallyExclusive?: boolean; + name: string; + provider?: ProviderType; + /** + * Total number of children tag terms under this classification. This includes all the + * children in the hierarchy. + */ + termCount?: number; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Count of how many times the tags from this classification are used. + */ + usageCount?: number; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/classification/tag.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/classification/tag.ts new file mode 100644 index 000000000000..c7e03d9f9f6c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/classification/tag.ts @@ -0,0 +1,239 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `Tag` entity is used for classification or categorization. It is a term defined under + * `Classification` entity. Tags are used to label the entities and entity fields, such as + * Tables, and Columns. + */ +export interface Tag { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Children tags under this tag. + */ + children?: EntityReference[]; + /** + * Reference to the classification that this tag is part of. + */ + classification?: EntityReference; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * If the tag is deprecated. + */ + deprecated?: boolean; + /** + * Description of the tag. + */ + description: string; + /** + * System tags can't be deleted. Use this flag to disable them. + */ + disabled?: boolean; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * Unique name of the tag of format `Classification.tag1.tag2`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to the tag. + */ + href?: string; + /** + * Unique identifier of this entity instance. + */ + id?: string; + /** + * Children tags under this group are mutually exclusive. When mutually exclusive is `true` + * the tags from this group are used to **classify** an entity. An entity can only be in one + * class - example, it can only be either `tier1` or `tier2` and not both. When mutually + * exclusive is `false`, the tags from this group are used to **categorize** an entity. An + * entity can be in multiple categories simultaneously - example a customer can be + * `newCustomer` and `atRisk` simultaneously. + */ + mutuallyExclusive?: boolean; + /** + * Name of the tag. + */ + name: string; + /** + * Reference to the parent tag. When null, the term is at the root of the Classification. + */ + parent?: EntityReference; + provider?: ProviderType; + style?: Style; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Count of how many times this tag and children tags are used. + */ + usageCount?: number; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Children tags under this tag. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Reference to the classification that this tag is part of. + * + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * Reference to the parent tag. When null, the term is at the root of the Classification. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiCollection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiCollection.ts new file mode 100644 index 000000000000..a3089acd51d9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiCollection.ts @@ -0,0 +1,401 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the APICollection entity. API Collection allows user to group + * multiple APIs together. In OpenAPI specification its marked as a Tag. + */ +export interface APICollection { + /** + * All the APIs included in this API Collection. + */ + apiEndpoints?: EntityReference[]; + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the API Collection, what it is, and how to use it. + */ + description?: string; + /** + * Display Name that identifies this API Collection. It could be title or label from the + * source services. + */ + displayName?: string; + /** + * Domain the API Collection belongs to. When not set, the API Collection inherits the + * domain from the API service it belongs to. + */ + domain?: EntityReference; + /** + * EndPoint URL for the API Collection. Capture the Root URL of the collection. + */ + endpointURL: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * A unique name that identifies a API Collection in the format + * 'ServiceName.ApiCollectionName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies a API Collection instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this API Collection. + */ + name: string; + /** + * Owners of this API Collection. + */ + owners?: EntityReference[]; + /** + * Link to service where this API Collection is hosted in. + */ + service: EntityReference; + /** + * Service type where this API Collection is hosted in. + */ + serviceType?: APIServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Tags for this API Collection. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * All the APIs included in this API Collection. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the API Collection belongs to. When not set, the API Collection inherits the + * domain from the API service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to service where this API Collection is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Service type where this API Collection is hosted in. + * + * Type of api service such as REST, Webhook,... + */ +export enum APIServiceType { + REST = "Rest", + Webhook = "WEBHOOK", +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiEndpoint.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiEndpoint.ts new file mode 100644 index 000000000000..0878eab96f67 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/apiEndpoint.ts @@ -0,0 +1,529 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the APIEndpoint entity. An APIEndpoint is a specific endpoint of an + * API that is part of an API Collection. + */ +export interface APIEndpoint { + /** + * Reference to API Collection that contains this API Endpoint. + */ + apiCollection?: EntityReference; + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the API Endpoint, what it is, and how to use it. + */ + description?: string; + /** + * Display Name that identifies this API Endpoint. + */ + displayName?: string; + /** + * Domain the API Collection belongs to. When not set, the API Collection inherits the + * domain from the API service it belongs to. + */ + domain?: EntityReference; + /** + * EndPoint URL for the API Collection. Capture the Root URL of the collection. + */ + endpointURL: string; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Followers of this API Collection. + */ + followers?: EntityReference[]; + /** + * A unique name that identifies a API Collection in the format + * 'ServiceName.ApiCollectionName.APIEndpoint'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies a API Endpoint instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this API Endpoint. + */ + name: string; + /** + * Owners of this API Collection. + */ + owners?: EntityReference[]; + /** + * Request Method for the API Endpoint. + */ + requestMethod?: APIRequestMethod; + /** + * Request Schema for the API Endpoint. + */ + requestSchema?: APISchema; + /** + * Response Schema for the API Endpoint. + */ + responseSchema?: APISchema; + /** + * Link to service where this API Collection is hosted in. + */ + service: EntityReference; + /** + * Service type where this API Collection is hosted in. + */ + serviceType?: APIServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Tags for this API Collection. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Reference to API Collection that contains this API Endpoint. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the API Collection belongs to. When not set, the API Collection inherits the + * domain from the API service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to service where this API Collection is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Request Method for the API Endpoint. + * + * This schema defines the Request Method type for APIs . + */ +export enum APIRequestMethod { + Connect = "CONNECT", + Delete = "DELETE", + Get = "GET", + Head = "HEAD", + Options = "OPTIONS", + Patch = "PATCH", + Post = "POST", + Put = "PUT", + Trace = "TRACE", +} + +/** + * Request Schema for the API Endpoint. + * + * This schema defines the API Endpoint entity's request/response schema. + * + * Response Schema for the API Endpoint. + */ +export interface APISchema { + /** + * Columns in this schema. + */ + schemaFields?: Field[]; + /** + * Schema used for message serialization. + */ + schemaType?: SchemaType; + [property: string]: any; +} + +/** + * This schema defines the nested object to capture protobuf/avro/jsonschema of topic's + * schema. + */ +export interface Field { + /** + * Child fields if dataType or arrayDataType is `map`, `record`, `message` + */ + children?: Field[]; + /** + * Data type of the field (int, date etc.). + */ + dataType: DataTypeTopic; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this field name. + */ + displayName?: string; + fullyQualifiedName?: string; + name: string; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the field (int, date etc.). + * + * This enum defines the type of data defined in schema. + */ +export enum DataTypeTopic { + Array = "ARRAY", + Boolean = "BOOLEAN", + Bytes = "BYTES", + Date = "DATE", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Int = "INT", + Long = "LONG", + Map = "MAP", + Null = "NULL", + Record = "RECORD", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Union = "UNION", + Unknown = "UNKNOWN", +} + +/** + * Schema used for message serialization. + * + * Schema type used for the message. + */ +export enum SchemaType { + Avro = "Avro", + JSON = "JSON", + None = "None", + Other = "Other", + Protobuf = "Protobuf", +} + +/** + * Service type where this API Collection is hosted in. + * + * Type of api service such as REST, Webhook,... + */ +export enum APIServiceType { + REST = "Rest", + Webhook = "WEBHOOK", +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/chart.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/chart.ts new file mode 100644 index 000000000000..885aa4a61bc5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/chart.ts @@ -0,0 +1,480 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `Chart` presents data visually. Charts can be part of `Dashboards`. + */ +export interface Chart { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + chartType?: ChartType; + /** + * All the dashboards containing this chart. + */ + dashboards?: EntityReference[]; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the dashboard, what it is, and how to use it. + */ + description?: string; + /** + * Display Name that identifies this Chart. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Domain the Chart belongs to. The Chart inherits domain from the dashboard service it + * belongs to. + */ + domain?: EntityReference; + /** + * Followers of this chart. + */ + followers?: EntityReference[]; + /** + * A unique name that identifies a dashboard in the format 'ServiceName.ChartName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies a chart instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this Chart. + */ + name: string; + /** + * Owners of this chart. + */ + owners?: EntityReference[]; + /** + * Link to service where this dashboard is hosted in. + */ + service: EntityReference; + /** + * Service type where this chart is hosted in. + */ + serviceType?: DashboardServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Chart URL suffix from its service. + */ + sourceUrl?: string; + /** + * Tags for this chart. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Latest usage information for this chart. + */ + usageSummary?: UsageDetails; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * This schema defines the type used for describing different types of charts. + */ +export enum ChartType { + Area = "Area", + Bar = "Bar", + BoxPlot = "BoxPlot", + Histogram = "Histogram", + Line = "Line", + Other = "Other", + Pie = "Pie", + Scatter = "Scatter", + Table = "Table", + Text = "Text", +} + +/** + * All the dashboards containing this chart. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Chart belongs to. The Chart inherits domain from the dashboard service it + * belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to service where this dashboard is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Service type where this chart is hosted in. + * + * Type of Dashboard service - Superset, Looker, Redash, Tableau, Metabase, PowerBi, Mode, + * or Lightdash + */ +export enum DashboardServiceType { + CustomDashboard = "CustomDashboard", + DomoDashboard = "DomoDashboard", + Lightdash = "Lightdash", + Looker = "Looker", + Metabase = "Metabase", + MicroStrategy = "MicroStrategy", + Mode = "Mode", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + Redash = "Redash", + Sigma = "Sigma", + Superset = "Superset", + Tableau = "Tableau", +} + +/** + * Latest usage information for this chart. + * + * This schema defines the type for usage details. Daily, weekly, and monthly aggregation of + * usage is computed along with the percentile rank based on the usage for a given day. + */ +export interface UsageDetails { + /** + * Daily usage stats of a data asset on the start date. + */ + dailyStats: UsageStats; + /** + * Date in UTC. + */ + date: Date; + /** + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + */ + monthlyStats?: UsageStats; + /** + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ + weeklyStats?: UsageStats; +} + +/** + * Daily usage stats of a data asset on the start date. + * + * Type used to return usage statistics. + * + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + * + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ +export interface UsageStats { + /** + * Usage count of a data asset on the start date. + */ + count: number; + /** + * Optional daily percentile rank data asset use when relevant. + */ + percentileRank?: number; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/container.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/container.ts new file mode 100644 index 000000000000..170fe2e15eb4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/container.ts @@ -0,0 +1,842 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Container entity. A Container is an abstraction for any + * path(including the top level eg. bucket in S3) storing data in an Object store such as + * S3, GCP, Azure. It maps a tree-like structure, where each Container can have a parent and + * a list of sub-folders, and it can be structured - where it contains structured data, or + * unstructured where no schema for its data is defined. + */ +export interface Container { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * References to child containers residing under this entity. + */ + children?: EntityReference[]; + /** + * References to the container's data model, if data is structured, or null otherwise + */ + dataModel?: ContainerDataModel; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the container instance. + */ + description?: string; + /** + * Display Name that identifies this container. + */ + displayName?: string; + /** + * Domain the Container belongs to. When not set, the Container inherits the domain from the + * storage service it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * File & data formats identified for the container: e.g. dataFormats=[csv, json]. These + * can be present both when the container has a dataModel or not + */ + fileFormats?: FileFormat[]; + /** + * Followers of this container. + */ + followers?: EntityReference[]; + /** + * Full path of the container/file. + */ + fullPath?: string; + /** + * Name that uniquely identifies a container in the format 'ServiceName.ContainerName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies this container instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies the container. + */ + name: string; + /** + * The number of objects/files this container has. + */ + numberOfObjects?: number; + /** + * Owners of this container. + */ + owners?: EntityReference[]; + /** + * Link to the parent container under which this entity sits, if not top level. + */ + parent?: EntityReference; + /** + * Optional prefix path defined for this container + */ + prefix?: string; + /** + * Retention period of the data in the Container. Period is expressed as duration in ISO + * 8601 format in UTC. Example - `P23DT23H`. + */ + retentionPeriod?: string; + /** + * Link to the storage service where this container is hosted in. + */ + service: EntityReference; + /** + * Service type this table is hosted in. + */ + serviceType?: StorageServiceType; + /** + * The total size in KB this container has. + */ + size?: number; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of container. + */ + sourceUrl?: string; + /** + * Tags for this container. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * References to child containers residing under this entity. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Container belongs to. When not set, the Container inherits the domain from the + * storage service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to the parent container under which this entity sits, if not top level. + * + * Link to the storage service where this container is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * References to the container's data model, if data is structured, or null otherwise + * + * This captures information about how the container's data is modeled, if it has a schema. + */ +export interface ContainerDataModel { + /** + * Columns belonging to this container's schema + */ + columns: Column[]; + /** + * Whether the data under this container is partitioned by some property, eg. + * eventTime=yyyy-mm-dd + */ + isPartitioned?: boolean; +} + +/** + * This schema defines the type for a column in a table. + */ +export interface Column { + /** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + */ + arrayDataType?: DataType; + /** + * Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`. + */ + children?: Column[]; + /** + * Column level constraint. + */ + constraint?: Constraint; + /** + * List of Custom Metrics registered for a table. + */ + customMetrics?: CustomMetric[]; + /** + * Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, + * `varchar(20)` has dataType as `varchar` and dataLength as `20`. + */ + dataLength?: number; + /** + * Data type of the column (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + fullyQualifiedName?: string; + /** + * Json schema only if the dataType is JSON else null. + */ + jsonSchema?: string; + name: string; + /** + * Ordinal position of the column. + */ + ordinalPosition?: number; + /** + * The precision of a numeric is the total count of significant digits in the whole number, + * that is, the number of digits to both sides of the decimal point. Precision is applicable + * Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric + * types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + precision?: number; + /** + * Latest Data profile for a Column. + */ + profile?: ColumnProfile; + /** + * The scale of a numeric is the count of decimal digits in the fractional part, to the + * right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non + * Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + scale?: number; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + * + * This enum defines the type of data stored in a column. + * + * Data type of the column (int, date etc.). + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * Column level constraint. + * + * This enum defines the type for column constraint. + */ +export enum Constraint { + NotNull = "NOT_NULL", + Null = "NULL", + PrimaryKey = "PRIMARY_KEY", + Unique = "UNIQUE", +} + +/** + * Custom Metric definition that we will associate with a column. + */ +export interface CustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the Metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Unique identifier of this Custom Metric instance. + */ + id?: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Custom Metric. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Latest Data profile for a Column. + * + * This schema defines the type to capture the table's column profile. + */ +export interface ColumnProfile { + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Number of values that contain distinct values. + */ + distinctCount?: number; + /** + * Proportion of distinct values in a column. + */ + distinctProportion?: number; + /** + * No.of Rows that contain duplicates in a column. + */ + duplicateCount?: number; + /** + * First quartile of a column. + */ + firstQuartile?: number; + /** + * Histogram of a column. + */ + histogram?: any[] | boolean | HistogramClass | number | number | null | string; + /** + * Inter quartile range of a column. + */ + interQuartileRange?: number; + /** + * Maximum value in a column. + */ + max?: number | string; + /** + * Maximum string length in a column. + */ + maxLength?: number; + /** + * Avg value in a column. + */ + mean?: number; + /** + * Median of a column. + */ + median?: number; + /** + * Minimum value in a column. + */ + min?: number | string; + /** + * Minimum string length in a column. + */ + minLength?: number; + /** + * Missing count is calculated by subtracting valuesCount - validCount. + */ + missingCount?: number; + /** + * Missing Percentage is calculated by taking percentage of validCount/valuesCount. + */ + missingPercentage?: number; + /** + * Column Name. + */ + name: string; + /** + * Non parametric skew of a column. + */ + nonParametricSkew?: number; + /** + * No.of null values in a column. + */ + nullCount?: number; + /** + * No.of null value proportion in columns. + */ + nullProportion?: number; + /** + * Standard deviation of a column. + */ + stddev?: number; + /** + * Median value in a column. + */ + sum?: number; + /** + * First quartile of a column. + */ + thirdQuartile?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; + /** + * No. of unique values in the column. + */ + uniqueCount?: number; + /** + * Proportion of number of unique values in a column. + */ + uniqueProportion?: number; + /** + * Total count of valid values in this column. + */ + validCount?: number; + /** + * Total count of the values in this column. + */ + valuesCount?: number; + /** + * Percentage of values in this column with respect to row count. + */ + valuesPercentage?: number; + /** + * Variance of a column. + */ + variance?: number; +} + +/** + * Profiling results of a Custom Metric. + */ +export interface CustomMetricProfile { + /** + * Custom metric name. + */ + name?: string; + /** + * Profiling results for the metric. + */ + value?: number; +} + +export interface HistogramClass { + /** + * Boundaries of Histogram. + */ + boundaries?: any[]; + /** + * Frequencies of Histogram. + */ + frequencies?: any[]; +} + +/** + * This schema defines the file formats for the object/files within a container. + */ +export enum FileFormat { + Avro = "avro", + CSV = "csv", + Gz = "gz", + JSON = "json", + Parquet = "parquet", + Tsv = "tsv", + Zip = "zip", + Zstd = "zstd", +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Service type this table is hosted in. + * + * Type of storage service such as S3, GFS, AZURE... + */ +export enum StorageServiceType { + Adls = "ADLS", + CustomStorage = "CustomStorage", + Gcs = "GCS", + S3 = "S3", +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboard.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboard.ts new file mode 100644 index 000000000000..98957c42f4f5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboard.ts @@ -0,0 +1,486 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Dashboard entity. Dashboards are computed from data and visually + * present data, metrics, and KPIs. They are typically updated in real-time and allow + * interactive data exploration. + */ +export interface Dashboard { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * All the charts included in this Dashboard. + */ + charts?: EntityReference[]; + dashboardType?: DashboardType; + /** + * List of data models used by this dashboard or the charts contained on it. + */ + dataModels?: EntityReference[]; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the dashboard, what it is, and how to use it. + */ + description?: string; + /** + * Display Name that identifies this Dashboard. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Domain the Dashboard belongs to. When not set, the Dashboard inherits the domain from the + * dashboard service it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Followers of this dashboard. + */ + followers?: EntityReference[]; + /** + * A unique name that identifies a dashboard in the format 'ServiceName.DashboardName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies a dashboard instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this dashboard. + */ + name: string; + /** + * Owners of this dashboard. + */ + owners?: EntityReference[]; + /** + * Name of the project / workspace / collection in which the dashboard is contained + */ + project?: string; + /** + * Link to service where this dashboard is hosted in. + */ + service: EntityReference; + /** + * Service type where this dashboard is hosted in. + */ + serviceType?: DashboardServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Dashboard URL suffix from its service. + */ + sourceUrl?: string; + /** + * Tags for this dashboard. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Latest usage information for this dashboard. + */ + usageSummary?: UsageDetails; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * All the charts included in this Dashboard. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Dashboard belongs to. When not set, the Dashboard inherits the domain from the + * dashboard service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to service where this dashboard is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type used for describing different types of dashboards. + */ +export enum DashboardType { + Dashboard = "Dashboard", + Report = "Report", +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Service type where this dashboard is hosted in. + * + * Type of Dashboard service - Superset, Looker, Redash, Tableau, Metabase, PowerBi, Mode, + * or Lightdash + */ +export enum DashboardServiceType { + CustomDashboard = "CustomDashboard", + DomoDashboard = "DomoDashboard", + Lightdash = "Lightdash", + Looker = "Looker", + Metabase = "Metabase", + MicroStrategy = "MicroStrategy", + Mode = "Mode", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + Redash = "Redash", + Sigma = "Sigma", + Superset = "Superset", + Tableau = "Tableau", +} + +/** + * Latest usage information for this dashboard. + * + * This schema defines the type for usage details. Daily, weekly, and monthly aggregation of + * usage is computed along with the percentile rank based on the usage for a given day. + */ +export interface UsageDetails { + /** + * Daily usage stats of a data asset on the start date. + */ + dailyStats: UsageStats; + /** + * Date in UTC. + */ + date: Date; + /** + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + */ + monthlyStats?: UsageStats; + /** + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ + weeklyStats?: UsageStats; +} + +/** + * Daily usage stats of a data asset on the start date. + * + * Type used to return usage statistics. + * + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + * + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ +export interface UsageStats { + /** + * Usage count of a data asset on the start date. + */ + count: number; + /** + * Optional daily percentile rank data asset use when relevant. + */ + percentileRank?: number; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboardDataModel.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboardDataModel.ts new file mode 100644 index 000000000000..769f0f53a9ed --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboardDataModel.ts @@ -0,0 +1,808 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Dashboard Data Model entity definition. Data models are the schemas used to build + * dashboards, charts, or other data assets. + */ +export interface DashboardDataModel { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Columns from the data model. + */ + columns: Column[]; + dataModelType: DataModelType; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a data model. + */ + description?: string; + /** + * Display Name that identifies this data model. It could be title or label from the source. + */ + displayName?: string; + /** + * Domain the Dashboard Data Model belongs to. When not set, the Dashboard model inherits + * the domain from the dashboard service it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Followers of this dashboard. + */ + followers?: EntityReference[]; + /** + * Fully qualified name of a data model in the form + * `serviceName.dashboardName.datamodel.datamodelName`. + */ + fullyQualifiedName?: string; + /** + * Link to this data model entity. + */ + href?: string; + /** + * Unique identifier of this data model instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name of a data model. Expected to be unique within a Dashboard. + */ + name: string; + /** + * Owners of this data model. + */ + owners?: EntityReference[]; + /** + * Name of the project / workspace / collection in which the dataModel is contained + */ + project?: string; + /** + * Link to service where this data model is hosted in. + */ + service?: EntityReference; + /** + * Service type where this data model is hosted in. + */ + serviceType?: DashboardServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * In case the Data Model is based on a SQL query. + */ + sql?: string; + /** + * Tags for this data model. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * This schema defines the type for a column in a table. + */ +export interface Column { + /** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + */ + arrayDataType?: DataType; + /** + * Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`. + */ + children?: Column[]; + /** + * Column level constraint. + */ + constraint?: Constraint; + /** + * List of Custom Metrics registered for a table. + */ + customMetrics?: CustomMetric[]; + /** + * Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, + * `varchar(20)` has dataType as `varchar` and dataLength as `20`. + */ + dataLength?: number; + /** + * Data type of the column (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + fullyQualifiedName?: string; + /** + * Json schema only if the dataType is JSON else null. + */ + jsonSchema?: string; + name: string; + /** + * Ordinal position of the column. + */ + ordinalPosition?: number; + /** + * The precision of a numeric is the total count of significant digits in the whole number, + * that is, the number of digits to both sides of the decimal point. Precision is applicable + * Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric + * types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + precision?: number; + /** + * Latest Data profile for a Column. + */ + profile?: ColumnProfile; + /** + * The scale of a numeric is the count of decimal digits in the fractional part, to the + * right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non + * Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + scale?: number; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + * + * This enum defines the type of data stored in a column. + * + * Data type of the column (int, date etc.). + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * Column level constraint. + * + * This enum defines the type for column constraint. + */ +export enum Constraint { + NotNull = "NOT_NULL", + Null = "NULL", + PrimaryKey = "PRIMARY_KEY", + Unique = "UNIQUE", +} + +/** + * Custom Metric definition that we will associate with a column. + */ +export interface CustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the Metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Unique identifier of this Custom Metric instance. + */ + id?: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Custom Metric. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Owners of this Custom Metric. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Dashboard Data Model belongs to. When not set, the Dashboard model inherits + * the domain from the dashboard service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to service where this data model is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Latest Data profile for a Column. + * + * This schema defines the type to capture the table's column profile. + */ +export interface ColumnProfile { + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Number of values that contain distinct values. + */ + distinctCount?: number; + /** + * Proportion of distinct values in a column. + */ + distinctProportion?: number; + /** + * No.of Rows that contain duplicates in a column. + */ + duplicateCount?: number; + /** + * First quartile of a column. + */ + firstQuartile?: number; + /** + * Histogram of a column. + */ + histogram?: any[] | boolean | HistogramClass | number | number | null | string; + /** + * Inter quartile range of a column. + */ + interQuartileRange?: number; + /** + * Maximum value in a column. + */ + max?: number | string; + /** + * Maximum string length in a column. + */ + maxLength?: number; + /** + * Avg value in a column. + */ + mean?: number; + /** + * Median of a column. + */ + median?: number; + /** + * Minimum value in a column. + */ + min?: number | string; + /** + * Minimum string length in a column. + */ + minLength?: number; + /** + * Missing count is calculated by subtracting valuesCount - validCount. + */ + missingCount?: number; + /** + * Missing Percentage is calculated by taking percentage of validCount/valuesCount. + */ + missingPercentage?: number; + /** + * Column Name. + */ + name: string; + /** + * Non parametric skew of a column. + */ + nonParametricSkew?: number; + /** + * No.of null values in a column. + */ + nullCount?: number; + /** + * No.of null value proportion in columns. + */ + nullProportion?: number; + /** + * Standard deviation of a column. + */ + stddev?: number; + /** + * Median value in a column. + */ + sum?: number; + /** + * First quartile of a column. + */ + thirdQuartile?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; + /** + * No. of unique values in the column. + */ + uniqueCount?: number; + /** + * Proportion of number of unique values in a column. + */ + uniqueProportion?: number; + /** + * Total count of valid values in this column. + */ + validCount?: number; + /** + * Total count of the values in this column. + */ + valuesCount?: number; + /** + * Percentage of values in this column with respect to row count. + */ + valuesPercentage?: number; + /** + * Variance of a column. + */ + variance?: number; +} + +/** + * Profiling results of a Custom Metric. + */ +export interface CustomMetricProfile { + /** + * Custom metric name. + */ + name?: string; + /** + * Profiling results for the metric. + */ + value?: number; +} + +export interface HistogramClass { + /** + * Boundaries of Histogram. + */ + boundaries?: any[]; + /** + * Frequencies of Histogram. + */ + frequencies?: any[]; +} + +/** + * This schema defines the type used for describing different types of data models. + */ +export enum DataModelType { + LookMlExplore = "LookMlExplore", + LookMlView = "LookMlView", + MetabaseDataModel = "MetabaseDataModel", + PowerBIDataModel = "PowerBIDataModel", + QlikDataModel = "QlikDataModel", + QuickSightDataModel = "QuickSightDataModel", + SigmaDataModel = "SigmaDataModel", + SupersetDataModel = "SupersetDataModel", + TableauDataModel = "TableauDataModel", + TableauEmbeddedDatasource = "TableauEmbeddedDatasource", + TableauPublishedDatasource = "TableauPublishedDatasource", +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Service type where this data model is hosted in. + * + * Type of Dashboard service - Superset, Looker, Redash, Tableau, Metabase, PowerBi, Mode, + * or Lightdash + */ +export enum DashboardServiceType { + CustomDashboard = "CustomDashboard", + DomoDashboard = "DomoDashboard", + Lightdash = "Lightdash", + Looker = "Looker", + Metabase = "Metabase", + MicroStrategy = "MicroStrategy", + Mode = "Mode", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + Redash = "Redash", + Sigma = "Sigma", + Superset = "Superset", + Tableau = "Tableau", +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/database.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/database.ts new file mode 100644 index 000000000000..4fe708fc3046 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/database.ts @@ -0,0 +1,623 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Database entity. A database also referred to as Database Catalog + * is a collection of schemas. + */ +export interface Database { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * This schema defines the type for Database profile config. + */ + databaseProfilerConfig?: DatabaseProfilerConfig; + /** + * References to schemas in the database. + */ + databaseSchemas?: EntityReference[]; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * Some databases don't support a database/catalog in the hierarchy and use default + * database. For example, `MySql`. For such databases, set this flag to true to indicate + * that this is a default database. + */ + default?: boolean; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the database instance. + */ + description?: string; + /** + * Display Name that identifies this database. + */ + displayName?: string; + /** + * Domain the Database belongs to. When not set, the Database inherits the domain from the + * database service it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Name that uniquely identifies a database in the format 'ServiceName.DatabaseName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies this database instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Reference to the Location that contains this database. + */ + location?: EntityReference; + /** + * Name that identifies the database. + */ + name: string; + /** + * Owners of this database. + */ + owners?: EntityReference[]; + /** + * Retention period of the data in the database. Period is expressed as duration in ISO 8601 + * format in UTC. Example - `P23DT23H`. + */ + retentionPeriod?: string; + /** + * Link to the database cluster/service where this database is hosted in. + */ + service: EntityReference; + /** + * Service type where this database is hosted in. + */ + serviceType?: DatabaseServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of database. + */ + sourceUrl?: string; + /** + * Tags for this Database. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Latest usage information for this database. + */ + usageSummary?: UsageDetails; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * References to schemas in the database. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Database belongs to. When not set, the Database inherits the domain from the + * database service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Reference to the Location that contains this database. + * + * Link to the database cluster/service where this database is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for Database profile config. + */ +export interface DatabaseProfilerConfig { + /** + * Percentage of data or no. of rows we want to execute the profiler and tests on + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * Number of row of sample data to be generated + */ + sampleDataCount?: number; + sampleDataStorageConfig?: SampleDataStorageConfig; + samplingMethodType?: SamplingMethodType; + [property: string]: any; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Service type where this database is hosted in. + * + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ +export enum DatabaseServiceType { + Athena = "Athena", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDatabase = "CustomDatabase", + Databricks = "Databricks", + Datalake = "Datalake", + Db2 = "Db2", + Dbt = "Dbt", + DeltaLake = "DeltaLake", + DomoDatabase = "DomoDatabase", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + Exasol = "Exasol", + Glue = "Glue", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + MariaDB = "MariaDB", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + Presto = "Presto", + QueryLog = "QueryLog", + Redshift = "Redshift", + SAS = "SAS", + SQLite = "SQLite", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + SingleStore = "SingleStore", + Snowflake = "Snowflake", + Synapse = "Synapse", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + Vertica = "Vertica", +} + +/** + * Latest usage information for this database. + * + * This schema defines the type for usage details. Daily, weekly, and monthly aggregation of + * usage is computed along with the percentile rank based on the usage for a given day. + */ +export interface UsageDetails { + /** + * Daily usage stats of a data asset on the start date. + */ + dailyStats: UsageStats; + /** + * Date in UTC. + */ + date: Date; + /** + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + */ + monthlyStats?: UsageStats; + /** + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ + weeklyStats?: UsageStats; +} + +/** + * Daily usage stats of a data asset on the start date. + * + * Type used to return usage statistics. + * + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + * + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ +export interface UsageStats { + /** + * Usage count of a data asset on the start date. + */ + count: number; + /** + * Optional daily percentile rank data asset use when relevant. + */ + percentileRank?: number; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/databaseSchema.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/databaseSchema.ts new file mode 100644 index 000000000000..327af264fff8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/databaseSchema.ts @@ -0,0 +1,619 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Database Schema entity. A `Database Schema` is collection of + * tables, views, stored procedures, and other database objects. + */ +export interface DatabaseSchema { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Reference to Database that contains this table. + */ + database: EntityReference; + /** + * This schema defines the type for Schema profile config. + */ + databaseSchemaProfilerConfig?: DatabaseSchemaProfilerConfig; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the schema instance. + */ + description?: string; + /** + * Display Name that identifies this schema. + */ + displayName?: string; + /** + * Domain the Database Schema belongs to. When not set, the Schema inherits the domain from + * the database it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Name that uniquely identifies a schema in the format + * 'ServiceName.DatabaseName.SchemaName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies this schema instance. + */ + id?: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies the schema. + */ + name: string; + /** + * Owner of this schema. + */ + owners?: EntityReference[]; + /** + * Retention period of the data in the database schema. Period is expressed as duration in + * ISO 8601 format in UTC. Example - `P23DT23H`. When not set, the retention period is + * inherited from the parent database, if it exists. + */ + retentionPeriod?: string; + /** + * Link to the database cluster/service where this schema is hosted in. + */ + service: EntityReference; + /** + * Service type where this schema is hosted in. + */ + serviceType?: DatabaseServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of database schema. + */ + sourceUrl?: string; + /** + * References to tables in the schema. + */ + tables?: EntityReference[]; + /** + * Tags for this Database Schema Service. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Latest usage information for this database. + */ + usageSummary?: UsageDetails; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Reference to Database that contains this table. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Database Schema belongs to. When not set, the Schema inherits the domain from + * the database it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to the database cluster/service where this schema is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for Schema profile config. + */ +export interface DatabaseSchemaProfilerConfig { + /** + * Percentage of data or no. of rows we want to execute the profiler and tests on + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * Number of row of sample data to be generated + */ + sampleDataCount?: number; + sampleDataStorageConfig?: SampleDataStorageConfig; + samplingMethodType?: SamplingMethodType; + [property: string]: any; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Service type where this schema is hosted in. + * + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ +export enum DatabaseServiceType { + Athena = "Athena", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDatabase = "CustomDatabase", + Databricks = "Databricks", + Datalake = "Datalake", + Db2 = "Db2", + Dbt = "Dbt", + DeltaLake = "DeltaLake", + DomoDatabase = "DomoDatabase", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + Exasol = "Exasol", + Glue = "Glue", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + MariaDB = "MariaDB", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + Presto = "Presto", + QueryLog = "QueryLog", + Redshift = "Redshift", + SAS = "SAS", + SQLite = "SQLite", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + SingleStore = "SingleStore", + Snowflake = "Snowflake", + Synapse = "Synapse", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + Vertica = "Vertica", +} + +/** + * Latest usage information for this database. + * + * This schema defines the type for usage details. Daily, weekly, and monthly aggregation of + * usage is computed along with the percentile rank based on the usage for a given day. + */ +export interface UsageDetails { + /** + * Daily usage stats of a data asset on the start date. + */ + dailyStats: UsageStats; + /** + * Date in UTC. + */ + date: Date; + /** + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + */ + monthlyStats?: UsageStats; + /** + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ + weeklyStats?: UsageStats; +} + +/** + * Daily usage stats of a data asset on the start date. + * + * Type used to return usage statistics. + * + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + * + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ +export interface UsageStats { + /** + * Usage count of a data asset on the start date. + */ + count: number; + /** + * Optional daily percentile rank data asset use when relevant. + */ + percentileRank?: number; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossary.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossary.ts new file mode 100644 index 000000000000..daaf5e795de7 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossary.ts @@ -0,0 +1,332 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Glossary entity. A Glossary is collection of hierarchical + * GlossaryTerms. + */ +export interface Glossary { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the glossary. + */ + description: string; + /** + * System glossary can't be deleted. Use this flag to disable them. + */ + disabled?: boolean; + /** + * Display Name that identifies this glossary. + */ + displayName?: string; + /** + * Domain the Glossary belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * FullyQualifiedName same as name. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of a glossary instance. + */ + id: string; + /** + * Glossary terms that are direct children in this glossary are mutually exclusive. When + * mutually exclusive is `true` only one term can be used to label an entity. When mutually + * exclusive is `false`, multiple terms from this group can be used to label an entity. + */ + mutuallyExclusive?: boolean; + /** + * Name of the glossary + */ + name: string; + /** + * Owners of this glossary. + */ + owners?: EntityReference[]; + provider?: ProviderType; + /** + * User references of the reviewers for this glossary. + */ + reviewers?: EntityReference[]; + /** + * Tags for this glossary. + */ + tags?: TagLabel[]; + /** + * Total number of terms in the glossary. This includes all the children in the hierarchy. + */ + termCount?: number; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Count of how many times terms from this glossary are used. + */ + usageCount?: number; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Glossary belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossaryTerm.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossaryTerm.ts new file mode 100644 index 000000000000..c55dc9e15d4f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/glossaryTerm.ts @@ -0,0 +1,396 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines te Glossary term entities. + */ +export interface GlossaryTerm { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Other glossary terms that are children of this glossary term. + */ + children?: EntityReference[]; + /** + * Count of immediate children glossary terms. + */ + childrenCount?: number; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the glossary term. + */ + description: string; + /** + * System glossary can't be deleted. Use this flag to disable them. + */ + disabled?: boolean; + /** + * Display Name that identifies this glossary. + */ + displayName?: string; + /** + * Domain the Glossary Term belongs to. When not set, the Glossary TErm inherits the domain + * from the Glossary it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * A unique name that identifies a glossary term. It captures name hierarchy of glossary of + * terms in the form of `glossaryName.parentTerm.childTerm`. + */ + fullyQualifiedName?: string; + /** + * Glossary that this term belongs to. + */ + glossary: EntityReference; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of a glossary term instance. + */ + id: string; + /** + * Glossary terms that are children of this term are mutually exclusive. When mutually + * exclusive is `true` only one term can be used to label an entity from this group. When + * mutually exclusive is `false`, multiple terms from this group can be used to label an + * entity. + */ + mutuallyExclusive?: boolean; + /** + * Preferred name for the glossary term. + */ + name: string; + /** + * Owners of this glossary term. + */ + owners?: EntityReference[]; + /** + * Parent glossary term that this term is child of. When `null` this term is the root term + * of the glossary. + */ + parent?: EntityReference; + provider?: ProviderType; + /** + * Link to a reference from an external glossary. + */ + references?: TermReference[]; + /** + * Other glossary terms that are related to this glossary term. + */ + relatedTerms?: EntityReference[]; + /** + * User names of the reviewers for this glossary. + */ + reviewers?: EntityReference[]; + /** + * Status of the glossary term. + */ + status?: Status; + style?: Style; + /** + * Alternate names that are synonyms or near-synonyms for the glossary term. + */ + synonyms?: string[]; + /** + * Tags associated with this glossary term. These tags captures relationship of a glossary + * term with a tag automatically. As an example a glossary term 'User.PhoneNumber' might + * have an associated tag 'PII.Sensitive'. When 'User.Address' is used to label a column in + * a table, 'PII.Sensitive' label is also applied automatically due to Associated tag + * relationship. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Count of how many times this and it's children glossary terms are used as labels. + */ + usageCount?: number; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Other glossary terms that are children of this glossary term. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Glossary Term belongs to. When not set, the Glossary TErm inherits the domain + * from the Glossary it belongs to. + * + * Glossary that this term belongs to. + * + * Parent glossary term that this term is child of. When `null` this term is the root term + * of the glossary. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +export interface TermReference { + /** + * Name that identifies the source of an external glossary term. Example `HealthCare.gov`. + */ + endpoint?: string; + /** + * Name that identifies the source of an external glossary term. Example `HealthCare.gov`. + */ + name?: string; +} + +/** + * Status of the glossary term. + */ +export enum Status { + Approved = "Approved", + Deprecated = "Deprecated", + Draft = "Draft", + InReview = "In Review", + Rejected = "Rejected", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/metric.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/metric.ts new file mode 100644 index 000000000000..d8cdda8e65af --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/metric.ts @@ -0,0 +1,418 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Metrics entity. `Metrics` are measurements computed from data + * such as `Monthly Active Users`. Some of the metrics that measures used to determine + * performance against an objective are called KPIs or Key Performance Indicators, such as + * `User Retention`. + */ +export interface Metric { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of metrics instance, what it is, and how to use it. + */ + description?: string; + /** + * Display Name that identifies this metric. + */ + displayName?: string; + /** + * Domain the Glossary belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Followers of this API Collection. + */ + followers?: EntityReference[]; + /** + * A unique name that identifies a metric in the format 'ServiceName.MetricName'. + */ + fullyQualifiedName?: string; + /** + * Metric's granularity. + */ + granularity?: MetricGranularity; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies this Metric instance. + */ + id: string; + /** + * Expression used to compute the metric. + */ + metricExpression?: MetricExpression; + /** + * Type of the metric. + */ + metricType?: MetricType; + /** + * Name that identifies this Metric instance uniquely. + */ + name: string; + /** + * Owners of this metrics. + */ + owners?: EntityReference[]; + /** + * Related Metrics. + */ + relatedMetrics?: EntityReference[]; + /** + * Tags for this chart. + */ + tags?: TagLabel[]; + /** + * Unit of measurement for the metric. + */ + unitOfMeasurement?: UnitOfMeasurement; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Glossary belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Metric's granularity. + * + * This schema defines the type of Metric's granularity. + */ +export enum MetricGranularity { + Day = "DAY", + Hour = "HOUR", + Minute = "MINUTE", + Month = "MONTH", + Quarter = "QUARTER", + Second = "SECOND", + Week = "WEEK", + Year = "YEAR", +} + +/** + * Expression used to compute the metric. + */ +export interface MetricExpression { + /** + * This schema defines the type of the language used for Metric Formula's Code. + */ + code?: string; + /** + * This schema defines the type of the language used for Metric Expression Code. + */ + language?: Language; +} + +/** + * This schema defines the type of the language used for Metric Expression Code. + */ +export enum Language { + External = "External", + Java = "Java", + JavaScript = "JavaScript", + Python = "Python", + SQL = "SQL", +} + +/** + * Type of the metric. + * + * This schema defines the type of Metric. + */ +export enum MetricType { + Average = "AVERAGE", + Count = "COUNT", + Max = "MAX", + Median = "MEDIAN", + Min = "MIN", + Mode = "MODE", + Other = "OTHER", + Percentage = "PERCENTAGE", + Ratio = "RATIO", + StandardDeviation = "STANDARD_DEVIATION", + Sum = "SUM", + Variance = "VARIANCE", +} + +/** + * Unit of measurement for the metric. + * + * This schema defines the type of Metric's unit of measurement. + */ +export enum UnitOfMeasurement { + Count = "COUNT", + Dollars = "DOLLARS", + Events = "EVENTS", + Percentage = "PERCENTAGE", + Requests = "REQUESTS", + Size = "SIZE", + Timestamp = "TIMESTAMP", + Transactions = "TRANSACTIONS", +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/mlmodel.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/mlmodel.ts new file mode 100644 index 000000000000..3a71ae290357 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/mlmodel.ts @@ -0,0 +1,594 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Model entity. `Machine Learning Models` are algorithms trained on + * data to find patterns or make predictions. + */ +export interface Mlmodel { + /** + * Algorithm used to train the ML Model. + */ + algorithm: string; + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Performance Dashboard URL to track metric evolution. + */ + dashboard?: EntityReference; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the ML Model, what it is, and how to use it. + */ + description?: string; + /** + * Display Name that identifies this ML Model. + */ + displayName?: string; + /** + * Domain the MLModel belongs to. When not set, the MLModel inherits the domain from the ML + * Model Service it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Followers of this ML Model. + */ + followers?: EntityReference[]; + /** + * A unique name that identifies an ML Model. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of an ML Model instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Features used to train the ML Model. + */ + mlFeatures?: MlFeature[]; + /** + * Hyper Parameters used to train the ML Model. + */ + mlHyperParameters?: MlHyperParameter[]; + /** + * Location containing the ML Model. It can be a storage layer and/or a container repository. + */ + mlStore?: MlStore; + /** + * Name that identifies this ML Model. + */ + name: string; + /** + * Owners of this ML Model. + */ + owners?: EntityReference[]; + /** + * Endpoint that makes the ML Model available, e.g,. a REST API serving the data or + * computing predictions. + */ + server?: string; + /** + * Link to service where this pipeline is hosted in. + */ + service: EntityReference; + /** + * Service type where this pipeline is hosted in. + */ + serviceType?: MlModelServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of mlModel. + */ + sourceUrl?: string; + /** + * Tags for this ML Model. + */ + tags?: TagLabel[]; + /** + * For supervised ML Models, the value to estimate. + */ + target?: string; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Latest usage information for this ML Model. + */ + usageSummary?: UsageDetails; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Performance Dashboard URL to track metric evolution. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the MLModel belongs to. When not set, the MLModel inherits the domain from the ML + * Model Service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Description of the Data Source (e.g., a Table). + * + * Link to service where this pipeline is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * This schema defines the type for an ML Feature used in an ML Model. + */ +export interface MlFeature { + /** + * Data type of the column (numerical vs. categorical). + */ + dataType?: FeatureType; + /** + * Description of the ML Feature. + */ + description?: string; + /** + * Description of the algorithm used to compute the feature, e.g., PCA, bucketing... + */ + featureAlgorithm?: string; + /** + * Columns used to create the ML Feature. + */ + featureSources?: FeatureSource[]; + fullyQualifiedName?: string; + name?: string; + /** + * Tags associated with the feature. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the column (numerical vs. categorical). + * + * This enum defines the type of data stored in a ML Feature. + */ +export enum FeatureType { + Categorical = "categorical", + Numerical = "numerical", +} + +/** + * This schema defines the sources of a ML Feature. + */ +export interface FeatureSource { + /** + * Description of the Data Source (e.g., a Table). + */ + dataSource?: EntityReference; + /** + * Data type of the source (int, date etc.). + */ + dataType?: FeatureSourceDataType; + /** + * Description of the feature source. + */ + description?: string; + fullyQualifiedName?: string; + name?: string; + /** + * Tags associated with the feature source. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the source (int, date etc.). + * + * This enum defines the type of data of a ML Feature source. + */ +export enum FeatureSourceDataType { + Array = "array", + Boolean = "boolean", + Date = "date", + Integer = "integer", + Number = "number", + Object = "object", + String = "string", + Timestamp = "timestamp", +} + +/** + * This schema defines the type for an ML HyperParameter used in an ML Model. + */ +export interface MlHyperParameter { + /** + * Description of the Hyper Parameter. + */ + description?: string; + /** + * Hyper parameter name. + */ + name?: string; + /** + * Hyper parameter value. + */ + value?: string; +} + +/** + * Location containing the ML Model. It can be a storage layer and/or a container repository. + */ +export interface MlStore { + /** + * Container Repository with the ML Model image. + */ + imageRepository?: string; + /** + * Storage Layer containing the ML Model data. + */ + storage?: string; +} + +/** + * Service type where this pipeline is hosted in. + * + * Type of MlModel service + */ +export enum MlModelServiceType { + CustomMlModel = "CustomMlModel", + Mlflow = "Mlflow", + SageMaker = "SageMaker", + Sklearn = "Sklearn", + VertexAI = "VertexAI", +} + +/** + * Latest usage information for this ML Model. + * + * This schema defines the type for usage details. Daily, weekly, and monthly aggregation of + * usage is computed along with the percentile rank based on the usage for a given day. + */ +export interface UsageDetails { + /** + * Daily usage stats of a data asset on the start date. + */ + dailyStats: UsageStats; + /** + * Date in UTC. + */ + date: Date; + /** + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + */ + monthlyStats?: UsageStats; + /** + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ + weeklyStats?: UsageStats; +} + +/** + * Daily usage stats of a data asset on the start date. + * + * Type used to return usage statistics. + * + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + * + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ +export interface UsageStats { + /** + * Usage count of a data asset on the start date. + */ + count: number; + /** + * Optional daily percentile rank data asset use when relevant. + */ + percentileRank?: number; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/pipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/pipeline.ts new file mode 100644 index 000000000000..a45074651dc4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/pipeline.ts @@ -0,0 +1,552 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Pipeline entity. A pipeline enables the flow of data from source + * to destination through a series of processing steps. ETL is a type of pipeline where the + * series of steps Extract, Transform and Load the data. + */ +export interface Pipeline { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Concurrency of the Pipeline. + */ + concurrency?: number; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of this Pipeline. + */ + description?: string; + /** + * Display Name that identifies this Pipeline. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Domain the Pipeline belongs to. When not set, the pipeline inherits the domain from the + * Pipeline service it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Followers of this Pipeline. + */ + followers?: EntityReference[]; + /** + * A unique name that identifies a pipeline in the format 'ServiceName.PipelineName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies a pipeline instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies this pipeline instance uniquely. + */ + name: string; + /** + * Owners of this pipeline. + */ + owners?: EntityReference[]; + /** + * Pipeline Code Location. + */ + pipelineLocation?: string; + /** + * Latest Pipeline Status. + */ + pipelineStatus?: PipelineStatus; + /** + * Scheduler Interval for the pipeline in cron format. + */ + scheduleInterval?: string; + /** + * Link to service where this pipeline is hosted in. + */ + service: EntityReference; + /** + * Service type where this pipeline is hosted in. + */ + serviceType?: PipelineServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Pipeline URL to visit/manage. This URL points to respective pipeline service UI. + */ + sourceUrl?: string; + /** + * Start date of the workflow. + */ + startDate?: Date; + /** + * Tags for this Pipeline. + */ + tags?: TagLabel[]; + /** + * All the tasks that are part of pipeline. + */ + tasks?: Task[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Pipeline belongs to. When not set, the pipeline inherits the domain from the + * Pipeline service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to service where this pipeline is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Latest Pipeline Status. + * + * Series of pipeline executions, its status and task status. + */ +export interface PipelineStatus { + /** + * Status at a specific execution date. + */ + executionStatus: StatusType; + /** + * Series of task executions and its status. + */ + taskStatus?: TaskStatus[]; + /** + * Timestamp where the job was executed. + */ + timestamp: number; +} + +/** + * Status at a specific execution date. + * + * Enum defining the possible Status. + */ +export enum StatusType { + Failed = "Failed", + Pending = "Pending", + Skipped = "Skipped", + Successful = "Successful", +} + +/** + * This schema defines a time series of the status of a Pipeline or Task. + */ +export interface TaskStatus { + /** + * Task end time + */ + endTime?: number; + /** + * Status at a specific execution date. + */ + executionStatus: StatusType; + /** + * Task end time + */ + logLink?: string; + /** + * Name of the Task. + */ + name: string; + /** + * Task start time + */ + startTime?: number; +} + +/** + * Service type where this pipeline is hosted in. + * + * Type of pipeline service - Airflow or Prefect. + */ +export enum PipelineServiceType { + Airbyte = "Airbyte", + Airflow = "Airflow", + CustomPipeline = "CustomPipeline", + DBTCloud = "DBTCloud", + Dagster = "Dagster", + DataFactory = "DataFactory", + DatabricksPipeline = "DatabricksPipeline", + DomoPipeline = "DomoPipeline", + Fivetran = "Fivetran", + Flink = "Flink", + GluePipeline = "GluePipeline", + KafkaConnect = "KafkaConnect", + Matillion = "Matillion", + Nifi = "Nifi", + OpenLineage = "OpenLineage", + Spark = "Spark", + Spline = "Spline", + Stitch = "Stitch", +} + +export interface Task { + /** + * Description of this Task. + */ + description?: string; + /** + * Display Name that identifies this Task. It could be title or label from the pipeline + * services. + */ + displayName?: string; + /** + * All the tasks that are downstream of this task. + */ + downstreamTasks?: string[]; + /** + * end date for the task. + */ + endDate?: string; + /** + * A unique name that identifies a pipeline in the format + * 'ServiceName.PipelineName.TaskName'. + */ + fullyQualifiedName?: string; + /** + * Name that identifies this task instance uniquely. + */ + name: string; + /** + * Owners of this task. + */ + owners?: EntityReference[]; + /** + * Task URL to visit/manage. This URL points to respective pipeline service UI. + */ + sourceUrl?: string; + /** + * start date for the task. + */ + startDate?: string; + /** + * Tags for this task. + */ + tags?: TagLabel[]; + /** + * SQL used in the task. Can be used to determine the lineage. + */ + taskSQL?: string; + /** + * Type of the Task. Usually refers to the class it implements. + */ + taskType?: string; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/query.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/query.ts new file mode 100644 index 000000000000..ed68269bec51 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/query.ts @@ -0,0 +1,344 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type to capture any data asset's queries. + */ +export interface Query { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Checksum to avoid registering duplicate queries. + */ + checksum?: string; + /** + * Description of a query. + */ + description?: string; + /** + * Display Name that identifies this Query. It could be title or label. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * How long did the query took to run in milliseconds. + */ + duration?: number; + /** + * Flag to check if query is to be excluded while processing usage + */ + exclude_usage?: boolean; + /** + * Followers of this Query. + */ + followers?: EntityReference[]; + /** + * Fully qualified name of a query. + */ + fullyQualifiedName?: string; + /** + * Link to this Query resource. + */ + href?: string; + /** + * Unique identifier of the query. + */ + id: string; + /** + * Name of an entity to which the query belongs to + */ + name: string; + /** + * Owners of this Query. + */ + owners?: EntityReference[]; + /** + * Flag if this query has already been successfully processed for lineage + */ + processedLineage?: boolean; + /** + * SQL Query definition. + */ + query: string; + /** + * SQL query type + */ + query_type?: string; + /** + * Date on which the query ran. + */ + queryDate?: number; + /** + * Entities that are using this query + */ + queryUsedIn?: EntityReference[]; + /** + * Link to the service this query belongs to. + */ + service: EntityReference; + /** + * Tags for this SQL query. + */ + tags?: TagLabel[]; + /** + * Entity that triggered the query. E.g., a Stored Procedure or a Pipeline Task. + */ + triggeredBy?: EntityReference; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the query. + */ + updatedBy?: string; + /** + * List of users who ran the query but does not exist in OpenMetadata. + */ + usedBy?: string[]; + /** + * List of users who ran this query. + */ + users?: EntityReference[]; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Followers of this Query. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Link to the service this query belongs to. + * + * Entity that triggered the query. E.g., a Stored Procedure or a Pipeline Task. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/report.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/report.ts new file mode 100644 index 000000000000..4353c57b234b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/report.ts @@ -0,0 +1,258 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Report entity. `Reports` are static information computed from + * data periodically that includes data in text, table, and visual form. + */ +export interface Report { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of this report instance. + */ + description?: string; + /** + * Display Name that identifies this report. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * A unique name that identifies a report in the format 'ServiceName.ReportName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this report. + */ + href?: string; + /** + * Unique identifier that identifies this report. + */ + id: string; + /** + * Name that identifies this report instance uniquely. + */ + name: string; + /** + * Owners of this Report. + */ + owners?: EntityReference[]; + /** + * Link to service where this report is hosted in. + */ + service: EntityReference; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Latest usage information for this database. + */ + usageSummary?: UsageDetails; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this Report. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Link to service where this report is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Latest usage information for this database. + * + * This schema defines the type for usage details. Daily, weekly, and monthly aggregation of + * usage is computed along with the percentile rank based on the usage for a given day. + */ +export interface UsageDetails { + /** + * Daily usage stats of a data asset on the start date. + */ + dailyStats: UsageStats; + /** + * Date in UTC. + */ + date: Date; + /** + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + */ + monthlyStats?: UsageStats; + /** + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ + weeklyStats?: UsageStats; +} + +/** + * Daily usage stats of a data asset on the start date. + * + * Type used to return usage statistics. + * + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + * + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ +export interface UsageStats { + /** + * Usage count of a data asset on the start date. + */ + count: number; + /** + * Optional daily percentile rank data asset use when relevant. + */ + percentileRank?: number; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/searchIndex.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/searchIndex.ts new file mode 100644 index 000000000000..0cd053dc7130 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/searchIndex.ts @@ -0,0 +1,517 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `SearchIndex` is a index mapping definition in ElasticSearch or OpenSearch + */ +export interface SearchIndex { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the SearchIndex instance. + */ + description?: string; + /** + * Display Name that identifies this SearchIndex. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Domain the SearchIndex belongs to. When not set, the SearchIndex inherits the domain from + * the messaging service it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Fields in this SearchIndex. + */ + fields: SearchIndexField[]; + /** + * Followers of this searchIndex. + */ + followers?: EntityReference[]; + /** + * Name that uniquely identifies a SearchIndex in the format + * 'searchServiceName.searchIndexName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies this SearchIndex instance. + */ + id: string; + /** + * Whether the entity is index or index template. + */ + indexType?: IndexType; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name that identifies the SearchIndex. + */ + name: string; + /** + * Owners of this searchIndex. + */ + owners?: EntityReference[]; + /** + * Sample data for a searchIndex. + */ + sampleData?: SearchIndexSampleData; + /** + * Contains key/value pair of searchIndex settings. + */ + searchIndexSettings?: { [key: string]: any }; + /** + * Link to the search cluster/service where this SearchIndex is hosted in. + */ + service: EntityReference; + /** + * Service type where this SearchIndex is hosted in. + */ + serviceType?: SearchServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Tags for this searchIndex. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the SearchIndex belongs to. When not set, the SearchIndex inherits the domain from + * the messaging service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to the search cluster/service where this SearchIndex is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for a field in a searchIndex. + */ +export interface SearchIndexField { + /** + * Child columns if dataType has properties. + */ + children?: SearchIndexField[]; + /** + * Data type of the searchIndex (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. + */ + dataTypeDisplay?: string; + /** + * Description of the field. + */ + description?: string; + /** + * Display Name that identifies this searchIndexField name. + */ + displayName?: string; + fullyQualifiedName?: string; + name: string; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the searchIndex (int, date etc.). + * + * This enum defines the type of data stored in a searchIndex. + */ +export enum DataType { + AggregateMetricDouble = "AGGREGATE_METRIC_DOUBLE", + AnnotatedText = "ANNOTATED-TEXT", + Array = "ARRAY", + Binary = "BINARY", + Boolean = "BOOLEAN", + Byte = "BYTE", + Completion = "COMPLETION", + ConstantKeyword = "CONSTANT_KEYWORD", + Date = "DATE", + Datetime = "DATETIME", + DenseVector = "DENSE_VECTOR", + Double = "DOUBLE", + Flattened = "FLATTENED", + Float = "FLOAT", + GeoPoint = "GEO_POINT", + GeoShape = "GEO_SHAPE", + HalfFloat = "HALF_FLOAT", + Histogram = "HISTOGRAM", + IP = "IP", + Integer = "INTEGER", + Join = "JOIN", + Keyword = "KEYWORD", + Long = "LONG", + Murmur3 = "MURMUR3", + Nested = "NESTED", + Number = "NUMBER", + Object = "OBJECT", + Percolator = "PERCOLATOR", + Point = "POINT", + Range = "RANGE", + RankFeature = "RANK_FEATURE", + RankFeatures = "RANK_FEATURES", + ScaledFloat = "SCALED_FLOAT", + SearchAsYouType = "SEARCH_AS_YOU_TYPE", + Shape = "SHAPE", + Short = "SHORT", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Unknown = "UNKNOWN", + UnsignedLong = "UNSIGNED_LONG", + Version = "VERSION", + Wildcard = "WILDCARD", +} + +/** + * Whether the entity is index or index template. + */ +export enum IndexType { + Index = "Index", + IndexTemplate = "IndexTemplate", +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Sample data for a searchIndex. + * + * This schema defines the type to capture sample data for a SearchIndex. + */ +export interface SearchIndexSampleData { + /** + * List of local sample messages for a SearchIndex. + */ + messages?: string[]; +} + +/** + * Service type where this SearchIndex is hosted in. + * + * Type of search service such as ElasticSearch or OpenSearch. + */ +export enum SearchServiceType { + CustomSearch = "CustomSearch", + ElasticSearch = "ElasticSearch", + OpenSearch = "OpenSearch", +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/storedProcedure.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/storedProcedure.ts new file mode 100644 index 000000000000..f40d178caebf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/storedProcedure.ts @@ -0,0 +1,498 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `StoredProcedure` entity that contains the set of code statements with an assigned + * name and is defined in a `Database Schema`." + */ +export interface StoredProcedure { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * SQL Query definition. + */ + code?: string; + /** + * Reference to Database that contains this stored procedure. + */ + database?: EntityReference; + /** + * Reference to Database Schema that contains this stored procedure. + */ + databaseSchema?: EntityReference; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a Stored Procedure. + */ + description?: string; + /** + * Display Name that identifies this Stored Procedure. + */ + displayName?: string; + /** + * Domain the Stored Procedure belongs to. When not set, the Stored Procedure inherits the + * domain from the database schemna it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Followers of this Stored Procedure. + */ + followers?: EntityReference[]; + /** + * Fully qualified name of a Stored Procedure. + */ + fullyQualifiedName?: string; + /** + * Link to this Query resource. + */ + href?: string; + /** + * Unique identifier of the StoredProcedure. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Name of Stored Procedure. + */ + name: string; + /** + * Owners of this Stored Procedure. + */ + owners?: EntityReference[]; + /** + * Link to Database service this table is hosted in. + */ + service?: EntityReference; + /** + * Service type this table is hosted in. + */ + serviceType?: DatabaseServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of database schema. + */ + sourceUrl?: string; + /** + * Stored Procedure Code. + */ + storedProcedureCode: any[] | boolean | number | number | null | StoredProcedureCodeObject | string; + /** + * Type of the Stored Procedure. + */ + storedProcedureType?: StoredProcedureType; + /** + * Tags for this SQL query. + */ + tags?: TagLabel[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the query. + */ + updatedBy?: string; + /** + * Metadata version of the Stored Procedure. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Reference to Database that contains this stored procedure. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Reference to Database Schema that contains this stored procedure. + * + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Stored Procedure belongs to. When not set, the Stored Procedure inherits the + * domain from the database schemna it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to Database service this table is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Service type this table is hosted in. + * + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ +export enum DatabaseServiceType { + Athena = "Athena", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDatabase = "CustomDatabase", + Databricks = "Databricks", + Datalake = "Datalake", + Db2 = "Db2", + Dbt = "Dbt", + DeltaLake = "DeltaLake", + DomoDatabase = "DomoDatabase", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + Exasol = "Exasol", + Glue = "Glue", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + MariaDB = "MariaDB", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + Presto = "Presto", + QueryLog = "QueryLog", + Redshift = "Redshift", + SAS = "SAS", + SQLite = "SQLite", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + SingleStore = "SingleStore", + Snowflake = "Snowflake", + Synapse = "Synapse", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + Vertica = "Vertica", +} + +export interface StoredProcedureCodeObject { + /** + * This schema defines the type of the language used for Stored Procedure's Code. + */ + code?: string; + /** + * This schema defines the type of the language used for Stored Procedure's Code. + */ + language?: Language; + [property: string]: any; +} + +/** + * This schema defines the type of the language used for Stored Procedure's Code. + */ +export enum Language { + External = "External", + Java = "Java", + JavaScript = "JavaScript", + Python = "Python", + SQL = "SQL", +} + +/** + * Type of the Stored Procedure. + * + * This schema defines the type of the type of Procedures + */ +export enum StoredProcedureType { + StoredProcedure = "StoredProcedure", + Udf = "UDF", +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts new file mode 100644 index 000000000000..41424ff664ef --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/table.ts @@ -0,0 +1,1310 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `Table` entity organizes data in rows and columns and is defined in a `Database Schema`. + */ +export interface Table { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Columns in this table. + */ + columns: Column[]; + /** + * List of Custom Metrics registered for a table. + */ + customMetrics?: CustomMetric[]; + /** + * Reference to Database that contains this table. + */ + database?: EntityReference; + /** + * Reference to database schema that contains this table. + */ + databaseSchema?: EntityReference; + /** + * This captures information about how the table is modeled. Currently only DBT model is + * supported. + */ + dataModel?: DataModel; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a table. + */ + description?: string; + /** + * Display Name that identifies this table. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * File format in case of file/datalake tables. + */ + fileFormat?: FileFormat; + /** + * Followers of this table. + */ + followers?: EntityReference[]; + /** + * Fully qualified name of a table in the form `serviceName.databaseName.tableName`. + */ + fullyQualifiedName?: string; + /** + * Link to this table resource. + */ + href?: string; + /** + * Unique identifier of this table instance. + */ + id: string; + /** + * Details of other tables this table is frequently joined with. + */ + joins?: TableJoins; + /** + * Life Cycle of the entity + */ + lifeCycle?: LifeCycle; + /** + * Reference to the Location that contains this table. + */ + location?: EntityReference; + /** + * Full storage path in case of external and managed tables. + */ + locationPath?: string; + /** + * Name of a table. Expected to be unique within a database. + */ + name: string; + /** + * Owners of this table. + */ + owners?: EntityReference[]; + /** + * Latest Data profile for a table. + */ + profile?: TableProfile; + /** + * Retention period of the data in the table. Period is expressed as duration in ISO 8601 + * format in UTC. Example - `P23DT23H`. When not set, the retention period is inherited from + * the parent database schema, if it exists. + */ + retentionPeriod?: string; + /** + * Sample data for a table. + */ + sampleData?: TableData; + /** + * DDL for Tables and Views + */ + schemaDefinition?: string; + /** + * Link to Database service this table is hosted in. + */ + service?: EntityReference; + /** + * Service type this table is hosted in. + */ + serviceType?: DatabaseServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of table. + */ + sourceUrl?: string; + /** + * Table constraints. + */ + tableConstraints?: TableConstraint[]; + tablePartition?: TablePartition; + /** + * Table Profiler Config to include or exclude columns from profiling. + */ + tableProfilerConfig?: TableProfilerConfig; + tableType?: TableType; + /** + * Tags for this table. + */ + tags?: TagLabel[]; + /** + * Executable test suite associated with this table + */ + testSuite?: EntityReference; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Latest usage information for this table. + */ + usageSummary?: UsageDetails; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * This schema defines the type for a column in a table. + */ +export interface Column { + /** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + */ + arrayDataType?: DataType; + /** + * Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`. + */ + children?: Column[]; + /** + * Column level constraint. + */ + constraint?: Constraint; + /** + * List of Custom Metrics registered for a table. + */ + customMetrics?: CustomMetric[]; + /** + * Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, + * `varchar(20)` has dataType as `varchar` and dataLength as `20`. + */ + dataLength?: number; + /** + * Data type of the column (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + fullyQualifiedName?: string; + /** + * Json schema only if the dataType is JSON else null. + */ + jsonSchema?: string; + name: string; + /** + * Ordinal position of the column. + */ + ordinalPosition?: number; + /** + * The precision of a numeric is the total count of significant digits in the whole number, + * that is, the number of digits to both sides of the decimal point. Precision is applicable + * Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric + * types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + precision?: number; + /** + * Latest Data profile for a Column. + */ + profile?: ColumnProfile; + /** + * The scale of a numeric is the count of decimal digits in the fractional part, to the + * right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non + * Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + scale?: number; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + * + * This enum defines the type of data stored in a column. + * + * Data type of the column (int, date etc.). + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * Column level constraint. + * + * This enum defines the type for column constraint. + */ +export enum Constraint { + NotNull = "NOT_NULL", + Null = "NULL", + PrimaryKey = "PRIMARY_KEY", + Unique = "UNIQUE", +} + +/** + * Custom Metric definition that we will associate with a column. + */ +export interface CustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the Metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Unique identifier of this Custom Metric instance. + */ + id?: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Custom Metric. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Owners of this Custom Metric. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Reference to Database that contains this table. + * + * Reference to database schema that contains this table. + * + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Reference to the Location that contains this table. + * + * Link to Database service this table is hosted in. + * + * Executable test suite associated with this table + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Latest Data profile for a Column. + * + * This schema defines the type to capture the table's column profile. + */ +export interface ColumnProfile { + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Number of values that contain distinct values. + */ + distinctCount?: number; + /** + * Proportion of distinct values in a column. + */ + distinctProportion?: number; + /** + * No.of Rows that contain duplicates in a column. + */ + duplicateCount?: number; + /** + * First quartile of a column. + */ + firstQuartile?: number; + /** + * Histogram of a column. + */ + histogram?: any[] | boolean | HistogramClass | number | number | null | string; + /** + * Inter quartile range of a column. + */ + interQuartileRange?: number; + /** + * Maximum value in a column. + */ + max?: number | string; + /** + * Maximum string length in a column. + */ + maxLength?: number; + /** + * Avg value in a column. + */ + mean?: number; + /** + * Median of a column. + */ + median?: number; + /** + * Minimum value in a column. + */ + min?: number | string; + /** + * Minimum string length in a column. + */ + minLength?: number; + /** + * Missing count is calculated by subtracting valuesCount - validCount. + */ + missingCount?: number; + /** + * Missing Percentage is calculated by taking percentage of validCount/valuesCount. + */ + missingPercentage?: number; + /** + * Column Name. + */ + name: string; + /** + * Non parametric skew of a column. + */ + nonParametricSkew?: number; + /** + * No.of null values in a column. + */ + nullCount?: number; + /** + * No.of null value proportion in columns. + */ + nullProportion?: number; + /** + * Standard deviation of a column. + */ + stddev?: number; + /** + * Median value in a column. + */ + sum?: number; + /** + * First quartile of a column. + */ + thirdQuartile?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; + /** + * No. of unique values in the column. + */ + uniqueCount?: number; + /** + * Proportion of number of unique values in a column. + */ + uniqueProportion?: number; + /** + * Total count of valid values in this column. + */ + validCount?: number; + /** + * Total count of the values in this column. + */ + valuesCount?: number; + /** + * Percentage of values in this column with respect to row count. + */ + valuesPercentage?: number; + /** + * Variance of a column. + */ + variance?: number; +} + +/** + * Profiling results of a Custom Metric. + */ +export interface CustomMetricProfile { + /** + * Custom metric name. + */ + name?: string; + /** + * Profiling results for the metric. + */ + value?: number; +} + +export interface HistogramClass { + /** + * Boundaries of Histogram. + */ + boundaries?: any[]; + /** + * Frequencies of Histogram. + */ + frequencies?: any[]; +} + +/** + * This captures information about how the table is modeled. Currently only DBT model is + * supported. + * + * This captures information about how the table is modeled. Currently only DBT and DDL + * model is supported. + */ +export interface DataModel { + /** + * Columns from the schema defined during modeling. In case of DBT, the metadata here comes + * from `schema.yaml`. + */ + columns?: Column[]; + /** + * Description of the Table from the model. + */ + description?: string; + generatedAt?: Date; + modelType: ModelType; + /** + * Owners of this Table. + */ + owners?: EntityReference[]; + /** + * Path to sql definition file. + */ + path?: string; + /** + * This corresponds to rws SQL from `.sql` in DBT. This might be null when SQL + * query need not be compiled as done in DBT. + */ + rawSql?: string; + /** + * Resource Type of the model. + */ + resourceType?: string; + /** + * This corresponds to compile SQL from `.sql` in DBT. In cases where + * compilation is not necessary, this corresponds to SQL that created the table. + */ + sql?: string; + /** + * Tags for this data model. + */ + tags?: TagLabel[]; + /** + * Fully qualified name of Models/tables used for in `sql` for creating this table. + */ + upstream?: string[]; +} + +export enum ModelType { + DDL = "DDL", + Dbt = "DBT", +} + +/** + * File format in case of file/datalake tables. + */ +export enum FileFormat { + Avro = "avro", + CSV = "csv", + JSON = "json", + JSONGz = "json.gz", + JSONZip = "json.zip", + Jsonl = "jsonl", + JsonlGz = "jsonl.gz", + JsonlZip = "jsonl.zip", + Parquet = "parquet", + Tsv = "tsv", +} + +/** + * Details of other tables this table is frequently joined with. + * + * This schema defines the type to capture information about how this table is joined with + * other tables and columns. + */ +export interface TableJoins { + columnJoins?: ColumnJoins[]; + dayCount?: number; + /** + * Joins with other tables that are not on a specific column (e.g: UNION join) + */ + directTableJoins?: JoinedWith[]; + /** + * Date can be only from today going back to last 29 days. + */ + startDate?: Date; +} + +/** + * This schema defines the type to capture how frequently a column is joined with columns in + * the other tables. + */ +export interface ColumnJoins { + columnName?: string; + /** + * Fully qualified names of the columns that this column is joined with. + */ + joinedWith?: JoinedWith[]; +} + +/** + * Fully qualified names of the fields/entities that this field/entity is joined with. + */ +export interface JoinedWith { + fullyQualifiedName: string; + joinCount: number; +} + +/** + * Life Cycle of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * Latest Data profile for a table. + * + * This schema defines the type to capture the table's data profile. + */ +export interface TableProfile { + /** + * No.of columns in the table. + */ + columnCount?: number; + /** + * Table creation time. + */ + createDateTime?: Date; + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Percentage of data or no. of rows we want to execute the profiler and tests on + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * No.of rows in the table. This is always executed on the whole table. + */ + rowCount?: number; + samplingMethodType?: SamplingMethodType; + /** + * Table size in GB + */ + sizeInByte?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * Sample data for a table. + * + * This schema defines the type to capture rows of sample data for a table. + */ +export interface TableData { + /** + * List of local column names (not fully qualified column names) of the table. + */ + columns?: string[]; + /** + * Data for multiple rows of the table. + */ + rows?: Array; +} + +/** + * Service type this table is hosted in. + * + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ +export enum DatabaseServiceType { + Athena = "Athena", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDatabase = "CustomDatabase", + Databricks = "Databricks", + Datalake = "Datalake", + Db2 = "Db2", + Dbt = "Dbt", + DeltaLake = "DeltaLake", + DomoDatabase = "DomoDatabase", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + Exasol = "Exasol", + Glue = "Glue", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + MariaDB = "MariaDB", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + Presto = "Presto", + QueryLog = "QueryLog", + Redshift = "Redshift", + SAS = "SAS", + SQLite = "SQLite", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + SingleStore = "SingleStore", + Snowflake = "Snowflake", + Synapse = "Synapse", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + Vertica = "Vertica", +} + +/** + * This enum defines the type for table constraint. + */ +export interface TableConstraint { + /** + * List of column names corresponding to the constraint. + */ + columns?: string[]; + constraintType?: ConstraintType; + /** + * List of referred columns for the constraint. + */ + referredColumns?: string[]; + relationshipType?: RelationshipType; +} + +export enum ConstraintType { + DistKey = "DIST_KEY", + ForeignKey = "FOREIGN_KEY", + PrimaryKey = "PRIMARY_KEY", + SortKey = "SORT_KEY", + Unique = "UNIQUE", +} + +export enum RelationshipType { + ManyToMany = "MANY_TO_MANY", + ManyToOne = "MANY_TO_ONE", + OneToMany = "ONE_TO_MANY", + OneToOne = "ONE_TO_ONE", +} + +/** + * This schema defines the partition column of a table and format the partition is created. + */ +export interface TablePartition { + /** + * List of column partitions with their type and interval. + */ + columns?: PartitionColumnDetails[]; +} + +/** + * This schema defines the partition column of a table and format the partition is created. + */ +export interface PartitionColumnDetails { + /** + * List of column names corresponding to the partition. + */ + columnName?: string; + /** + * partition interval , example hourly, daily, monthly. + */ + interval?: string; + intervalType?: PartitionIntervalTypes; +} + +/** + * type of partition interval + */ +export enum PartitionIntervalTypes { + ColumnValue = "COLUMN-VALUE", + Enum = "ENUM", + IngestionTime = "INGESTION-TIME", + Injected = "INJECTED", + IntegerRange = "INTEGER-RANGE", + Other = "OTHER", + TimeUnit = "TIME-UNIT", +} + +/** + * Table Profiler Config to include or exclude columns from profiling. + * + * This schema defines the type for Table profile config. + */ +export interface TableProfilerConfig { + /** + * Option to turn on/off column metric computation. If enabled, profiler will compute column + * level metrics. + */ + computeColumnMetrics?: boolean; + /** + * Option to turn on/off table metric computation. If enabled, profiler will compute table + * level metrics. + */ + computeTableMetrics?: boolean; + /** + * column names to exclude from profiling. + */ + excludeColumns?: string[]; + /** + * Only run profiler on included columns with specific metrics. + */ + includeColumns?: ColumnProfilerConfig[]; + /** + * Partitioning configuration + */ + partitioning?: PartitionProfilerConfig; + /** + * Users' raw SQL query to fetch sample data and profile the table + */ + profileQuery?: string; + /** + * Percentage of data or no. of rows used to compute the profiler metrics and run data + * quality tests + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * Number of sample rows to ingest when 'Generate Sample Data' is enabled + */ + sampleDataCount?: number; + samplingMethodType?: SamplingMethodType; + [property: string]: any; +} + +/** + * This schema defines the type for Table profile config include Columns. + */ +export interface ColumnProfilerConfig { + /** + * Column Name of the table to be included. + */ + columnName?: string; + /** + * Include only following metrics. + */ + metrics?: string[]; + [property: string]: any; +} + +/** + * Partitioning configuration + * + * This schema defines the partition configuration used by profiler. + */ +export interface PartitionProfilerConfig { + /** + * whether to use partition + */ + enablePartitioning?: boolean; + /** + * name of the column to use for the partition + */ + partitionColumnName?: string; + /** + * end of the integer range for partitioning + */ + partitionIntegerRangeEnd?: number; + /** + * start of the integer range for partitioning + */ + partitionIntegerRangeStart?: number; + /** + * The interval to use for the partitioning + */ + partitionInterval?: number; + partitionIntervalType?: PartitionIntervalTypes; + /** + * unit used for the partition interval + */ + partitionIntervalUnit?: PartitionIntervalUnit; + /** + * unit used for the partition interval + */ + partitionValues?: any[]; + [property: string]: any; +} + +/** + * unit used for the partition interval + */ +export enum PartitionIntervalUnit { + Day = "DAY", + Hour = "HOUR", + Month = "MONTH", + Year = "YEAR", +} + +/** + * This schema defines the type used for describing different types of tables. + */ +export enum TableType { + Dynamic = "Dynamic", + External = "External", + Foreign = "Foreign", + Iceberg = "Iceberg", + Local = "Local", + MaterializedView = "MaterializedView", + Partitioned = "Partitioned", + Regular = "Regular", + SecureView = "SecureView", + Transient = "Transient", + View = "View", +} + +/** + * Latest usage information for this table. + * + * This schema defines the type for usage details. Daily, weekly, and monthly aggregation of + * usage is computed along with the percentile rank based on the usage for a given day. + */ +export interface UsageDetails { + /** + * Daily usage stats of a data asset on the start date. + */ + dailyStats: UsageStats; + /** + * Date in UTC. + */ + date: Date; + /** + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + */ + monthlyStats?: UsageStats; + /** + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ + weeklyStats?: UsageStats; +} + +/** + * Daily usage stats of a data asset on the start date. + * + * Type used to return usage statistics. + * + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + * + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ +export interface UsageStats { + /** + * Usage count of a data asset on the start date. + */ + count: number; + /** + * Optional daily percentile rank data asset use when relevant. + */ + percentileRank?: number; +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/topic.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/topic.ts new file mode 100644 index 000000000000..1a86bd2a8a3a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/data/topic.ts @@ -0,0 +1,557 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `Topic` is a feed or an event stream in a `Messaging Service` into which publishers + * publish messages and consumed by consumers. + */ +export interface Topic { + certification?: AssetCertification; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Topic clean up policies. For Kafka - `cleanup.policy` configuration. + */ + cleanupPolicies?: CleanupPolicy[]; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the topic instance. + */ + description?: string; + /** + * Display Name that identifies this topic. It could be title or label from the source + * services. + */ + displayName?: string; + /** + * Domain the Topic belongs to. When not set, the Topic inherits the domain from the + * messaging service it belongs to. + */ + domain?: EntityReference; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * Followers of this table. + */ + followers?: EntityReference[]; + /** + * Name that uniquely identifies a topic in the format 'messagingServiceName.topicName'. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies this topic instance. + */ + id: string; + /** + * Life Cycle properties of the entity + */ + lifeCycle?: LifeCycle; + /** + * Maximum message size in bytes. For Kafka - `max.message.bytes` configuration. + */ + maximumMessageSize?: number; + messageSchema?: MessageSchemaObject; + /** + * Minimum number replicas in sync to control durability. For Kafka - `min.insync.replicas` + * configuration. + */ + minimumInSyncReplicas?: number; + /** + * Name that identifies the topic. + */ + name: string; + /** + * Owners of this topic. + */ + owners?: EntityReference[]; + /** + * Number of partitions into which the topic is divided. + */ + partitions: number; + /** + * Replication Factor in integer (more than 1). + */ + replicationFactor?: number; + /** + * Maximum size of a partition in bytes before old data is discarded. For Kafka - + * `retention.bytes` configuration. + */ + retentionSize?: number; + /** + * Retention time in milliseconds. For Kafka - `retention.ms` configuration. + */ + retentionTime?: number; + /** + * Sample data for a topic. + */ + sampleData?: TopicSampleData; + /** + * Link to the messaging cluster/service where this topic is hosted in. + */ + service: EntityReference; + /** + * Service type where this topic is hosted in. + */ + serviceType?: MessagingServiceType; + /** + * Source hash of the entity + */ + sourceHash?: string; + /** + * Source URL of topic. + */ + sourceUrl?: string; + /** + * Tags for this table. + */ + tags?: TagLabel[]; + /** + * Contains key/value pair of topic configuration. + */ + topicConfig?: { [key: string]: any }; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; + /** + * Votes on the entity. + */ + votes?: Votes; +} + +/** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Topic clean up policy. For Kafka - `cleanup.policy` configuration. + */ +export enum CleanupPolicy { + Compact = "compact", + Delete = "delete", +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Topic belongs to. When not set, the Topic inherits the domain from the + * messaging service it belongs to. + * + * User, Pipeline, Query that created,updated or accessed the data asset + * + * Link to the messaging cluster/service where this topic is hosted in. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Life Cycle properties of the entity + * + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * This schema defines the Topic entity. A topic is a feed into which message are published + * to by publishers and read from by consumers in a messaging service. + */ +export interface MessageSchemaObject { + /** + * Columns in this schema. + */ + schemaFields?: Field[]; + /** + * Schema used for message serialization. Optional as some topics may not have associated + * schemas. + */ + schemaText?: string; + /** + * Schema used for message serialization. + */ + schemaType?: SchemaType; + [property: string]: any; +} + +/** + * This schema defines the nested object to capture protobuf/avro/jsonschema of topic's + * schema. + */ +export interface Field { + /** + * Child fields if dataType or arrayDataType is `map`, `record`, `message` + */ + children?: Field[]; + /** + * Data type of the field (int, date etc.). + */ + dataType: DataTypeTopic; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this field name. + */ + displayName?: string; + fullyQualifiedName?: string; + name: string; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the field (int, date etc.). + * + * This enum defines the type of data defined in schema. + */ +export enum DataTypeTopic { + Array = "ARRAY", + Boolean = "BOOLEAN", + Bytes = "BYTES", + Date = "DATE", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Int = "INT", + Long = "LONG", + Map = "MAP", + Null = "NULL", + Record = "RECORD", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Union = "UNION", + Unknown = "UNKNOWN", +} + +/** + * Schema used for message serialization. + * + * Schema type used for the message. + */ +export enum SchemaType { + Avro = "Avro", + JSON = "JSON", + None = "None", + Other = "Other", + Protobuf = "Protobuf", +} + +/** + * Sample data for a topic. + * + * This schema defines the type to capture sample data for a topic. + */ +export interface TopicSampleData { + /** + * List of local sample messages for a topic. + */ + messages?: string[]; +} + +/** + * Service type where this topic is hosted in. + * + * Type of messaging service - Kafka or Pulsar. + */ +export enum MessagingServiceType { + CustomMessaging = "CustomMessaging", + Kafka = "Kafka", + Kinesis = "Kinesis", + Redpanda = "Redpanda", +} + +/** + * Votes on the entity. + * + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/docStore/document.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/docStore/document.ts new file mode 100644 index 000000000000..38ba0a8858b6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/docStore/document.ts @@ -0,0 +1,157 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Document. A Generic entity to capture any kind of Json Payload. + */ +export interface Document { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + data: { [key: string]: any }; + /** + * Description of the DocStore Entity. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * Type of the Entity stored in DocStore. + */ + entityType: string; + fullyQualifiedName: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + id?: string; + /** + * Name of the DocStore + */ + name: string; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/dataProduct.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/dataProduct.ts new file mode 100644 index 000000000000..67b584017290 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/dataProduct.ts @@ -0,0 +1,197 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `Data Product` or `Data as a Product` is a logical unit that contains all components to + * process and store data for analytical or data-intensive use cases made available to data + * consumers. + */ +export interface DataProduct { + /** + * Data assets collection that is part of this data product. + */ + assets?: EntityReference[]; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Description of the Data Product. + */ + description: string; + /** + * Name used for display purposes. Example 'Marketing', 'Payments', etc. + */ + displayName?: string; + /** + * Domain or sub-domain to which this Data Product belongs to. + */ + domain?: EntityReference; + /** + * List of users who are experts for this Data Product. + */ + experts?: EntityReference[]; + /** + * Entity extension data with custom attributes added to the entity. + */ + extension?: any; + /** + * FullyQualifiedName is `domain.dataProductName` or `sub-domain.dataProductName`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique ID of the Data Product + */ + id: string; + /** + * A unique name of the Data Product + */ + name: string; + /** + * Owners of this Data Product. + */ + owners?: EntityReference[]; + style?: Style; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Data assets collection that is part of this data product. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain or sub-domain to which this Data Product belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/domain.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/domain.ts new file mode 100644 index 000000000000..b44add2d0cae --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/domains/domain.ts @@ -0,0 +1,211 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `Domain` is a bounded context that is aligned with a Business Unit or a function within + * an organization. + */ +export interface Domain { + /** + * Data assets collection that is part of this domain. + */ + assets?: EntityReference[]; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Children domains or sub-domains. + */ + children?: EntityReference[]; + /** + * Description of the Domain. + */ + description: string; + /** + * Name used for display purposes. Example 'Marketing', 'Payments', etc. + */ + displayName?: string; + /** + * Domain type + */ + domainType: DomainType; + /** + * List of users who are experts in this Domain. + */ + experts?: EntityReference[]; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique ID of the Domain + */ + id: string; + /** + * A unique name of the Domain + */ + name: string; + /** + * Owners of this Domain. + */ + owners?: EntityReference[]; + /** + * Parent domains. When 'null' or not set, indicates that this is the top level domain. + */ + parent?: EntityReference; + style?: Style; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Data assets collection that is part of this domain. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Parent domains. When 'null' or not set, indicates that this is the top level domain. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain type + * + * Type of a domain + */ +export enum DomainType { + Aggregate = "Aggregate", + ConsumerAligned = "Consumer-aligned", + SourceAligned = "Source-aligned", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/events/webhook.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/events/webhook.ts new file mode 100644 index 000000000000..c6fd487ff331 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/events/webhook.ts @@ -0,0 +1,60 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines webhook for receiving events from OpenMetadata. + */ +export interface Webhook { + /** + * Endpoint to receive the webhook events over POST requests. + */ + endpoint?: string; + /** + * Custom headers to be sent with the webhook request. + */ + headers?: { [key: string]: any }; + /** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ + httpMethod?: HTTPMethod; + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Secret set by the webhook client used for computing HMAC SHA256 signature of webhook + * payload and sent in `X-OM-Signature` header in POST requests to publish the events. + */ + secretKey?: string; + /** + * Send the Event to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Event to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Event to Owners + */ + sendToOwners?: boolean; +} + +/** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ +export enum HTTPMethod { + Post = "POST", + Put = "PUT", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/assets.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/assets.ts new file mode 100644 index 000000000000..42528fdfcdbf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/assets.ts @@ -0,0 +1,74 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the schema for Assets addition/deletion Updates. + */ +export interface Assets { + updatedAssets?: EntityReference[]; +} + +/** + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/customProperty.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/customProperty.ts new file mode 100644 index 000000000000..a9e0ac96be09 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/customProperty.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the custom properties addition/deltion schema on feed. + */ +export interface CustomProperty { + /** + * Previous Custom Property. + */ + previousValue?: any; + /** + * Updated Custom Property. + */ + updatedValue?: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/description.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/description.ts new file mode 100644 index 000000000000..5b1ac613d30a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/description.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the schema for Description Updates. + */ +export interface Description { + /** + * The difference between the previous and new descriptions. + */ + diffMessage?: string; + /** + * The new description of the entity. + */ + newDescription?: string; + /** + * The previous description of the entity. + */ + previousDescription?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/domain.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/domain.ts new file mode 100644 index 000000000000..2d1826d2b5ce --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/domain.ts @@ -0,0 +1,80 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the schema for Assets addition/deletion Updates. + */ +export interface Domain { + /** + * Previous Domain. + */ + previousDomain?: EntityReference; + /** + * Updated Domain. + */ + updatedDomain?: EntityReference; +} + +/** + * Previous Domain. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Updated Domain. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/entityInfo.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/entityInfo.ts new file mode 100644 index 000000000000..3cef96824d90 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/entityInfo.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * EntityInfo In case of Entity Created, Updated Or Deleted. + */ +export interface EntityInfo { + /** + * Entity Details in case of Creation , Soft Deletion and Deletion. + */ + entity?: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/owner.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/owner.ts new file mode 100644 index 000000000000..ec2ae6001c1b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/owner.ts @@ -0,0 +1,83 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the schema for Ownership Updates for Feed. + */ +export interface Owner { + /** + * Previous Owners. + */ + previousOwner?: EntityReference[]; + /** + * Updated Owners. + */ + updatedOwner?: EntityReference[]; +} + +/** + * Previous Owners. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/suggestion.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/suggestion.ts new file mode 100644 index 000000000000..6b0018051a56 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/suggestion.ts @@ -0,0 +1,216 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Suggestion entity. A suggestion can be applied to an asset to + * give the owner context about possible changes or improvements to descriptions, tags,... + */ +export interface Suggestion { + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + createdAt?: number; + /** + * User or Bot who made the suggestion. + */ + createdBy?: EntityReference; + /** + * The main message of the thread in Markdown format. + */ + description?: string; + /** + * Data asset about which this thread is created for with format + * <#E::{entities}::{entityName}::{field}::{fieldValue}. + */ + entityLink: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + status?: SuggestionStatus; + /** + * Tags or Glossary Terms. + */ + tagLabels?: TagLabel[]; + type?: SuggestionType; + /** + * Last update time corresponding to the update version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User or Bot who updated the suggestion. + */ + updatedBy?: string; +} + +/** + * User or Bot who made the suggestion. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Status of a Suggestion. + */ +export enum SuggestionStatus { + Accepted = "Accepted", + Open = "Open", + Rejected = "Rejected", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Type of a Suggestion. + */ +export enum SuggestionType { + SuggestDescription = "SuggestDescription", + SuggestTagLabel = "SuggestTagLabel", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/tag.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/tag.ts new file mode 100644 index 000000000000..c32b9340af9a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/tag.ts @@ -0,0 +1,114 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the schema for Tag Updates for Feed. + */ +export interface Tag { + /** + * List of previous tags. + */ + previousTags?: TagLabel[]; + /** + * List of updated tags. + */ + updatedTags?: TagLabel[]; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/testCaseResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/testCaseResult.ts new file mode 100644 index 000000000000..4b6795a070db --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/testCaseResult.ts @@ -0,0 +1,216 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the schema for Test Case Result Updates for Feed. + */ +export interface TestCaseResult { + /** + * Summary of test case execution + */ + entityTestResultSummary?: Array; + /** + * Summary of test case execution + */ + parameterValues?: TestCaseParameterValue[]; + /** + * Test Case Result for last 7 days. + */ + testCaseResult?: TestCaseResultElement[]; +} + +export interface EntityTestResultSummaryObject { + /** + * Status of the test case. + */ + status?: TestCaseStatus; + /** + * Name of the test case. + */ + testCaseName?: string; + /** + * Timestamp of the test case execution. + */ + timestamp?: number; + [property: string]: any; +} + +/** + * Status of the test case. + * + * Status of Test Case run. + */ +export enum TestCaseStatus { + Aborted = "Aborted", + Failed = "Failed", + Queued = "Queued", + Success = "Success", +} + +/** + * This schema defines the parameter values that can be passed for a Test Case. + */ +export interface TestCaseParameterValue { + /** + * name of the parameter. Must match the parameter names in testCaseParameterDefinition + */ + name?: string; + /** + * value to be passed for the Parameters. These are input from Users. We capture this in + * string and convert during the runtime. + */ + value?: string; + [property: string]: any; +} + +/** + * Schema to capture test case result. + */ +export interface TestCaseResultElement { + /** + * Number of rows that failed. + */ + failedRows?: number; + /** + * Percentage of rows that failed. + */ + failedRowsPercentage?: number; + /** + * Unique identifier of this failure instance + */ + id?: string; + /** + * Incident State ID associated with this result. This association happens when the result + * is created, and will stay there even when the incident is resolved. + */ + incidentId?: string; + /** + * Upper bound limit for the test case result as defined in the test definition. + */ + maxBound?: number; + /** + * Lower bound limit for the test case result as defined in the test definition. + */ + minBound?: number; + /** + * Number of rows that passed. + */ + passedRows?: number; + /** + * Percentage of rows that passed. + */ + passedRowsPercentage?: number; + /** + * Details of test case results. + */ + result?: string; + /** + * sample data to capture rows/columns that didn't match the expressed testcase. + */ + sampleData?: string; + /** + * Test case that this result is for. + */ + testCase?: EntityReference; + /** + * Fully qualified name of the test case. + */ + testCaseFQN?: string; + /** + * Status of Test Case run. + */ + testCaseStatus?: TestCaseStatus; + /** + * Test definition that this result is for. + */ + testDefinition?: EntityReference; + testResultValue?: TestResultValue[]; + /** + * Data one which test case result is taken. + */ + timestamp: number; + [property: string]: any; +} + +/** + * Test case that this result is for. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Test definition that this result is for. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Schema to capture test case result values. + */ +export interface TestResultValue { + /** + * name of the value + */ + name?: string; + /** + * predicted value + */ + predictedValue?: string; + /** + * test result value + */ + value?: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/thread.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/thread.ts new file mode 100644 index 000000000000..ba2c030309f4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/feed/thread.ts @@ -0,0 +1,579 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Thread entity. A Thread is a collection of posts made by the + * users. The first post that starts a thread is **about** a data asset **from** a user. + * Other users can respond to this post by creating new posts in the thread. Note that bot + * users can also interact with a thread. A post can contains links that mention Users or + * other Data Assets. + */ +export interface Thread { + /** + * Data asset about which this thread is created for with format + * <#E::{entities}::{entityName}::{field}::{fieldValue}. + */ + about: string; + /** + * User or team this thread is addressed to in format + * <#E::{entities}::{entityName}::{field}::{fieldValue}. + */ + addressedTo?: string; + /** + * Details about the announcement. This is only applicable if thread is of type announcement. + */ + announcement?: AnnouncementDetails; + /** + * Card style for the thread. + */ + cardStyle?: CardStyle; + /** + * Details about the Chatbot conversation. This is only applicable if thread is of type + * Chatbot. + */ + chatbot?: ChatbotDetails; + /** + * User who created the thread. + */ + createdBy?: string; + /** + * Domain the entity belongs to. + */ + domain?: string; + /** + * Reference to the entity in `about` that the thread belongs to. + */ + entityRef?: EntityReference; + /** + * Link to the entity in `about` that the thread belongs to. + */ + entityUrlLink?: string; + /** + * Entity Id of the entity in `about` that the thread belongs to. + */ + feedInfo?: FeedInfo; + /** + * Operation on thread, whether the field was added, or updated or deleted. + */ + fieldOperation?: FieldOperation; + /** + * User or team that generated the thread. + */ + generatedBy?: GeneratedBy; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * The main message of the thread in Markdown format. + */ + message: string; + posts?: Post[]; + /** + * The total count of posts in the thread. + */ + postsCount?: number; + /** + * Reactions for the thread. + */ + reactions?: Reaction[]; + /** + * When `true` indicates the thread has been resolved. + */ + resolved?: boolean; + /** + * Details about the task. This is only applicable if thread is of type task. + */ + task?: TaskDetails; + /** + * Timestamp of the first post created the thread in Unix epoch time milliseconds. + */ + threadTs?: number; + type?: ThreadType; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Details about the announcement. This is only applicable if thread is of type announcement. + */ +export interface AnnouncementDetails { + /** + * Announcement description in Markdown format. See markdown support for more details. + */ + description?: string; + /** + * Timestamp of when the announcement should end + */ + endTime: number; + /** + * Timestamp of the start time from when the announcement should be shown. + */ + startTime: number; +} + +/** + * Card style for the thread. + */ +export enum CardStyle { + Assets = "assets", + CustomProperties = "customProperties", + Default = "default", + Description = "description", + Domain = "domain", + EntityCreated = "entityCreated", + EntityDeleted = "entityDeleted", + EntitySoftDeleted = "entitySoftDeleted", + LogicalTestCaseAdded = "logicalTestCaseAdded", + Owner = "owner", + Tags = "tags", + TestCaseResult = "testCaseResult", +} + +/** + * Details about the Chatbot conversation. This is only applicable if thread is of type + * Chatbot. + */ +export interface ChatbotDetails { + /** + * The query being discussed with the Chatbot + */ + query?: string; + [property: string]: any; +} + +/** + * Reference to the entity in `about` that the thread belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Previous Domain. + * + * Updated Domain. + * + * Test case that this result is for. + * + * Test definition that this result is for. + * + * User who reacted. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Entity Id of the entity in `about` that the thread belongs to. + */ +export interface FeedInfo { + entitySpecificInfo?: Info; + /** + * Field Name message for the feed. + */ + fieldName?: string; + /** + * Header message for the feed. + */ + headerMessage?: string; +} + +/** + * This schema defines the schema for Assets addition/deletion Updates. + * + * This schema defines the custom properties addition/deltion schema on feed. + * + * This schema defines the schema for Description Updates. + * + * EntityInfo In case of Entity Created, Updated Or Deleted. + * + * This schema defines the schema for Test Case Result Updates for Feed. + */ +export interface Info { + updatedAssets?: EntityReference[]; + /** + * Previous Custom Property. + */ + previousValue?: any; + /** + * Updated Custom Property. + */ + updatedValue?: any; + /** + * The difference between the previous and new descriptions. + */ + diffMessage?: string; + /** + * The new description of the entity. + */ + newDescription?: string; + /** + * The previous description of the entity. + */ + previousDescription?: string; + /** + * Previous Domain. + */ + previousDomain?: EntityReference; + /** + * Updated Domain. + */ + updatedDomain?: EntityReference; + /** + * Entity Details in case of Creation , Soft Deletion and Deletion. + */ + entity?: any; + /** + * Summary of test case execution + */ + entityTestResultSummary?: Array; + /** + * Summary of test case execution + */ + parameterValues?: TestCaseParameterValue[]; + /** + * Test Case Result for last 7 days. + */ + testCaseResult?: TestCaseResult[]; +} + +export interface EntityTestResultSummaryObject { + /** + * Status of the test case. + */ + status?: TestCaseStatus; + /** + * Name of the test case. + */ + testCaseName?: string; + /** + * Timestamp of the test case execution. + */ + timestamp?: number; + [property: string]: any; +} + +/** + * Status of the test case. + * + * Status of Test Case run. + */ +export enum TestCaseStatus { + Aborted = "Aborted", + Failed = "Failed", + Queued = "Queued", + Success = "Success", +} + +/** + * This schema defines the parameter values that can be passed for a Test Case. + */ +export interface TestCaseParameterValue { + /** + * name of the parameter. Must match the parameter names in testCaseParameterDefinition + */ + name?: string; + /** + * value to be passed for the Parameters. These are input from Users. We capture this in + * string and convert during the runtime. + */ + value?: string; + [property: string]: any; +} + +/** + * Schema to capture test case result. + */ +export interface TestCaseResult { + /** + * Number of rows that failed. + */ + failedRows?: number; + /** + * Percentage of rows that failed. + */ + failedRowsPercentage?: number; + /** + * Unique identifier of this failure instance + */ + id?: string; + /** + * Incident State ID associated with this result. This association happens when the result + * is created, and will stay there even when the incident is resolved. + */ + incidentId?: string; + /** + * Upper bound limit for the test case result as defined in the test definition. + */ + maxBound?: number; + /** + * Lower bound limit for the test case result as defined in the test definition. + */ + minBound?: number; + /** + * Number of rows that passed. + */ + passedRows?: number; + /** + * Percentage of rows that passed. + */ + passedRowsPercentage?: number; + /** + * Details of test case results. + */ + result?: string; + /** + * sample data to capture rows/columns that didn't match the expressed testcase. + */ + sampleData?: string; + /** + * Test case that this result is for. + */ + testCase?: EntityReference; + /** + * Fully qualified name of the test case. + */ + testCaseFQN?: string; + /** + * Status of Test Case run. + */ + testCaseStatus?: TestCaseStatus; + /** + * Test definition that this result is for. + */ + testDefinition?: EntityReference; + testResultValue?: TestResultValue[]; + /** + * Data one which test case result is taken. + */ + timestamp: number; + [property: string]: any; +} + +/** + * Schema to capture test case result values. + */ +export interface TestResultValue { + /** + * name of the value + */ + name?: string; + /** + * predicted value + */ + predictedValue?: string; + /** + * test result value + */ + value?: string; + [property: string]: any; +} + +/** + * Operation on thread, whether the field was added, or updated or deleted. + */ +export enum FieldOperation { + Added = "added", + Deleted = "deleted", + None = "none", + Updated = "updated", +} + +/** + * User or team that generated the thread. + */ +export enum GeneratedBy { + System = "system", + User = "user", +} + +/** + * Post within a feed. + */ +export interface Post { + /** + * Name of the User posting the message. + */ + from: string; + /** + * Unique identifier that identifies the post. + */ + id: string; + /** + * Message in Markdown format. See Markdown support for more details. + */ + message: string; + /** + * Timestamp of the post in Unix epoch time milliseconds. + */ + postTs?: number; + /** + * Reactions for the post. + */ + reactions?: Reaction[]; +} + +/** + * Reactions for the post. + * + * This schema defines the reaction to an entity or a conversation in the activity feeds. + */ +export interface Reaction { + reactionType: ReactionType; + /** + * User who reacted. + */ + user: EntityReference; +} + +/** + * Type of reaction. + */ +export enum ReactionType { + Confused = "confused", + Eyes = "eyes", + Heart = "heart", + Hooray = "hooray", + Laugh = "laugh", + Rocket = "rocket", + ThumbsDown = "thumbsDown", + ThumbsUp = "thumbsUp", +} + +/** + * Details about the task. This is only applicable if thread is of type task. + */ +export interface TaskDetails { + /** + * List of users or teams the task is assigned to + */ + assignees: EntityReference[]; + /** + * Timestamp when the task was closed in Unix epoch time milliseconds. + */ + closedAt?: number; + /** + * The user that closed the task. + */ + closedBy?: string; + /** + * Unique identifier that identifies the task. + */ + id: number; + /** + * The new value object that was accepted to complete the task. + */ + newValue?: string; + /** + * The value of old object for which the task is created. + */ + oldValue?: string; + status?: ThreadTaskStatus; + /** + * The suggestion object to replace the old value for which the task is created. + */ + suggestion?: string; + /** + * The test case resolution status id for which the task is created. + */ + testCaseResolutionStatusId?: string; + type: TaskType; +} + +/** + * Status of a task. + */ +export enum ThreadTaskStatus { + Closed = "Closed", + Open = "Open", +} + +/** + * Type of a task. + */ +export enum TaskType { + Generic = "Generic", + RequestApproval = "RequestApproval", + RequestDescription = "RequestDescription", + RequestTag = "RequestTag", + RequestTestCaseFailureResolution = "RequestTestCaseFailureResolution", + UpdateDescription = "UpdateDescription", + UpdateTag = "UpdateTag", +} + +/** + * Type of thread. + */ +export enum ThreadType { + Announcement = "Announcement", + Chatbot = "Chatbot", + Conversation = "Conversation", + Task = "Task", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/resourceDescriptor.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/resourceDescriptor.ts new file mode 100644 index 000000000000..83b8cace615a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/resourceDescriptor.ts @@ -0,0 +1,77 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Resource descriptor + */ +export interface ResourceDescriptor { + /** + * Name of the resource. For entity related resources, resource name is same as the entity + * name. Some resources such as lineage are not entities but are resources. + */ + name?: string; + /** + * List of operations supported by the resource. + */ + operations?: Operation[]; +} + +/** + * This schema defines all possible operations on metadata of entities in OpenMetadata. + */ +export enum Operation { + All = "All", + Create = "Create", + CreateIngestionPipelineAutomator = "CreateIngestionPipelineAutomator", + Delete = "Delete", + DeleteTestCaseFailedRowsSample = "DeleteTestCaseFailedRowsSample", + Deploy = "Deploy", + EditAll = "EditAll", + EditCustomFields = "EditCustomFields", + EditDataProfile = "EditDataProfile", + EditDescription = "EditDescription", + EditDisplayName = "EditDisplayName", + EditEntityRelationship = "EditEntityRelationship", + EditGlossaryTerms = "EditGlossaryTerms", + EditIngestionPipelineStatus = "EditIngestionPipelineStatus", + EditKnowledgePanel = "EditKnowledgePanel", + EditLifeCycle = "EditLifeCycle", + EditLineage = "EditLineage", + EditOwners = "EditOwners", + EditPage = "EditPage", + EditPolicy = "EditPolicy", + EditQueries = "EditQueries", + EditReviewers = "EditReviewers", + EditRole = "EditRole", + EditSampleData = "EditSampleData", + EditStatus = "EditStatus", + EditTags = "EditTags", + EditTeams = "EditTeams", + EditTests = "EditTests", + EditTier = "EditTier", + EditUsage = "EditUsage", + EditUsers = "EditUsers", + GenerateToken = "GenerateToken", + Kill = "Kill", + Trigger = "Trigger", + ViewAll = "ViewAll", + ViewBasic = "ViewBasic", + ViewDataProfile = "ViewDataProfile", + ViewProfilerGlobalConfiguration = "ViewProfilerGlobalConfiguration", + ViewQueries = "ViewQueries", + ViewSampleData = "ViewSampleData", + ViewTestCaseFailedRowsSample = "ViewTestCaseFailedRowsSample", + ViewTests = "ViewTests", + ViewUsage = "ViewUsage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/resourcePermission.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/resourcePermission.ts new file mode 100644 index 000000000000..d273d371d407 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/resourcePermission.ts @@ -0,0 +1,164 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A set of permissions for a user that shows what operation is denied, allowed, or not + * allowed for all the resources. + */ +export interface ResourcePermission { + /** + * Permissions for a `resource`. + */ + permissions: Permission[]; + /** + * Name of the resource + */ + resource: string; +} + +export interface Permission { + /** + * Access decided after evaluating rules in a policy. Note the access is defined in the + * order of precedence. + */ + access?: Access; + /** + * Operation names related to the `resource`. + */ + operation?: Operation; + /** + * Name of the policy where the `rule` is from. + */ + policy?: string; + /** + * Name of the role where the `policy` is from. If this is not role based policy, `role` is + * set to null + */ + role?: string; + /** + * Rule that matches the resource and the operation that decided the `access` as `allow` or + * `deny`. When no rule matches, the `access` is set to `notAllow`. When access can't be + * determined because all information required to match the `condition` in the rule, + * `access` is set to `conditional`. + */ + rule?: Rule; +} + +/** + * Access decided after evaluating rules in a policy. Note the access is defined in the + * order of precedence. + */ +export enum Access { + Allow = "allow", + ConditionalAllow = "conditionalAllow", + ConditionalDeny = "conditionalDeny", + Deny = "deny", + NotAllow = "notAllow", +} + +/** + * Operation names related to the `resource`. + * + * This schema defines all possible operations on metadata of entities in OpenMetadata. + */ +export enum Operation { + All = "All", + Create = "Create", + CreateIngestionPipelineAutomator = "CreateIngestionPipelineAutomator", + Delete = "Delete", + DeleteTestCaseFailedRowsSample = "DeleteTestCaseFailedRowsSample", + Deploy = "Deploy", + EditAll = "EditAll", + EditCustomFields = "EditCustomFields", + EditDataProfile = "EditDataProfile", + EditDescription = "EditDescription", + EditDisplayName = "EditDisplayName", + EditEntityRelationship = "EditEntityRelationship", + EditGlossaryTerms = "EditGlossaryTerms", + EditIngestionPipelineStatus = "EditIngestionPipelineStatus", + EditKnowledgePanel = "EditKnowledgePanel", + EditLifeCycle = "EditLifeCycle", + EditLineage = "EditLineage", + EditOwners = "EditOwners", + EditPage = "EditPage", + EditPolicy = "EditPolicy", + EditQueries = "EditQueries", + EditReviewers = "EditReviewers", + EditRole = "EditRole", + EditSampleData = "EditSampleData", + EditStatus = "EditStatus", + EditTags = "EditTags", + EditTeams = "EditTeams", + EditTests = "EditTests", + EditTier = "EditTier", + EditUsage = "EditUsage", + EditUsers = "EditUsers", + GenerateToken = "GenerateToken", + Kill = "Kill", + Trigger = "Trigger", + ViewAll = "ViewAll", + ViewBasic = "ViewBasic", + ViewDataProfile = "ViewDataProfile", + ViewProfilerGlobalConfiguration = "ViewProfilerGlobalConfiguration", + ViewQueries = "ViewQueries", + ViewSampleData = "ViewSampleData", + ViewTestCaseFailedRowsSample = "ViewTestCaseFailedRowsSample", + ViewTests = "ViewTests", + ViewUsage = "ViewUsage", +} + +/** + * Rule that matches the resource and the operation that decided the `access` as `allow` or + * `deny`. When no rule matches, the `access` is set to `notAllow`. When access can't be + * determined because all information required to match the `condition` in the rule, + * `access` is set to `conditional`. + * + * Describes an Access Control Rule for OpenMetadata Metadata Operations. All non-null user + * (subject) and entity (object) attributes are evaluated with logical AND. + */ +export interface Rule { + /** + * Expression in SpEL used for matching of a `Rule` based on entity, resource, and + * environmental attributes. + */ + condition?: string; + /** + * Description of the rule. + */ + description?: string; + effect: Effect; + /** + * FullyQualifiedName in the form `policyName.ruleName`. + */ + fullyQualifiedName?: string; + /** + * Name of this Rule. + */ + name: string; + /** + * List of operation names related to the `resources`. Use `*` to include all the operations. + */ + operations: Operation[]; + /** + * Resources/objects related to this rule. Resources are typically `entityTypes` such as + * `table`, `database`, etc. It also includes `non-entityType` resources such as `lineage`. + * Use `*` to include all the resources. + */ + resources: string[]; +} + +export enum Effect { + Allow = "allow", + Deny = "deny", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/rule.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/rule.ts new file mode 100644 index 000000000000..87503a1b2a53 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/accessControl/rule.ts @@ -0,0 +1,102 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Describes an Access Control Rule for OpenMetadata Metadata Operations. All non-null user + * (subject) and entity (object) attributes are evaluated with logical AND. + */ +export interface Rule { + /** + * Expression in SpEL used for matching of a `Rule` based on entity, resource, and + * environmental attributes. + */ + condition?: string; + /** + * Description of the rule. + */ + description?: string; + effect: Effect; + /** + * FullyQualifiedName in the form `policyName.ruleName`. + */ + fullyQualifiedName?: string; + /** + * Name of this Rule. + */ + name: string; + /** + * List of operation names related to the `resources`. Use `*` to include all the operations. + */ + operations: Operation[]; + /** + * Resources/objects related to this rule. Resources are typically `entityTypes` such as + * `table`, `database`, etc. It also includes `non-entityType` resources such as `lineage`. + * Use `*` to include all the resources. + */ + resources: string[]; +} + +export enum Effect { + Allow = "allow", + Deny = "deny", +} + +/** + * This schema defines all possible operations on metadata of entities in OpenMetadata. + */ +export enum Operation { + All = "All", + Create = "Create", + CreateIngestionPipelineAutomator = "CreateIngestionPipelineAutomator", + Delete = "Delete", + DeleteTestCaseFailedRowsSample = "DeleteTestCaseFailedRowsSample", + Deploy = "Deploy", + EditAll = "EditAll", + EditCustomFields = "EditCustomFields", + EditDataProfile = "EditDataProfile", + EditDescription = "EditDescription", + EditDisplayName = "EditDisplayName", + EditEntityRelationship = "EditEntityRelationship", + EditGlossaryTerms = "EditGlossaryTerms", + EditIngestionPipelineStatus = "EditIngestionPipelineStatus", + EditKnowledgePanel = "EditKnowledgePanel", + EditLifeCycle = "EditLifeCycle", + EditLineage = "EditLineage", + EditOwners = "EditOwners", + EditPage = "EditPage", + EditPolicy = "EditPolicy", + EditQueries = "EditQueries", + EditReviewers = "EditReviewers", + EditRole = "EditRole", + EditSampleData = "EditSampleData", + EditStatus = "EditStatus", + EditTags = "EditTags", + EditTeams = "EditTeams", + EditTests = "EditTests", + EditTier = "EditTier", + EditUsage = "EditUsage", + EditUsers = "EditUsers", + GenerateToken = "GenerateToken", + Kill = "Kill", + Trigger = "Trigger", + ViewAll = "ViewAll", + ViewBasic = "ViewBasic", + ViewDataProfile = "ViewDataProfile", + ViewProfilerGlobalConfiguration = "ViewProfilerGlobalConfiguration", + ViewQueries = "ViewQueries", + ViewSampleData = "ViewSampleData", + ViewTestCaseFailedRowsSample = "ViewTestCaseFailedRowsSample", + ViewTests = "ViewTests", + ViewUsage = "ViewUsage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/policy.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/policy.ts new file mode 100644 index 000000000000..3ca8b0a0cfb9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/policies/policy.ts @@ -0,0 +1,313 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `Policy` defines control that needs to be applied across different Data Entities. + */ +export interface Policy { + /** + * Some system policies can't be deleted + */ + allowDelete?: boolean; + /** + * Some system roles can't be edited + */ + allowEdit?: boolean; + /** + * Change that led to this version of the Policy. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * A short description of the Policy, comprehensible to regular users. + */ + description?: string; + /** + * System policy can't be deleted. Use this flag to disable them. + */ + disabled?: boolean; + /** + * Display name for this Policy. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * Is the policy enabled. + */ + enabled?: boolean; + /** + * Name that uniquely identifies a Policy. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies this Policy. + */ + id: string; + /** + * Location to which a policy is applied. This field is relevant only for `lifeCycle` + * policies. + */ + location?: EntityReference; + /** + * Name that uniquely identifies this Policy. + */ + name: string; + /** + * Owners of this Policy. + */ + owners?: EntityReference[]; + provider?: ProviderType; + /** + * Roles that use this policy. + */ + roles?: EntityReference[]; + /** + * Set of rules that the policy contains. + */ + rules: Rule[]; + /** + * Teams that use this policy directly and not through roles. + */ + teams?: EntityReference[]; + /** + * Last update time corresponding to the new version of the Policy in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the Policy. + */ + version?: number; +} + +/** + * Change that led to this version of the Policy. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Location to which a policy is applied. This field is relevant only for `lifeCycle` + * policies. + * + * Owners of this Policy. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * Set of rules that the policy contains. + * + * A set of rules associated with the Policy. + * + * Describes an Access Control Rule for OpenMetadata Metadata Operations. All non-null user + * (subject) and entity (object) attributes are evaluated with logical AND. + */ +export interface Rule { + /** + * Expression in SpEL used for matching of a `Rule` based on entity, resource, and + * environmental attributes. + */ + condition?: string; + /** + * Description of the rule. + */ + description?: string; + effect: Effect; + /** + * FullyQualifiedName in the form `policyName.ruleName`. + */ + fullyQualifiedName?: string; + /** + * Name of this Rule. + */ + name: string; + /** + * List of operation names related to the `resources`. Use `*` to include all the operations. + */ + operations: Operation[]; + /** + * Resources/objects related to this rule. Resources are typically `entityTypes` such as + * `table`, `database`, etc. It also includes `non-entityType` resources such as `lineage`. + * Use `*` to include all the resources. + */ + resources: string[]; +} + +export enum Effect { + Allow = "allow", + Deny = "deny", +} + +/** + * This schema defines all possible operations on metadata of entities in OpenMetadata. + */ +export enum Operation { + All = "All", + Create = "Create", + CreateIngestionPipelineAutomator = "CreateIngestionPipelineAutomator", + Delete = "Delete", + DeleteTestCaseFailedRowsSample = "DeleteTestCaseFailedRowsSample", + Deploy = "Deploy", + EditAll = "EditAll", + EditCustomFields = "EditCustomFields", + EditDataProfile = "EditDataProfile", + EditDescription = "EditDescription", + EditDisplayName = "EditDisplayName", + EditEntityRelationship = "EditEntityRelationship", + EditGlossaryTerms = "EditGlossaryTerms", + EditIngestionPipelineStatus = "EditIngestionPipelineStatus", + EditKnowledgePanel = "EditKnowledgePanel", + EditLifeCycle = "EditLifeCycle", + EditLineage = "EditLineage", + EditOwners = "EditOwners", + EditPage = "EditPage", + EditPolicy = "EditPolicy", + EditQueries = "EditQueries", + EditReviewers = "EditReviewers", + EditRole = "EditRole", + EditSampleData = "EditSampleData", + EditStatus = "EditStatus", + EditTags = "EditTags", + EditTeams = "EditTeams", + EditTests = "EditTests", + EditTier = "EditTier", + EditUsage = "EditUsage", + EditUsers = "EditUsers", + GenerateToken = "GenerateToken", + Kill = "Kill", + Trigger = "Trigger", + ViewAll = "ViewAll", + ViewBasic = "ViewBasic", + ViewDataProfile = "ViewDataProfile", + ViewProfilerGlobalConfiguration = "ViewProfilerGlobalConfiguration", + ViewQueries = "ViewQueries", + ViewSampleData = "ViewSampleData", + ViewTestCaseFailedRowsSample = "ViewTestCaseFailedRowsSample", + ViewTests = "ViewTests", + ViewUsage = "ViewUsage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/apiService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/apiService.ts new file mode 100644 index 000000000000..6a6b4ef8f410 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/apiService.ts @@ -0,0 +1,389 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the API Service entity, to capture metadata from any REST API + * Services. + */ +export interface APIService { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + connection?: APIConnection; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a API service instance. + */ + description?: string; + /** + * Display Name that identifies this API service. + */ + displayName?: string; + /** + * Domain the API service belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this API service. + */ + href?: string; + /** + * Unique identifier of this API service instance. + */ + id: string; + /** + * Name that identifies this API service. + */ + name: string; + /** + * Owners of this API service. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this API service to extract metadata, usage, lineage + * etc.. + */ + pipelines?: EntityReference[]; + /** + * Type of API service such as REST, WEBHOOK.. + */ + serviceType: APIServiceType; + /** + * Tags for this API Service. + */ + tags?: TagLabel[]; + /** + * Last test connection results for this service + */ + testConnectionResult?: TestConnectionResult; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * API Service Connection. + */ +export interface APIConnection { + config?: RESTConnection; +} + +/** + * REST Connection Config + */ +export interface RESTConnection { + /** + * Open API Schema URL. + */ + openAPISchemaURL: string; + /** + * Supports Metadata Extraction. + */ + supportsMetadataExtraction?: boolean; + /** + * Generated Token to connect to OpenAPI Schema. + */ + token?: string; + /** + * REST API Type + */ + type?: RESTType; +} + +/** + * REST API Type + * + * REST API type + */ +export enum RESTType { + REST = "Rest", +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the API service belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of API service such as REST, WEBHOOK.. + * + * Type of api service such as REST, Webhook,... + */ +export enum APIServiceType { + REST = "Rest", + Webhook = "WEBHOOK", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Last test connection results for this service + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/api/restConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/api/restConnection.ts new file mode 100644 index 000000000000..7c33fa7b5c72 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/api/restConnection.ts @@ -0,0 +1,44 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * REST Connection Config + */ +export interface RESTConnection { + /** + * Open API Schema URL. + */ + openAPISchemaURL: string; + /** + * Supports Metadata Extraction. + */ + supportsMetadataExtraction?: boolean; + /** + * Generated Token to connect to OpenAPI Schema. + */ + token?: string; + /** + * REST API Type + */ + type?: RESTType; +} + +/** + * REST API Type + * + * REST API type + */ +export enum RESTType { + REST = "Rest", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslCertPaths.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslCertPaths.ts new file mode 100644 index 000000000000..f07e950da6e4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslCertPaths.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SSL Certificates By Path + */ +export interface SSLCERTPaths { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslCertValues.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslCertValues.ts new file mode 100644 index 000000000000..53c7823cde9c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslCertValues.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SSL Certificates By Values + */ +export interface SSLCERTValues { + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslConfig.ts new file mode 100644 index 000000000000..63ca2556f8ba --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/common/sslConfig.ts @@ -0,0 +1,62 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SSL Config + */ +export interface SSLConfig { + /** + * SSL Certificates + */ + certificates?: SSLCertificates; + [property: string]: any; +} + +/** + * SSL Certificates + * + * SSL Certificates By Path + * + * SSL Certificates By Values + */ +export interface SSLCertificates { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/customDashboardConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/customDashboardConnection.ts new file mode 100644 index 000000000000..7aa9a40d1fba --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/customDashboardConnection.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom Dashboard Service connection to build a source that is not supported by + * OpenMetadata yet. + */ +export interface CustomDashboardConnection { + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Custom dashboard service type + */ + type: ServiceType; +} + +/** + * Custom dashboard service type + */ +export enum ServiceType { + CustomDashboard = "CustomDashboard", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/domoDashboardConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/domoDashboardConnection.ts new file mode 100644 index 000000000000..56cdf1703be9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/domoDashboardConnection.ts @@ -0,0 +1,53 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Domo Dashboard Connection Config + */ +export interface DomoDashboardConnection { + /** + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + */ + clientId: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain: string; + /** + * Secret Token to connect DOMO + */ + secretToken: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: DomoDashboardType; +} + +/** + * Service Type + * + * service type + */ +export enum DomoDashboardType { + DomoDashboard = "DomoDashboard", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/lightdashConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/lightdashConnection.ts new file mode 100644 index 000000000000..78fc2e7fadbb --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/lightdashConnection.ts @@ -0,0 +1,53 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Lightdash Connection Config + */ +export interface LightdashConnection { + /** + * The personal access token you can generate in the Lightdash app under the user settings + */ + apiKey: string; + /** + * Address for your running Lightdash instance + */ + hostPort: string; + /** + * The Project UUID for your Lightdash instance + */ + projectUUID: string; + /** + * Use if your Lightdash instance is behind a proxy like (Cloud IAP) + */ + proxyAuthentication?: string; + /** + * The Space UUID for your Lightdash instance + */ + spaceUUID: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: LightdashType; +} + +/** + * Service Type + * + * Lightdash service type + */ +export enum LightdashType { + Lightdash = "Lightdash", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/lookerConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/lookerConnection.ts new file mode 100644 index 000000000000..2743c3127a82 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/lookerConnection.ts @@ -0,0 +1,92 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Looker Connection Config + */ +export interface LookerConnection { + /** + * User's Client ID. This user should have privileges to read all the metadata in Looker. + */ + clientId: string; + /** + * User's Client Secret. + */ + clientSecret: string; + /** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + */ + gitCredentials?: GitHubCredentials; + /** + * URL to the Looker instance. + */ + hostPort: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: LookerType; +} + +/** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + * + * Do not set any credentials. Note that credentials are required to extract .lkml views and + * their lineage. + * + * Credentials for a GitHub repository + * + * Credentials for a BitBucket repository + * + * Credentials for a Gitlab repository + */ +export interface GitHubCredentials { + repositoryName?: string; + repositoryOwner?: string; + token?: string; + /** + * Credentials Type + */ + type?: Type; + /** + * Main production branch of the repository. E.g., `main` + */ + branch?: string; +} + +/** + * Credentials Type + * + * GitHub Credentials type + * + * BitBucket Credentials type + * + * Gitlab Credentials type + */ +export enum Type { + BitBucket = "BitBucket", + GitHub = "GitHub", + Gitlab = "Gitlab", +} + +/** + * Service Type + * + * Looker service type + */ +export enum LookerType { + Looker = "Looker", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/metabaseConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/metabaseConnection.ts new file mode 100644 index 000000000000..4161b7f5c17c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/metabaseConnection.ts @@ -0,0 +1,46 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Metabase Connection Config + */ +export interface MetabaseConnection { + /** + * Host and Port of the Metabase instance. + */ + hostPort: string; + /** + * Password to connect to Metabase. + */ + password?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: MetabaseType; + /** + * Username to connect to Metabase. This user should have privileges to read all the + * metadata in Metabase. + */ + username: string; +} + +/** + * Service Type + * + * Metabase service type + */ +export enum MetabaseType { + Metabase = "Metabase", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/microStrategyConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/microStrategyConnection.ts new file mode 100644 index 000000000000..29869300cca6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/microStrategyConnection.ts @@ -0,0 +1,57 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * MicroStrategy Connection Config + */ +export interface MicroStrategyConnection { + /** + * Host and Port of the MicroStrategy instance. + */ + hostPort: string; + /** + * Login Mode for Microstrategy's REST API connection. You can authenticate with one of the + * following authentication modes: `Standard (1)`, `Anonymous (8)`. Default will be + * `Standard (1)`. If you're using demo account for Microstrategy, it will be needed to + * authenticate through loginMode `8`. + */ + loginMode?: string; + /** + * Password to connect to MicroStrategy. + */ + password: string; + /** + * MicroStrategy Project Name + */ + projectName?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: MicroStrategyType; + /** + * Username to connect to MicroStrategy. This user should have privileges to read all the + * metadata in MicroStrategy. + */ + username: string; +} + +/** + * Service Type + * + * MicroStrategy service type + */ +export enum MicroStrategyType { + MicroStrategy = "MicroStrategy", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/modeConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/modeConnection.ts new file mode 100644 index 000000000000..6e0c7ff180ae --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/modeConnection.ts @@ -0,0 +1,53 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Mode Connection Config + */ +export interface ModeConnection { + /** + * Access Token for Mode Dashboard + */ + accessToken: string; + /** + * Access Token Password for Mode Dashboard + */ + accessTokenPassword: string; + /** + * Filter query parameter for some of the Mode API calls + */ + filterQueryParam?: string; + /** + * URL for the mode instance. + */ + hostPort?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: ModeType; + /** + * Mode Workspace Name + */ + workspaceName: string; +} + +/** + * Service Type + * + * Mode service type + */ +export enum ModeType { + Mode = "Mode", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerBIConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerBIConnection.ts new file mode 100644 index 000000000000..f4055d117dcc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerBIConnection.ts @@ -0,0 +1,303 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * PowerBI Connection Config + */ +export interface PowerBIConnection { + /** + * Authority URI for the PowerBI service. + */ + authorityURI?: string; + /** + * client_id for PowerBI. + */ + clientId: string; + /** + * clientSecret for PowerBI. + */ + clientSecret: string; + /** + * Dashboard URL for PowerBI service. + */ + hostPort?: string; + /** + * Entity Limit set here will be used to paginate the PowerBi APIs + */ + pagination_entity_per_page?: number; + /** + * Source to get the .pbit files to extract lineage information + */ + pbitFilesSource?: PowerBIPbitFilesSource; + /** + * PowerBI secrets. + */ + scope?: string[]; + supportsMetadataExtraction?: boolean; + /** + * Tenant ID for PowerBI. + */ + tenantId: string; + /** + * Service Type + */ + type?: PowerBIType; + /** + * Fetch the PowerBI metadata using admin APIs + */ + useAdminApis?: boolean; +} + +/** + * Source to get the .pbit files to extract lineage information + * + * Local config source where no extra information needs to be sent. + * + * Azure storage config for pbit files + * + * GCS storage config for pbit files + * + * S3 storage config for pbit files + */ +export interface PowerBIPbitFilesSource { + /** + * Directory path for the pbit files + */ + path?: string; + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig?: Credentials; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Azure = "azure", + Gcs = "gcs", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * Azure Cloud Credentials + * + * GCP credentials configs. + * + * AWS credentials configs. + */ +export interface Credentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * PowerBI service type + */ +export enum PowerBIType { + PowerBI = "PowerBI", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerBIReportServerConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerBIReportServerConnection.ts new file mode 100644 index 000000000000..e5fbd11ce692 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerBIReportServerConnection.ts @@ -0,0 +1,49 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * PowerBIReportServer Connection Config + */ +export interface PowerBIReportServerConnection { + /** + * Dashboard URL for PowerBI Report Server. + */ + hostPort: string; + /** + * Password to connect to PowerBI report server. + */ + password: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: PowerBIReportServerType; + /** + * Username to connect to PowerBI report server. + */ + username: string; + /** + * Web Portal Virtual Directory Name. + */ + webPortalVirtualDirectory?: string; +} + +/** + * Service Type + * + * PowerBIReportServer service type + */ +export enum PowerBIReportServerType { + PowerBIReportServer = "PowerBIReportServer", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/azureConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/azureConfig.ts new file mode 100644 index 000000000000..b7a093069262 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/azureConfig.ts @@ -0,0 +1,81 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Azure storage config for pbit files + */ +export interface AzureConfig { + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig: AzureCredentials; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Azure = "azure", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/bucketDetails.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/bucketDetails.ts new file mode 100644 index 000000000000..b7eaaf6fba28 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/bucketDetails.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/gcsConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/gcsConfig.ts new file mode 100644 index 000000000000..91138d8c465e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/gcsConfig.ts @@ -0,0 +1,164 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * GCS storage config for pbit files + */ +export interface GcsConfig { + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig: GCPCredentials; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Gcs = "gcs", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/s3Config.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/s3Config.ts new file mode 100644 index 000000000000..86714820f140 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/powerbi/s3Config.ts @@ -0,0 +1,97 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * S3 storage config for pbit files + */ +export interface S3Config { + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig: AWSCredentials; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + S3 = "s3", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/qlikCloudConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/qlikCloudConnection.ts new file mode 100644 index 000000000000..e6ae506618a0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/qlikCloudConnection.ts @@ -0,0 +1,41 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Qlik Cloud Connection Config + */ +export interface QlikCloudConnection { + /** + * Host and Port of the Qlik Cloud instance. + */ + hostPort: string; + supportsMetadataExtraction?: boolean; + /** + * token to connect to Qlik Cloud. + */ + token: string; + /** + * Service Type + */ + type?: QlikCloudType; +} + +/** + * Service Type + * + * Qlik Cloud service type + */ +export enum QlikCloudType { + QlikCloud = "QlikCloud", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/qlikSenseConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/qlikSenseConnection.ts new file mode 100644 index 000000000000..10e70fad606f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/qlikSenseConnection.ts @@ -0,0 +1,96 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Qlik Sense Connection Config + */ +export interface QlikSenseConnection { + certificates: QlikCertificatesBy; + /** + * Qlik Sense Base URL, used for genrating dashboard & chat url + */ + displayUrl?: string; + /** + * URL for the Qlik instance. + */ + hostPort: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: QlikSenseType; + /** + * User Directory. + */ + userDirectory?: string; + /** + * User ID. + */ + userId?: string; + /** + * Validate Host Name + */ + validateHostName?: boolean; +} + +/** + * Qlik Authentication Certificate By Values + * + * Qlik Authentication Certificate File Path + */ +export interface QlikCertificatesBy { + sslConfig?: Config; + /** + * Client Certificate + */ + clientCertificate?: string; + /** + * Client Key Certificate. + */ + clientKeyCertificate?: string; + /** + * Root Certificate. + */ + rootCertificate?: string; + [property: string]: any; +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * Qlik sense service type + */ +export enum QlikSenseType { + QlikSense = "QlikSense", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/quickSightConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/quickSightConnection.ts new file mode 100644 index 000000000000..2f49ee64db3e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/quickSightConnection.ts @@ -0,0 +1,102 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * QuickSight Connection Config + */ +export interface QuickSightConnection { + /** + * AWS Account ID + */ + awsAccountId: string; + awsConfig: AWSCredentials; + /** + * The authentication method that the user uses to sign in. + */ + identityType?: IdentityType; + /** + * The Amazon QuickSight namespace that contains the dashboard IDs in this request ( To be + * provided when identityType is `ANONYMOUS` ) + */ + namespace?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: QuickSightType; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * The authentication method that the user uses to sign in. + */ +export enum IdentityType { + Anonymous = "ANONYMOUS", + Iam = "IAM", + Quicksight = "QUICKSIGHT", +} + +/** + * Service Type + * + * QuickSight service type + */ +export enum QuickSightType { + QuickSight = "QuickSight", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/redashConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/redashConnection.ts new file mode 100644 index 000000000000..ac8f06c62231 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/redashConnection.ts @@ -0,0 +1,49 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Redash Connection Config + */ +export interface RedashConnection { + /** + * API key of the redash instance to access. + */ + apiKey: string; + /** + * URL for the Redash instance + */ + hostPort: string; + /** + * Version of the Redash instance + */ + redashVersion?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: RedashType; + /** + * Username for Redash + */ + username: string; +} + +/** + * Service Type + * + * Redash service type + */ +export enum RedashType { + Redash = "Redash", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/sigmaConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/sigmaConnection.ts new file mode 100644 index 000000000000..92028af0fa84 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/sigmaConnection.ts @@ -0,0 +1,48 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Sigma Connection Config + */ +export interface SigmaConnection { + /** + * Sigma API version. + */ + apiVersion?: string; + /** + * client_id for Sigma. + */ + clientId: string; + /** + * clientSecret for Sigma. + */ + clientSecret: string; + /** + * Sigma API url. + */ + hostPort: string; + /** + * Service Type + */ + type?: SigmaType; +} + +/** + * Service Type + * + * Sigma service type + */ +export enum SigmaType { + Sigma = "Sigma", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/supersetConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/supersetConnection.ts new file mode 100644 index 000000000000..7adeec5cd720 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/supersetConnection.ts @@ -0,0 +1,378 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Superset Connection Config + */ +export interface SupersetConnection { + /** + * Choose between API or database connection fetch metadata from superset. + */ + connection: SupersetConnectionClass; + /** + * URL for the superset instance. + */ + hostPort: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: SupersetType; +} + +/** + * Choose between API or database connection fetch metadata from superset. + * + * Superset API Connection Config + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface SupersetConnectionClass { + /** + * Password for Superset. + */ + password?: string; + /** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ + provider?: Provider; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + /** + * Username for Superset. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username: string; + verifySSL?: VerifySSL; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: Type; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ +export enum Provider { + DB = "db", + LDAP = "ldap", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Configuration details. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum Type { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Service Type + * + * Superset service type + */ +export enum SupersetType { + Superset = "Superset", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/tableauConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/tableauConnection.ts new file mode 100644 index 000000000000..473bfd006167 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/dashboard/tableauConnection.ts @@ -0,0 +1,118 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Tableau Connection Config + */ +export interface TableauConnection { + /** + * Tableau API version. + */ + apiVersion: string; + /** + * Types of methods used to authenticate to the tableau instance + */ + authType?: AuthenticationTypeForTableau; + /** + * Tableau Environment Name. + */ + env: string; + /** + * Tableau Server. + */ + hostPort: string; + /** + * Pagination limit used while querying the tableau metadata API for getting data sources + */ + paginationLimit?: number; + /** + * Tableau Site Name. + */ + siteName?: string; + /** + * Tableau Site Url. + */ + siteUrl?: string; + sslConfig?: Config; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: TableauType; + verifySSL?: VerifySSL; +} + +/** + * Types of methods used to authenticate to the tableau instance + * + * Basic Auth Credentials + * + * Access Token Auth Credentials + */ +export interface AuthenticationTypeForTableau { + /** + * Password to access the service. + */ + password?: string; + /** + * Username to access the service. + */ + username?: string; + /** + * Personal Access Token Name. + */ + personalAccessTokenName?: string; + /** + * Personal Access Token Secret. + */ + personalAccessTokenSecret?: string; +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * Tableau service type + */ +export enum TableauType { + Tableau = "Tableau", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/athenaConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/athenaConnection.ts new file mode 100644 index 000000000000..4273466a6fc5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/athenaConnection.ts @@ -0,0 +1,197 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * AWS Athena Connection Config + */ +export interface AthenaConnection { + awsConfig: AWSCredentials; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * S3 Staging Directory. Example: s3://postgres/input/ + */ + s3StagingDir: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: AthenaScheme; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + /** + * Supports Lineage Extraction. + */ + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + /** + * Supports Usage Extraction. + */ + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: AthenaType; + /** + * Athena workgroup. + */ + workgroup: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum AthenaScheme { + AwsathenaREST = "awsathena+rest", +} + +/** + * Service Type + * + * Service type. + */ +export enum AthenaType { + Athena = "Athena", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/azureSQLConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/azureSQLConnection.ts new file mode 100644 index 000000000000..1728aeeb1b10 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/azureSQLConnection.ts @@ -0,0 +1,193 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Azure SQL Connection Config + */ +export interface AzureSQLConnection { + /** + * This parameter determines the mode of authentication for connecting to AzureSQL using + * ODBC. If 'Active Directory Password' is selected, you need to provide the password. If + * 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with AzureSQL. + */ + authenticationMode?: any[] | boolean | number | number | null | AuthenticationModeObject | string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database: string; + /** + * SQLAlchemy driver for AzureSQL. + */ + driver?: string; + /** + * Host and port of the AzureSQL service. + */ + hostPort: string; + /** + * Ingest data from all databases in Azuresql. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + /** + * Password to connect to AzureSQL. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: AzureSQLScheme; + supportsDatabase?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: AzureSQLType; + /** + * Username to connect to AzureSQL. This user should have privileges to read the metadata. + */ + username: string; +} + +export interface AuthenticationModeObject { + /** + * Authentication from Connection String for AzureSQL. + */ + authentication?: Authentication; + /** + * Connection Timeout from Connection String for AzureSQL. + */ + connectionTimeout?: number; + /** + * Encrypt from Connection String for AzureSQL. + */ + encrypt?: boolean; + /** + * Trust Server Certificate from Connection String for AzureSQL. + */ + trustServerCertificate?: boolean; + [property: string]: any; +} + +/** + * Authentication from Connection String for AzureSQL. + */ +export enum Authentication { + ActiveDirectoryIntegrated = "ActiveDirectoryIntegrated", + ActiveDirectoryPassword = "ActiveDirectoryPassword", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum AzureSQLScheme { + MssqlPyodbc = "mssql+pyodbc", +} + +/** + * Service Type + * + * Service type. + */ +export enum AzureSQLType { + AzureSQL = "AzureSQL", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/bigQueryConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/bigQueryConnection.ts new file mode 100644 index 000000000000..3ae5002adbcc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/bigQueryConnection.ts @@ -0,0 +1,270 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Google BigQuery Connection Config + */ +export interface BigQueryConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * GCP Credentials + */ + credentials: GCPCredentials; + /** + * BigQuery APIs URL. + */ + hostPort?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: BigqueryScheme; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + supportsUsageExtraction?: boolean; + /** + * Taxonomy location used to fetch policy tags + */ + taxonomyLocation?: string; + /** + * Project IDs used to fetch policy tags + */ + taxonomyProjectID?: string[]; + /** + * Service Type + */ + type?: BigqueryType; + /** + * Location used to query INFORMATION_SCHEMA.JOBS_BY_PROJECT to fetch usage data. You can + * pass multi-regions, such as `us` or `eu`, or you specific region. Australia and Asia + * multi-regions are not yet in GA. + */ + usageLocation?: string; +} + +/** + * GCP Credentials + * + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum BigqueryScheme { + Bigquery = "bigquery", +} + +/** + * Service Type + * + * Service type. + */ +export enum BigqueryType { + BigQuery = "BigQuery", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/bigTableConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/bigTableConnection.ts new file mode 100644 index 000000000000..eeba4b69041c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/bigTableConnection.ts @@ -0,0 +1,155 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Google BigTable Connection Config + */ +export interface BigTableConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * GCP Credentials + */ + credentials: GCPCredentials; + supportsDatabase?: boolean; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: BigtableType; +} + +/** + * GCP Credentials + * + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * Service type. + */ +export enum BigtableType { + BigTable = "BigTable", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/clickhouseConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/clickhouseConnection.ts new file mode 100644 index 000000000000..4c4e32d2b0e4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/clickhouseConnection.ts @@ -0,0 +1,171 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Clickhouse Connection Config + */ +export interface ClickhouseConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Clickhouse SQL connection duration. + */ + duration?: number; + /** + * Host and port of the Clickhouse service. + */ + hostPort: string; + /** + * Use HTTPS Protocol for connection with clickhouse + */ + https?: boolean; + /** + * Path to key file for establishing secure connection + */ + keyfile?: string; + /** + * Password to connect to Clickhouse. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: ClickhouseScheme; + /** + * Establish secure connection with clickhouse + */ + secure?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: ClickhouseType; + /** + * Username to connect to Clickhouse. This user should have privileges to read all the + * metadata in Clickhouse. + */ + username?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum ClickhouseScheme { + ClickhouseHTTP = "clickhouse+http", + ClickhouseNative = "clickhouse+native", +} + +/** + * Service Type + * + * Service type. + */ +export enum ClickhouseType { + Clickhouse = "Clickhouse", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/azureConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/azureConfig.ts new file mode 100644 index 000000000000..c11258c90c0c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/azureConfig.ts @@ -0,0 +1,50 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Azure Database Connection Config + */ +export interface AzureConfig { + azureConfig?: AzureCredentials; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/basicAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/basicAuth.ts new file mode 100644 index 000000000000..c905ebb156d7 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/basicAuth.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Common Database Connection Config + */ +export interface BasicAuth { + /** + * Password to connect to source. + */ + password?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/iamAuthConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/iamAuthConfig.ts new file mode 100644 index 000000000000..6a201b466bac --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/iamAuthConfig.ts @@ -0,0 +1,66 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * IAM Auth Database Connection Config + */ +export interface IamAuthConfig { + awsConfig?: AWSCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/jwtAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/jwtAuth.ts new file mode 100644 index 000000000000..cb7773826eb1 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/jwtAuth.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Common Database Connection Config + */ +export interface JwtAuth { + /** + * JWT to connect to source. + */ + jwt?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/noConfigAuthenticationTypes.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/noConfigAuthenticationTypes.ts new file mode 100644 index 000000000000..ea42ede06dbf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/common/noConfigAuthenticationTypes.ts @@ -0,0 +1,20 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Database Authentication types not requiring config. + */ +export enum NoConfigAuthenticationTypes { + OAuth2 = "OAuth2", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/couchbaseConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/couchbaseConnection.ts new file mode 100644 index 000000000000..bf634e63af90 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/couchbaseConnection.ts @@ -0,0 +1,61 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Couchbase Connection Config + */ +export interface CouchbaseConnection { + /** + * Couchbase connection Bucket options. + */ + bucket?: string; + /** + * Hostname of the Couchbase service. + */ + hostport: string; + /** + * Password to connect to Couchbase. + */ + password: string; + /** + * Couchbase driver scheme options. + */ + scheme?: CouchbaseScheme; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: CouchbaseType; + /** + * Username to connect to Couchbase. This user should have privileges to read all the + * metadata in Couchbase. + */ + username: string; +} + +/** + * Couchbase driver scheme options. + */ +export enum CouchbaseScheme { + Couchbase = "couchbase", +} + +/** + * Service Type + * + * Service type. + */ +export enum CouchbaseType { + Couchbase = "Couchbase", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/customDatabaseConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/customDatabaseConnection.ts new file mode 100644 index 000000000000..97d34d648cd0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/customDatabaseConnection.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom Database Service connection to build a source that is not supported by + * OpenMetadata yet. + */ +export interface CustomDatabaseConnection { + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Custom database service type + */ + type: ServiceType; +} + +/** + * Custom database service type + */ +export enum ServiceType { + CustomDatabase = "CustomDatabase", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/databricksConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/databricksConnection.ts new file mode 100644 index 000000000000..aa93f5804f91 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/databricksConnection.ts @@ -0,0 +1,161 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Databricks Connection Config + */ +export interface DatabricksConnection { + /** + * Catalog of the data source(Example: hive_metastore). This is optional parameter, if you + * would like to restrict the metadata reading to a single catalog. When left blank, + * OpenMetadata Ingestion attempts to scan all the catalog. + */ + catalog?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * The maximum amount of time (in seconds) to wait for a successful connection to the data + * source. If the connection attempt takes longer than this timeout period, an error will be + * returned. + */ + connectionTimeout?: number; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Databricks service. + */ + hostPort: string; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: DatabricksScheme; + supportsDatabase?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Generated Token to connect to Databricks. + */ + token: string; + /** + * Service Type + */ + type?: DatabricksType; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum DatabricksScheme { + DatabricksConnector = "databricks+connector", +} + +/** + * Service Type + * + * Service type. + */ +export enum DatabricksType { + Databricks = "Databricks", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/azureConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/azureConfig.ts new file mode 100644 index 000000000000..4d08369b3999 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/azureConfig.ts @@ -0,0 +1,50 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Azure Datalake Storage will ingest files in container + */ +export interface AzureConfig { + securityConfig?: AzureCredentials; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/gcsConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/gcsConfig.ts new file mode 100644 index 000000000000..000c696e9ade --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/gcsConfig.ts @@ -0,0 +1,133 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DataLake GCS storage will ingest metadata of files + */ +export interface GcsConfig { + securityConfig?: GCPCredentials; +} + +/** + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/s3Config.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/s3Config.ts new file mode 100644 index 000000000000..e4e2265dbd81 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalake/s3Config.ts @@ -0,0 +1,66 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface S3Config { + securityConfig?: AWSCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalakeConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalakeConnection.ts new file mode 100644 index 000000000000..2463fe79e29e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/datalakeConnection.ts @@ -0,0 +1,328 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Datalake Connection Config + */ +export interface DatalakeConnection { + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Available sources to fetch files. + */ + configSource: DataLakeConfigurationSource; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + /** + * Service Type + */ + type?: DatalakeType; +} + +/** + * Available sources to fetch files. + * + * Local config source where no extra information needs to be sent. + * + * Azure Datalake Storage will ingest files in container + * + * DataLake GCS storage will ingest metadata of files + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface DataLakeConfigurationSource { + securityConfig?: Credentials; +} + +/** + * Azure Cloud Credentials + * + * GCP credentials configs. + * + * AWS credentials configs. + */ +export interface Credentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum DatalakeType { + Datalake = "Datalake", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/db2Connection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/db2Connection.ts new file mode 100644 index 000000000000..ad0c4e962a3d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/db2Connection.ts @@ -0,0 +1,148 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Db2 Connection Config + */ +export interface Db2Connection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. + */ + database: string; + /** + * Host and port of the DB2 service. + */ + hostPort: string; + /** + * Password to connect to DB2. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Db2Scheme; + supportsDatabase?: boolean; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Service Type + */ + type?: Db2Type; + /** + * Username to connect to DB2. This user should have privileges to read all the metadata in + * DB2. + */ + username: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Db2Scheme { + Db2IBMDB = "db2+ibm_db", + Ibmi = "ibmi", +} + +/** + * Service Type + * + * Service type. + */ +export enum Db2Type { + Db2 = "Db2", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltaLakeConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltaLakeConnection.ts new file mode 100644 index 000000000000..83503f034992 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltaLakeConnection.ts @@ -0,0 +1,165 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DeltaLake Database Connection Config + */ +export interface DeltaLakeConnection { + /** + * Available sources to fetch the metadata. + */ + configSource: DeltaLakeConfigurationSource; + /** + * If using Metastore, Key-Value pairs that will be used to add configs to the SparkSession. + */ + connectionArguments?: { [key: string]: any }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: DeltaLakeType; +} + +/** + * Available sources to fetch the metadata. + * + * Deltalake Metastore configuration. + * + * DeltaLake Storage Connection Config + */ +export interface DeltaLakeConfigurationSource { + /** + * pySpark App Name. + */ + appName?: string; + /** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + */ + connection: Connection; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; +} + +/** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface Connection { + /** + * Thrift connection to the metastore service. E.g., localhost:9083 + */ + metastoreHostPort?: string; + /** + * Driver class name for JDBC metastore. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionDriverName sparks property. E.g., + * org.mariadb.jdbc.Driver + */ + driverName?: string; + /** + * Class path to JDBC driver required for JDBC connection. The value will be mapped as + * spark.driver.extraClassPath sparks property. + */ + jdbcDriverClassPath?: string; + /** + * JDBC connection to the metastore database. E.g., jdbc:mysql://localhost:3306/demo_hive + */ + metastoreDb?: string; + /** + * Password to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionPassword sparks property. + */ + password?: string; + /** + * Username to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionUserName sparks property. + */ + username?: string; + /** + * Local path for the local file with metastore data. E.g., /tmp/metastore.db + */ + metastoreFilePath?: string; + securityConfig?: AWSCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum DeltaLakeType { + DeltaLake = "DeltaLake", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltalake/metastoreConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltalake/metastoreConfig.ts new file mode 100644 index 000000000000..374fa3939f6e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltalake/metastoreConfig.ts @@ -0,0 +1,66 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Deltalake Metastore configuration. + */ +export interface MetastoreConfig { + /** + * pySpark App Name. + */ + appName?: string; + /** + * Metastore connection configuration, depending on your metastore type. + */ + connection: Connection; +} + +/** + * Metastore connection configuration, depending on your metastore type. + */ +export interface Connection { + /** + * Thrift connection to the metastore service. E.g., localhost:9083 + */ + metastoreHostPort?: string; + /** + * Driver class name for JDBC metastore. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionDriverName sparks property. E.g., + * org.mariadb.jdbc.Driver + */ + driverName?: string; + /** + * Class path to JDBC driver required for JDBC connection. The value will be mapped as + * spark.driver.extraClassPath sparks property. + */ + jdbcDriverClassPath?: string; + /** + * JDBC connection to the metastore database. E.g., jdbc:mysql://localhost:3306/demo_hive + */ + metastoreDb?: string; + /** + * Password to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionPassword sparks property. + */ + password?: string; + /** + * Username to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionUserName sparks property. + */ + username?: string; + /** + * Local path for the local file with metastore data. E.g., /tmp/metastore.db + */ + metastoreFilePath?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltalake/storageConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltalake/storageConfig.ts new file mode 100644 index 000000000000..408992417e3e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/deltalake/storageConfig.ts @@ -0,0 +1,86 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DeltaLake Storage Connection Config + */ +export interface StorageConfig { + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Available sources to fetch files. + */ + connection: DeltaLakeStorageConfigurationSource; + /** + * Prefix of the data source. + */ + prefix?: string; +} + +/** + * Available sources to fetch files. + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface DeltaLakeStorageConfigurationSource { + securityConfig?: AWSCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/domoDatabaseConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/domoDatabaseConnection.ts new file mode 100644 index 000000000000..9d99dac450d3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/domoDatabaseConnection.ts @@ -0,0 +1,58 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Domo Database Connection Config + */ +export interface DomoDatabaseConnection { + /** + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + */ + clientId: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain: string; + /** + * Secret Token to connect DOMO + */ + secretToken: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: DomoDatabaseType; +} + +/** + * Service Type + * + * service type + */ +export enum DomoDatabaseType { + DomoDatabase = "DomoDatabase", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/dorisConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/dorisConnection.ts new file mode 100644 index 000000000000..b3a83b4e900a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/dorisConnection.ts @@ -0,0 +1,99 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Doris Database Connection Config + */ +export interface DorisConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Doris service. + */ + hostPort: string; + /** + * Password to connect to Doris. + */ + password?: string; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: DorisScheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + /** + * Service Type + */ + type?: DorisType; + /** + * Username to connect to Doris. This user should have privileges to read all the metadata + * in Doris. + */ + username: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum DorisScheme { + Doris = "doris", +} + +/** + * SSL Configuration details. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum DorisType { + Doris = "Doris", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/druidConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/druidConnection.ts new file mode 100644 index 000000000000..703a4d5d6f06 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/druidConnection.ts @@ -0,0 +1,147 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Druid Connection Config + */ +export interface DruidConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Host and port of the Druid service. + */ + hostPort: string; + /** + * Password to connect to Druid. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: DruidScheme; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Service Type + */ + type?: DruidType; + /** + * Username to connect to Druid. This user should have privileges to read all the metadata + * in Druid. + */ + username?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum DruidScheme { + Druid = "druid", +} + +/** + * Service Type + * + * Service type. + */ +export enum DruidType { + Druid = "Druid", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/dynamoDBConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/dynamoDBConnection.ts new file mode 100644 index 000000000000..fc181a3dc7bf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/dynamoDBConnection.ts @@ -0,0 +1,88 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DynamoDB Connection Config + */ +export interface DynamoDBConnection { + awsConfig: AWSCredentials; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + /** + * Service Type + */ + type?: DynamoDBType; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum DynamoDBType { + DynamoDB = "DynamoDB", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/exasolConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/exasolConnection.ts new file mode 100644 index 000000000000..f6cca2feb755 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/exasolConnection.ts @@ -0,0 +1,72 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Exasol Database Connection Config + */ +export interface ExasolConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Host and port of the source service. + */ + hostPort: string; + /** + * Password to connect to Exasol. + */ + password: string; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: ExasolScheme; + supportsMetadataExtraction?: boolean; + /** + * Client SSL/TLS settings. + */ + tls?: SSLTLSSettings; + /** + * Service Type + */ + type?: ExasolType; + /** + * Username to connect to Exasol. This user should have privileges to read all the metadata + * in Exasol. + */ + username: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum ExasolScheme { + ExaWebsocket = "exa+websocket", +} + +/** + * Client SSL/TLS settings. + */ +export enum SSLTLSSettings { + DisableTLS = "disable-tls", + IgnoreCertificate = "ignore-certificate", + ValidateCertificate = "validate-certificate", +} + +/** + * Service Type + * + * Service type. + */ +export enum ExasolType { + Exasol = "Exasol", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/glueConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/glueConnection.ts new file mode 100644 index 000000000000..c5a11aaac5f0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/glueConnection.ts @@ -0,0 +1,88 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Glue Connection Config + */ +export interface GlueConnection { + awsConfig: AWSCredentials; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: GlueType; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum GlueType { + Glue = "Glue", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/greenplumConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/greenplumConnection.ts new file mode 100644 index 000000000000..49b76090b411 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/greenplumConnection.ts @@ -0,0 +1,249 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Greenplum Database Connection Config + */ +export interface GreenplumConnection { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database: string; + /** + * Host and port of the source service. + */ + hostPort: string; + /** + * Ingest data from all databases in Greenplum. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: GreenplumScheme; + sslConfig?: Config; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Service Type + */ + type?: GreenplumType; + /** + * Username to connect to Greenplum. This user should have privileges to read all the + * metadata in Greenplum. + */ + username: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum GreenplumScheme { + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum GreenplumType { + Greenplum = "Greenplum", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/hiveConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/hiveConnection.ts new file mode 100644 index 000000000000..267f5e8cf9ec --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/hiveConnection.ts @@ -0,0 +1,410 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Hive SQL Connection Config + */ +export interface HiveConnection { + /** + * Authentication mode to connect to hive. + */ + auth?: AuthenticationMode; + /** + * Authentication options to pass to Hive connector. These options are based on SQLAlchemy. + */ + authOptions?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Hive service. + */ + hostPort: string; + /** + * If authenticating with Kerberos specify the Kerberos service name + */ + kerberosServiceName?: string; + /** + * Hive Metastore Connection Details + */ + metastoreConnection?: HiveMetastoreConnectionDetails; + /** + * Password to connect to Hive. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: HiveScheme; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Service Type + */ + type?: HiveType; + /** + * Username to connect to Hive. This user should have privileges to read all the metadata in + * Hive. + */ + username?: string; +} + +/** + * Authentication mode to connect to hive. + */ +export enum AuthenticationMode { + Basic = "BASIC", + Custom = "CUSTOM", + Gssapi = "GSSAPI", + Jwt = "JWT", + Kerberos = "KERBEROS", + LDAP = "LDAP", + None = "NONE", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Hive Metastore Connection Details + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface HiveMetastoreConnectionDetails { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: Type; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum Type { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum HiveScheme { + Hive = "hive", + HiveHTTP = "hive+http", + HiveHTTPS = "hive+https", +} + +/** + * Service Type + * + * Service type. + */ +export enum HiveType { + Hive = "Hive", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.ts new file mode 100644 index 000000000000..1274bcc6caf2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.ts @@ -0,0 +1,70 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Iceberg DynamoDB Catalog configuration. + */ +export interface DynamoDBCatalogConnection { + awsConfig: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/glueCatalogConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/glueCatalogConnection.ts new file mode 100644 index 000000000000..87c502342faf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/glueCatalogConnection.ts @@ -0,0 +1,66 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Iceberg Glue Catalog configuration. + */ +export interface GlueCatalogConnection { + awsConfig: AWSCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/hiveCatalogConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/hiveCatalogConnection.ts new file mode 100644 index 000000000000..510eb5c94040 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/hiveCatalogConnection.ts @@ -0,0 +1,103 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Iceberg Hive Catalog configuration. + */ +export interface HiveCatalogConnection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + */ + uri: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/icebergCatalog.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/icebergCatalog.ts new file mode 100644 index 000000000000..27257b3afea2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/icebergCatalog.ts @@ -0,0 +1,251 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Iceberg Catalog configuration. + */ +export interface IcebergCatalog { + /** + * Catalog connection configuration, depending on your catalog type. + */ + connection: Connection; + /** + * Custom Database Name for your Iceberg Service. If not set it will be 'default'. + */ + databaseName?: string; + /** + * Catalog Name. + */ + name: string; + /** + * Warehouse Location. Used to specify a custom warehouse location if needed. + */ + warehouseLocation?: string; +} + +/** + * Catalog connection configuration, depending on your catalog type. + * + * Iceberg Hive Catalog configuration. + * + * Iceberg REST Catalog configuration. + * + * Iceberg Glue Catalog configuration. + * + * Iceberg DynamoDB Catalog configuration. + */ +export interface Connection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + * + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri?: string; + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + awsConfig?: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/icebergFileSystem.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/icebergFileSystem.ts new file mode 100644 index 000000000000..96505076f96c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/icebergFileSystem.ts @@ -0,0 +1,92 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/restCatalogConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/restCatalogConnection.ts new file mode 100644 index 000000000000..5739f7463f16 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/iceberg/restCatalogConnection.ts @@ -0,0 +1,168 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Iceberg REST Catalog configuration. + */ +export interface RESTCatalogConnection { + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + fileSystem?: IcebergFileSystem; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + /** + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/icebergConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/icebergConnection.ts new file mode 100644 index 000000000000..6c9e8c14c236 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/icebergConnection.ts @@ -0,0 +1,276 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Iceberg Catalog Connection Config + */ +export interface IcebergConnection { + catalog: IcebergCatalog; + /** + * Table property to look for the Owner. + */ + ownershipProperty?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: IcebergType; +} + +/** + * Iceberg Catalog configuration. + */ +export interface IcebergCatalog { + /** + * Catalog connection configuration, depending on your catalog type. + */ + connection: Connection; + /** + * Custom Database Name for your Iceberg Service. If not set it will be 'default'. + */ + databaseName?: string; + /** + * Catalog Name. + */ + name: string; + /** + * Warehouse Location. Used to specify a custom warehouse location if needed. + */ + warehouseLocation?: string; +} + +/** + * Catalog connection configuration, depending on your catalog type. + * + * Iceberg Hive Catalog configuration. + * + * Iceberg REST Catalog configuration. + * + * Iceberg Glue Catalog configuration. + * + * Iceberg DynamoDB Catalog configuration. + */ +export interface Connection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + * + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri?: string; + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + awsConfig?: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum IcebergType { + Iceberg = "Iceberg", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/impalaConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/impalaConnection.ts new file mode 100644 index 000000000000..77d6eb7045f3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/impalaConnection.ts @@ -0,0 +1,180 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Impala SQL Connection Config + */ +export interface ImpalaConnection { + /** + * Authentication mode to connect to Impala. + */ + authMechanism?: AuthenticationMode; + /** + * Authentication options to pass to Impala connector. These options are based on SQLAlchemy. + */ + authOptions?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Impala service. + */ + hostPort: string; + /** + * If authenticating with Kerberos specify the Kerberos service name + */ + kerberosServiceName?: string; + /** + * Password to connect to Impala. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: ImpalaScheme; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Service Type + */ + type?: ImpalaType; + /** + * Username to connect to Impala. This user should have privileges to read all the metadata + * in Impala. + */ + username?: string; + /** + * Establish secure connection with Impala + */ + useSSL?: boolean; +} + +/** + * Authentication mode to connect to Impala. + */ +export enum AuthenticationMode { + Gssapi = "GSSAPI", + Jwt = "JWT", + LDAP = "LDAP", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum ImpalaScheme { + Impala = "impala", + Impala4 = "impala4", +} + +/** + * Service Type + * + * Service type. + */ +export enum ImpalaType { + Impala = "Impala", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mariaDBConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mariaDBConnection.ts new file mode 100644 index 000000000000..0dc37cffdfa2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mariaDBConnection.ts @@ -0,0 +1,153 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * MariaDB Database Connection Config + */ +export interface MariaDBConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the MariaDB service. + */ + hostPort: string; + /** + * Password to connect to MariaDB. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: MariaDBScheme; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Service Type + */ + type?: MariaDBType; + /** + * Username to connect to MariaDB. This user should have privileges to read all the metadata + * in MariaDB. + */ + username: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum MariaDBScheme { + MysqlPymysql = "mysql+pymysql", +} + +/** + * Service Type + * + * Service type. + */ +export enum MariaDBType { + MariaDB = "MariaDB", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mongoDBConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mongoDBConnection.ts new file mode 100644 index 000000000000..df44df442da4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mongoDBConnection.ts @@ -0,0 +1,100 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * MongoDB Connection Config + */ +export interface MongoDBConnection { + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Host and port of the MongoDB service when using the `mongodb` connection scheme. Only + * host when using the `mongodb+srv` scheme. + */ + hostPort: string; + /** + * Password to connect to MongoDB. + */ + password?: string; + /** + * Mongo connection scheme options. + */ + scheme?: MongoDBScheme; + sslConfig?: Config; + sslMode?: SSLMode; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + /** + * Service Type + */ + type?: MongoDBType; + /** + * Username to connect to MongoDB. This user should have privileges to read all the metadata + * in MongoDB. + */ + username?: string; +} + +/** + * Mongo connection scheme options. + */ +export enum MongoDBScheme { + Mongodb = "mongodb", + MongodbSrv = "mongodb+srv", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum MongoDBType { + MongoDB = "MongoDB", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mssqlConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mssqlConnection.ts new file mode 100644 index 000000000000..4519c874ec0f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mssqlConnection.ts @@ -0,0 +1,161 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Mssql Database Connection Config + */ +export interface MssqlConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database: string; + /** + * ODBC driver version in case of pyodbc connection. + */ + driver?: string; + /** + * Host and port of the MSSQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Mssql. You can use databaseFilterPattern on top of this. + */ + ingestAllDatabases?: boolean; + /** + * Password to connect to MSSQL. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: MssqlScheme; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: MssqlType; + /** + * Username to connect to MSSQL. This user should have privileges to read all the metadata + * in MsSQL. + */ + username?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum MssqlScheme { + MssqlPymssql = "mssql+pymssql", + MssqlPyodbc = "mssql+pyodbc", + MssqlPytds = "mssql+pytds", +} + +/** + * Service Type + * + * Service type. + */ +export enum MssqlType { + Mssql = "Mssql", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mysqlConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mysqlConnection.ts new file mode 100644 index 000000000000..aa8d58a67905 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/mysqlConnection.ts @@ -0,0 +1,275 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Mysql Database Connection Config + */ +export interface MysqlConnection { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the MySQL service. + */ + hostPort: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: MySQLScheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: MySQLType; + /** + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum MySQLScheme { + MysqlPymysql = "mysql+pymysql", +} + +/** + * SSL Configuration details. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum MySQLType { + Mysql = "Mysql", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/oracleConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/oracleConnection.ts new file mode 100644 index 000000000000..98c313c8a1ea --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/oracleConnection.ts @@ -0,0 +1,182 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Oracle Database Connection Config + */ +export interface OracleConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Host and port of the Oracle service. + */ + hostPort?: string; + /** + * This directory will be used to set the LD_LIBRARY_PATH env variable. It is required if + * you need to enable thick connection mode. By default, we bring instant client 19 and + * point to /instantclient. + */ + instantClientDirectory?: string; + /** + * Connect with oracle by either passing service name or database schema name. + */ + oracleConnectionType: OracleConnectionType; + /** + * Password to connect to Oracle. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: OracleScheme; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: OracleType; + /** + * Username to connect to Oracle. This user should have privileges to read all the metadata + * in Oracle. + */ + username: string; +} + +/** + * Connect with oracle by either passing service name or database schema name. + */ +export interface OracleConnectionType { + /** + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + */ + databaseSchema?: string; + /** + * The Oracle Service name is the TNS alias that you give when you remotely connect to your + * database. + */ + oracleServiceName?: string; + /** + * Pass the full constructed TNS string, e.g., + * (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1530)))(CONNECT_DATA=(SID=MYSERVICENAME))). + */ + oracleTNSConnection?: string; + [property: string]: any; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum OracleScheme { + OracleCxOracle = "oracle+cx_oracle", +} + +/** + * Service Type + * + * Service type. + */ +export enum OracleType { + Oracle = "Oracle", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/pinotDBConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/pinotDBConnection.ts new file mode 100644 index 000000000000..d93083fce67c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/pinotDBConnection.ts @@ -0,0 +1,154 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * PinotDB Database Connection Config + */ +export interface PinotDBConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the PinotDB Broker service. + */ + hostPort: string; + /** + * password to connect to the PinotDB. + */ + password?: string; + /** + * Pinot Controller Host and Port of the data source. + */ + pinotControllerHost: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: PinotDBScheme; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Service Type + */ + type?: PinotDBType; + /** + * username to connect to the PinotDB. This user should have privileges to read all the + * metadata in PinotDB. + */ + username?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum PinotDBScheme { + Pinot = "pinot", + PinotHTTP = "pinot+http", + PinotHTTPS = "pinot+https", +} + +/** + * Service Type + * + * Service type. + */ +export enum PinotDBType { + PinotDB = "PinotDB", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/postgresConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/postgresConnection.ts new file mode 100644 index 000000000000..e1de59e1985d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/postgresConnection.ts @@ -0,0 +1,289 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Postgres Database Connection Config + */ +export interface PostgresConnection { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database: string; + /** + * Host and port of the source service. + */ + hostPort: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: PostgresScheme; + sslConfig?: Config; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: PostgresType; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + */ + username: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum PostgresScheme { + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum PostgresType { + Postgres = "Postgres", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/prestoConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/prestoConnection.ts new file mode 100644 index 000000000000..89a5c8d51911 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/prestoConnection.ts @@ -0,0 +1,160 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Presto Database Connection Config + */ +export interface PrestoConnection { + /** + * Presto catalog + */ + catalog?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Presto service. + */ + hostPort: string; + /** + * Password to connect to Presto. + */ + password?: string; + /** + * Protocol ( Connection Argument ) to connect to Presto. + */ + protocol?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: PrestoScheme; + supportsDatabase?: boolean; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + /** + * Service Type + */ + type?: PrestoType; + /** + * Username to connect to Presto. This user should have privileges to read all the metadata + * in Postgres. + */ + username: string; + /** + * Verify ( Connection Argument for SSL ) to connect to Presto. + */ + verify?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum PrestoScheme { + Presto = "presto", +} + +/** + * Service Type + * + * Service type. + */ +export enum PrestoType { + Presto = "Presto", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/redshiftConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/redshiftConnection.ts new file mode 100644 index 000000000000..ec6fb2a650ec --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/redshiftConnection.ts @@ -0,0 +1,190 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Redshift Connection Config + */ +export interface RedshiftConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Initial Redshift database to connect to. If you want to ingest all databases, set + * ingestAllDatabases to true. + */ + database: string; + /** + * Host and port of the Redshift service. + */ + hostPort: string; + /** + * Ingest data from all databases in Redshift. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + /** + * Password to connect to Redshift. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: RedshiftScheme; + sslConfig?: Config; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: RedshiftType; + /** + * Username to connect to Redshift. This user should have privileges to read all the + * metadata in Redshift. + */ + username: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum RedshiftScheme { + RedshiftPsycopg2 = "redshift+psycopg2", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum RedshiftType { + Redshift = "Redshift", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/salesforceConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/salesforceConnection.ts new file mode 100644 index 000000000000..a448a117495c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/salesforceConnection.ts @@ -0,0 +1,95 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Salesforce Connection Config + */ +export interface SalesforceConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Salesforce Organization ID is the unique identifier for your Salesforce identity + */ + organizationId?: string; + /** + * Password to connect to the Salesforce. + */ + password?: string; + /** + * API version of the Salesforce instance + */ + salesforceApiVersion?: string; + /** + * Domain of Salesforce instance + */ + salesforceDomain?: string; + /** + * Salesforce Security Token. + */ + securityToken?: string; + /** + * Salesforce Object Name. + */ + sobjectName?: string; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: SalesforceType; + /** + * Username to connect to the Salesforce. This user should have privileges to read all the + * metadata in Redshift. + */ + username: string; +} + +/** + * SSL Configuration details. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum SalesforceType { + Salesforce = "Salesforce", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapErpConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapErpConnection.ts new file mode 100644 index 000000000000..3f2d6fc4eb81 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapErpConnection.ts @@ -0,0 +1,88 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Sap ERP Database Connection Config + */ +export interface SapERPConnection { + /** + * API key to authenticate with the SAP ERP APIs. + */ + apiKey?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Optional name to give to the schema in OpenMetadata. If left blank, we will use default + * as the schema name + */ + databaseSchema?: string; + /** + * Host and Port of the SAP ERP instance. + */ + hostPort?: string; + /** + * Pagination limit used while querying the SAP ERP API for fetching the entities + */ + paginationLimit?: number; + sslConfig?: Config; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: SapERPType; + verifySSL?: VerifySSL; +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum SapERPType { + SapERP = "SapErp", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHana/sapHanaHDBConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHana/sapHanaHDBConnection.ts new file mode 100644 index 000000000000..996072034faf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHana/sapHanaHDBConnection.ts @@ -0,0 +1,24 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Sap Hana Database HDB User Store Connection Config + */ +export interface SapHanaHDBConnection { + /** + * HDB Store User Key generated from the command `hdbuserstore SET + * ` + */ + userKey?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHana/sapHanaSQLConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHana/sapHanaSQLConnection.ts new file mode 100644 index 000000000000..99bfc4feb3b7 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHana/sapHanaSQLConnection.ts @@ -0,0 +1,41 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Sap Hana Database SQL Connection Config + */ +export interface SapHanaSQLConnection { + /** + * Database of the data source. + */ + database?: string; + /** + * Database Schema of the data source. This is an optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Hana service. + */ + hostPort: string; + /** + * Password to connect to Hana. + */ + password: string; + /** + * Username to connect to Hana. This user should have privileges to read all the metadata. + */ + username: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHanaConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHanaConnection.ts new file mode 100644 index 000000000000..a330caa8b59a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sapHanaConnection.ts @@ -0,0 +1,171 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Sap Hana Database Connection Config + */ +export interface SapHanaConnection { + /** + * Choose between Database connection or HDB User Store connection. + */ + connection: SAPHanaConnection; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: SapHanaScheme; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + /** + * Service Type + */ + type?: SapHanaType; +} + +/** + * Choose between Database connection or HDB User Store connection. + * + * Sap Hana Database SQL Connection Config + * + * Sap Hana Database HDB User Store Connection Config + */ +export interface SAPHanaConnection { + /** + * Database of the data source. + */ + database?: string; + /** + * Database Schema of the data source. This is an optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Hana service. + */ + hostPort?: string; + /** + * Password to connect to Hana. + */ + password?: string; + /** + * Username to connect to Hana. This user should have privileges to read all the metadata. + */ + username?: string; + /** + * HDB Store User Key generated from the command `hdbuserstore SET + * ` + */ + userKey?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum SapHanaScheme { + Hana = "hana", +} + +/** + * Service Type + * + * Service type. + */ +export enum SapHanaType { + SapHana = "SapHana", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sasConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sasConnection.ts new file mode 100644 index 000000000000..bab65e034205 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sasConnection.ts @@ -0,0 +1,68 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SAS Connection Config + */ +export interface SASConnection { + /** + * Enable dataflow for ingestion + */ + dataflows?: boolean; + /** + * Custom filter for dataflows + */ + dataflowsCustomFilter?: { [key: string]: any } | string; + /** + * Enable datatables for ingestion + */ + datatables?: boolean; + /** + * Custom filter for datatables + */ + dataTablesCustomFilter?: { [key: string]: any } | string; + /** + * Password to connect to SAS Viya + */ + password: string; + /** + * Enable report for ingestion + */ + reports?: boolean; + /** + * Custom filter for reports + */ + reportsCustomFilter?: { [key: string]: any } | string; + /** + * Hostname of SAS Viya deployment. + */ + serverHost: string; + /** + * Service Type + */ + type?: SASType; + /** + * Username to connect to SAS Viya. + */ + username: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum SASType { + SAS = "SAS", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/singleStoreConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/singleStoreConnection.ts new file mode 100644 index 000000000000..40cfccfd090b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/singleStoreConnection.ts @@ -0,0 +1,153 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SingleStore Database Connection Config + */ +export interface SingleStoreConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the SingleStore service. + */ + hostPort: string; + /** + * Password to connect to SingleStore. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: SingleStoreScheme; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Service Type + */ + type?: SingleStoreType; + /** + * Username to connect to SingleStore. This user should have privileges to read all the + * metadata in MySQL. + */ + username: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum SingleStoreScheme { + MysqlPymysql = "mysql+pymysql", +} + +/** + * Service Type + * + * Service type. + */ +export enum SingleStoreType { + SingleStore = "SingleStore", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/snowflakeConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/snowflakeConnection.ts new file mode 100644 index 000000000000..98b6321c552b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/snowflakeConnection.ts @@ -0,0 +1,184 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Snowflake Connection Config + */ +export interface SnowflakeConnection { + /** + * If the Snowflake URL is https://xyz1234.us-east-1.gcp.snowflakecomputing.com, then the + * account is xyz1234.us-east-1.gcp + */ + account: string; + /** + * Optional configuration for ingestion to keep the client session active in case the + * ingestion process runs for longer durations. + */ + clientSessionKeepAlive?: boolean; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Optional configuration for ingestion of TRANSIENT tables, By default, it will skip the + * TRANSIENT tables. + */ + includeTransientTables?: boolean; + /** + * Password to connect to Snowflake. + */ + password?: string; + /** + * Connection to Snowflake instance via Private Key + */ + privateKey?: string; + /** + * Session query tag used to monitor usage on snowflake. To use a query tag snowflake user + * should have enough privileges to alter the session. + */ + queryTag?: string; + /** + * Snowflake Role. + */ + role?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: SnowflakeScheme; + /** + * Snowflake Passphrase Key used with Private Key + */ + snowflakePrivatekeyPassphrase?: string; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: SnowflakeType; + /** + * Username to connect to Snowflake. This user should have privileges to read all the + * metadata in Snowflake. + */ + username: string; + /** + * Snowflake warehouse. + */ + warehouse: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum SnowflakeScheme { + Snowflake = "snowflake", +} + +/** + * Service Type + * + * Service type. + */ +export enum SnowflakeType { + Snowflake = "Snowflake", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sqliteConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sqliteConnection.ts new file mode 100644 index 000000000000..edfd5ec072ef --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/sqliteConnection.ts @@ -0,0 +1,151 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SQLite Database Connection Config + */ +export interface SqliteConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * Host and port of the SQLite service. Blank for in-memory database. + */ + hostPort?: string; + /** + * Password to connect to SQLite. Blank for in-memory database. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: SQLiteScheme; + supportsDBTExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Service Type + */ + type?: SQLiteType; + /** + * Username to connect to SQLite. Blank for in-memory database. + */ + username?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum SQLiteScheme { + SqlitePysqlite = "sqlite+pysqlite", +} + +/** + * Service Type + * + * Service type. + */ +export enum SQLiteType { + SQLite = "SQLite", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/synapseConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/synapseConnection.ts new file mode 100644 index 000000000000..3a68aa0d673b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/synapseConnection.ts @@ -0,0 +1,195 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Synapse Database Connection Config + */ +export interface SynapseConnection { + /** + * This parameter determines the mode of authentication for connecting to Azure Synapse + * using ODBC. If 'Active Directory Password' is selected, you need to provide the password. + * If 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with Azure Synapse. + */ + authenticationMode?: any[] | boolean | number | number | null | AuthenticationModeObject | string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database: string; + /** + * ODBC driver version in case of pyodbc connection. + */ + driver?: string; + /** + * Host and port of the Azure Synapse service. + */ + hostPort: string; + /** + * Ingest data from all databases in Azure Synapse. You can use databaseFilterPattern on top + * of this. + */ + ingestAllDatabases?: boolean; + /** + * Password to connect to Azure Synapse. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: SynapseScheme; + supportsDatabase?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: SynapseType; + /** + * Username to connect to Azure Synapse. This user should have privileges to read all the + * metadata in Azure Synapse. + */ + username?: string; +} + +export interface AuthenticationModeObject { + /** + * Authentication from Connection String for Azure Synapse. + */ + authentication?: Authentication; + /** + * Connection Timeout from Connection String for Azure Synapse. + */ + connectionTimeout?: number; + /** + * Encrypt from Connection String for Azure Synapse. + */ + encrypt?: boolean; + /** + * Trust Server Certificate from Connection String for Azure Synapse. + */ + trustServerCertificate?: boolean; + [property: string]: any; +} + +/** + * Authentication from Connection String for Azure Synapse. + */ +export enum Authentication { + ActiveDirectoryIntegrated = "ActiveDirectoryIntegrated", + ActiveDirectoryPassword = "ActiveDirectoryPassword", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum SynapseScheme { + MssqlPyodbc = "mssql+pyodbc", +} + +/** + * Service Type + * + * Service type. + */ +export enum SynapseType { + Synapse = "Synapse", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/teradataConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/teradataConnection.ts new file mode 100644 index 000000000000..6793fc688683 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/teradataConnection.ts @@ -0,0 +1,184 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Teradata Database Connection Config + */ +export interface TeradataConnection { + /** + * Specifies an account string to override the default account string defined for the + * database user. Accounts are used by the database for workload management and resource + * usage monitoring. + */ + account?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Host and port of the Teradata service. + */ + hostPort: string; + /** + * Specifies additional data needed by a logon mechanism, such as a secure token, + * Distinguished Name, or a domain/realm name. LOGDATA values are specific to each logon + * mechanism. + */ + logdata?: string; + /** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ + logmech?: Logmech; + /** + * Password to connect to Teradata. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: TeradataScheme; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsViewLineageExtraction?: boolean; + /** + * Specifies the transaction mode for the connection + */ + tmode?: TransactionMode; + /** + * Service Type + */ + type?: TeradataType; + /** + * Username to connect to Teradata. This user should have privileges to read all the + * metadata in Teradata. + */ + username: string; +} + +/** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ +export enum Logmech { + Custom = "CUSTOM", + Jwt = "JWT", + Krb5 = "KRB5", + LDAP = "LDAP", + Td2 = "TD2", + Tdnego = "TDNEGO", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum TeradataScheme { + Teradatasql = "teradatasql", +} + +/** + * Specifies the transaction mode for the connection + */ +export enum TransactionMode { + ANSI = "ANSI", + Default = "DEFAULT", + Tera = "TERA", +} + +/** + * Service Type + * + * Service type. + */ +export enum TeradataType { + Teradata = "Teradata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/trinoConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/trinoConnection.ts new file mode 100644 index 000000000000..021ca4e25595 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/trinoConnection.ts @@ -0,0 +1,217 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Trino Connection Config + */ +export interface TrinoConnection { + /** + * Choose Auth Config Type. + */ + authType?: BasicAuth | NoConfigAuthenticationTypes; + /** + * Catalog of the data source. + */ + catalog?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + */ + databaseSchema?: string; + /** + * Host and port of the Trino service. + */ + hostPort: string; + /** + * Proxies for the connection to Trino data source + */ + proxies?: { [key: string]: string }; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: TrinoScheme; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: TrinoType; + /** + * Username to connect to Trino. This user should have privileges to read all the metadata + * in Trino. + */ + username: string; + /** + * Verify ( Connection Argument for SSL ) to connect to Trino. + */ + verify?: string; +} + +/** + * Common Database Connection Config + * + * Azure Database Connection Config + */ +export interface BasicAuth { + /** + * Password to connect to source. + */ + password?: string; + /** + * JWT to connect to source. + */ + jwt?: string; + azureConfig?: AzureCredentials; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Database Authentication types not requiring config. + */ +export enum NoConfigAuthenticationTypes { + OAuth2 = "OAuth2", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum TrinoScheme { + Trino = "trino", +} + +/** + * Service Type + * + * Service type. + */ +export enum TrinoType { + Trino = "Trino", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/unityCatalogConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/unityCatalogConnection.ts new file mode 100644 index 000000000000..79d6589563a7 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/unityCatalogConnection.ts @@ -0,0 +1,161 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * UnityCatalog Connection Config + */ +export interface UnityCatalogConnection { + /** + * Catalog of the data source(Example: hive_metastore). This is optional parameter, if you + * would like to restrict the metadata reading to a single catalog. When left blank, + * OpenMetadata Ingestion attempts to scan all the catalog. + */ + catalog?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * The maximum amount of time (in seconds) to wait for a successful connection to the data + * source. If the connection attempt takes longer than this timeout period, an error will be + * returned. + */ + connectionTimeout?: number; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Databricks service. + */ + hostPort: string; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: DatabricksScheme; + supportsDatabase?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Generated Token to connect to Databricks. + */ + token: string; + /** + * Service Type + */ + type?: DatabricksType; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum DatabricksScheme { + DatabricksConnector = "databricks+connector", +} + +/** + * Service Type + * + * Service type. + */ +export enum DatabricksType { + UnityCatalog = "UnityCatalog", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/verticaConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/verticaConnection.ts new file mode 100644 index 000000000000..4fdac634247f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/database/verticaConnection.ts @@ -0,0 +1,150 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Vertica Connection Config + */ +export interface VerticaConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the Vertica service. + */ + hostPort: string; + /** + * Password to connect to Vertica. + */ + password?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: VerticaScheme; + supportsDatabase?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: VerticaType; + /** + * Username to connect to Vertica. This user should have privileges to read all the metadata + * in Vertica. + */ + username: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum VerticaScheme { + VerticaVerticaPython = "vertica+vertica_python", +} + +/** + * Service Type + * + * Service type. + */ +export enum VerticaType { + Vertica = "Vertica", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/customMessagingConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/customMessagingConnection.ts new file mode 100644 index 000000000000..f1e36718c5b9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/customMessagingConnection.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom Messaging Service Connection to build a source that is not supported by + * OpenMetadata yet. + */ +export interface CustomMessagingConnection { + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Custom messaging service type + */ + type: ServiceType; +} + +/** + * Custom messaging service type + */ +export enum ServiceType { + CustomMessaging = "CustomMessaging", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/kafkaConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/kafkaConnection.ts new file mode 100644 index 000000000000..2e66b243f338 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/kafkaConnection.ts @@ -0,0 +1,128 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Kafka Connection Config + */ +export interface KafkaConnection { + /** + * basic.auth.user.info schema registry config property, Client HTTP credentials in the form + * of username:password. + */ + basicAuthUserInfo?: string; + /** + * Kafka bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + */ + bootstrapServers: string; + /** + * Confluent Kafka Consumer Config. From + * https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md + */ + consumerConfig?: { [key: string]: any }; + /** + * sasl.mechanism Consumer Config property + */ + saslMechanism?: SaslMechanismType; + /** + * sasl.password consumer config property + */ + saslPassword?: string; + /** + * sasl.username consumer config property + */ + saslUsername?: string; + /** + * Confluent Kafka Schema Registry Config. From + * https://docs.confluent.io/5.5.1/clients/confluent-kafka-python/index.html#confluent_kafka.schema_registry.SchemaRegistryClient + */ + schemaRegistryConfig?: { [key: string]: any }; + /** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + */ + schemaRegistrySSL?: Config; + /** + * Schema Registry Topic Suffix Name. The suffix to be appended to the topic name to get + * topic schema from registry. + */ + schemaRegistryTopicSuffixName?: string; + /** + * Confluent Kafka Schema Registry URL. + */ + schemaRegistryURL?: string; + /** + * security.protocol consumer config property + */ + securityProtocol?: SecurityProtocol; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: KafkaType; +} + +/** + * sasl.mechanism Consumer Config property + * + * SASL Mechanism consumer config property + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * security.protocol consumer config property + */ +export enum SecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslPlaintext = "SASL_PLAINTEXT", + SaslSSL = "SASL_SSL", +} + +/** + * Service Type + * + * Kafka service type + */ +export enum KafkaType { + Kafka = "Kafka", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/kinesisConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/kinesisConnection.ts new file mode 100644 index 000000000000..1eab107246f6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/kinesisConnection.ts @@ -0,0 +1,80 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Kinesis Connection Config + */ +export interface KinesisConnection { + awsConfig: AWSCredentials; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: KinesisType; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum KinesisType { + Kinesis = "Kinesis", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/pulsarConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/pulsarConnection.ts new file mode 100644 index 000000000000..3546e81ae605 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/pulsarConnection.ts @@ -0,0 +1,33 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Pulsar Connection Config + */ +export interface PulsarConnection { + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: PulsarType; +} + +/** + * Service Type + * + * Pulsar service type + */ +export enum PulsarType { + Pulsar = "Pulsar", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/redpandaConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/redpandaConnection.ts new file mode 100644 index 000000000000..56aeda84df19 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/redpandaConnection.ts @@ -0,0 +1,93 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Redpanda Connection Config + */ +export interface RedpandaConnection { + /** + * basic.auth.user.info schema registry config property, Client HTTP credentials in the form + * of username:password. + */ + basicAuthUserInfo?: string; + /** + * Redpanda bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + */ + bootstrapServers: string; + /** + * Confluent Redpanda Consumer Config + */ + consumerConfig?: { [key: string]: any }; + /** + * sasl.mechanism Consumer Config property + */ + saslMechanism?: SaslMechanismType; + /** + * sasl.password consumer config property + */ + saslPassword?: string; + /** + * sasl.username consumer config property + */ + saslUsername?: string; + /** + * Confluent Redpanda Schema Registry Config. + */ + schemaRegistryConfig?: { [key: string]: any }; + /** + * Confluent Redpanda Schema Registry URL. + */ + schemaRegistryURL?: string; + /** + * security.protocol consumer config property + */ + securityProtocol?: SecurityProtocol; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: RedpandaType; +} + +/** + * sasl.mechanism Consumer Config property + * + * SASL Mechanism consumer config property + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * security.protocol consumer config property + */ +export enum SecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslPlaintext = "SASL_PLAINTEXT", + SaslSSL = "SASL_SSL", +} + +/** + * Service Type + * + * Redpanda service type + */ +export enum RedpandaType { + Redpanda = "Redpanda", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/saslMechanismType.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/saslMechanismType.ts new file mode 100644 index 000000000000..e397cf41d36c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/messaging/saslMechanismType.ts @@ -0,0 +1,24 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SASL Mechanism consumer config property + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/alationConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/alationConnection.ts new file mode 100644 index 000000000000..89846a066260 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/alationConnection.ts @@ -0,0 +1,412 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Alation Connection Config + */ +export interface AlationConnection { + /** + * Custom OpenMetadata Classification name for alation tags. + */ + alationTagClassificationName?: string; + /** + * Types of methods used to authenticate to the alation instance + */ + authType: AuthenticationTypeForAlation; + /** + * Choose between mysql and postgres connection for alation database + */ + connection?: AlationDatabaseConnection; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Host and port of the Alation service. + */ + hostPort: string; + /** + * Specifies if hidden datasources should be included while ingesting. + */ + includeHiddenDatasources?: boolean; + /** + * Specifies if undeployed datasources should be included while ingesting. + */ + includeUndeployedDatasources?: boolean; + /** + * Specifies if Dashboards are to be ingested while running the ingestion job. + */ + ingestDashboards?: boolean; + /** + * Specifies if Datasources are to be ingested while running the ingestion job. + */ + ingestDatasources?: boolean; + /** + * Specifies if Domains are to be ingested while running the ingestion job. + */ + ingestDomains?: boolean; + /** + * Specifies if Knowledge Articles are to be ingested while running the ingestion job. + */ + ingestKnowledgeArticles?: boolean; + /** + * Specifies if Users and Groups are to be ingested while running the ingestion job. + */ + ingestUsersAndGroups?: boolean; + /** + * Pagination limit used for Alation APIs pagination + */ + paginationLimit?: number; + /** + * Project name to create the refreshToken. Can be anything + */ + projectName?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: AlationType; +} + +/** + * Types of methods used to authenticate to the alation instance + * + * Basic Auth Credentials + * + * API Access Token Auth Credentials + */ +export interface AuthenticationTypeForAlation { + /** + * Password to access the service. + */ + password?: string; + /** + * Username to access the service. + */ + username?: string; + /** + * Access Token for the API + */ + accessToken?: string; +} + +/** + * Choose between mysql and postgres connection for alation database + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface AlationDatabaseConnection { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: Type; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum Type { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * Service Type + * + * Service type. + */ +export enum AlationType { + Alation = "Alation", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/alationSinkConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/alationSinkConnection.ts new file mode 100644 index 000000000000..6df2b25bac0c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/alationSinkConnection.ts @@ -0,0 +1,105 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Alation Sink Connection Config + */ +export interface AlationSinkConnection { + /** + * Types of methods used to authenticate to the alation instance + */ + authType: AuthenticationTypeForAlation; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + datasourceLinks?: { [key: string]: string }; + /** + * Host and port of the Alation service. + */ + hostPort: string; + /** + * Pagination limit used for Alation APIs pagination + */ + paginationLimit?: number; + /** + * Project name to create the refreshToken. Can be anything + */ + projectName?: string; + sslConfig?: Config; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: AlationSinkType; + verifySSL?: VerifySSL; +} + +/** + * Types of methods used to authenticate to the alation instance + * + * Basic Auth Credentials + * + * API Access Token Auth Credentials + */ +export interface AuthenticationTypeForAlation { + /** + * Password to access the service. + */ + password?: string; + /** + * Username to access the service. + */ + username?: string; + /** + * Access Token for the API + */ + accessToken?: string; +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum AlationSinkType { + AlationSink = "AlationSink", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/amundsenConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/amundsenConnection.ts new file mode 100644 index 000000000000..d5415b584857 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/amundsenConnection.ts @@ -0,0 +1,58 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Amundsen Connection Config + */ +export interface AmundsenConnection { + /** + * Enable encryption for the Amundsen Neo4j Connection. + */ + encrypted?: boolean; + /** + * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: + * bolt://localhost:7687. + */ + hostPort: string; + /** + * Maximum connection lifetime for the Amundsen Neo4j Connection. + */ + maxConnectionLifeTime?: number; + /** + * password to connect to the Amundsen Neo4j Connection. + */ + password: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: AmundsenType; + /** + * username to connect to the Amundsen Neo4j Connection. + */ + username: string; + /** + * Enable SSL validation for the Amundsen Neo4j Connection. + */ + validateSSL?: boolean; +} + +/** + * Service Type + * + * Amundsen service type + */ +export enum AmundsenType { + Amundsen = "Amundsen", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/atlasConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/atlasConnection.ts new file mode 100644 index 000000000000..0ab05f607cc6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/atlasConnection.ts @@ -0,0 +1,60 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Atlas Connection Config + */ +export interface AtlasConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * service type of the data source. + */ + databaseServiceName?: string[]; + /** + * Name of the Entity Type available in Atlas. + */ + entity_type: string; + /** + * Host and port of the Atlas service. + */ + hostPort?: string; + /** + * service type of the messaging source + */ + messagingServiceName?: string[]; + /** + * password to connect to the Atlas. + */ + password: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: AtlasType; + /** + * username to connect to the Atlas. This user should have privileges to read all the + * metadata in Atlas. + */ + username: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum AtlasType { + Atlas = "Atlas", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/metadataESConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/metadataESConnection.ts new file mode 100644 index 000000000000..dd5a2209a6f8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/metadataESConnection.ts @@ -0,0 +1,66 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Metadata to ElasticSearch Connection Config + */ +export interface MetadataESConnection { + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * List of entities that you need to reindex + */ + entities?: string[]; + recreateIndex?: boolean; + runMode?: RunMode; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: MetadataESType; +} + +/** + * This schema publisher run modes. + */ +export enum RunMode { + Batch = "batch", + Stream = "stream", +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Service Type + * + * Metadata to Elastic Search type + */ +export enum MetadataESType { + MetadataES = "MetadataES", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/openMetadataConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/openMetadataConnection.ts new file mode 100644 index 000000000000..9370d12e737d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/metadata/openMetadataConnection.ts @@ -0,0 +1,256 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenMetadata Connection Config + */ +export interface OpenMetadataConnection { + /** + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + */ + hostPort: string; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: Config; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * Service Type + */ + type?: OpenmetadataType; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: VerifySSL; +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * SSL Configuration for OpenMetadata Server + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * OpenMetadata service type + */ +export enum OpenmetadataType { + OpenMetadata = "OpenMetadata", +} + +/** + * Flag to verify SSL Certificate for OpenMetadata Server. + * + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/customMlModelConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/customMlModelConnection.ts new file mode 100644 index 000000000000..f9f4a03c7779 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/customMlModelConnection.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom MlModel Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface CustomMlModelConnection { + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Custom Ml model service type + */ + type: ServiceType; +} + +/** + * Custom Ml model service type + */ +export enum ServiceType { + CustomMlModel = "CustomMlModel", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/mlflowConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/mlflowConnection.ts new file mode 100644 index 000000000000..f3afc9dc6b19 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/mlflowConnection.ts @@ -0,0 +1,42 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * MlFlow Connection Config + */ +export interface MlflowConnection { + /** + * Mlflow Model registry backend. E.g., + * mysql+pymysql://mlflow:password@localhost:3307/experiments + */ + registryUri: string; + supportsMetadataExtraction?: boolean; + /** + * Mlflow Experiment tracking URI. E.g., http://localhost:5000 + */ + trackingUri: string; + /** + * Service Type + */ + type?: MlflowType; +} + +/** + * Service Type + * + * Service type. + */ +export enum MlflowType { + Mlflow = "Mlflow", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/sageMakerConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/sageMakerConnection.ts new file mode 100644 index 000000000000..3bc63b2f6666 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/sageMakerConnection.ts @@ -0,0 +1,80 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SageMaker Connection Config + */ +export interface SageMakerConnection { + awsConfig: AWSCredentials; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: SageMakerType; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum SageMakerType { + SageMaker = "SageMaker", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/sklearnConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/sklearnConnection.ts new file mode 100644 index 000000000000..ba90353b9622 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/sklearnConnection.ts @@ -0,0 +1,33 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Sklearn Connection Config + */ +export interface SklearnConnection { + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: SklearnType; +} + +/** + * Service Type + * + * Service type. + */ +export enum SklearnType { + Sklearn = "Sklearn", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/vertexaiConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/vertexaiConnection.ts new file mode 100644 index 000000000000..3f32c43fe3ab --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/mlmodel/vertexaiConnection.ts @@ -0,0 +1,155 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Google VertexAI Connection Config + */ +export interface VertexaiConnection { + /** + * GCP Credentials + */ + credentials: GCPCredentials; + /** + * location/region of google cloud project + */ + location: string; + /** + * Service Type + */ + type?: VertexAIType; +} + +/** + * GCP Credentials + * + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * Service type. + */ +export enum VertexAIType { + VertexAI = "VertexAI", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/airbyteConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/airbyteConnection.ts new file mode 100644 index 000000000000..848f999c9fd4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/airbyteConnection.ts @@ -0,0 +1,45 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Airbyte Metadata Database Connection Config + */ +export interface AirbyteConnection { + /** + * Pipeline Service Management/UI URL. + */ + hostPort: string; + /** + * Password to connect to Airbyte. + */ + password?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: AirbyteType; + /** + * Username to connect to Airbyte. + */ + username?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum AirbyteType { + Airbyte = "Airbyte", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/airflowConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/airflowConnection.ts new file mode 100644 index 000000000000..2b68ee5d1b6a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/airflowConnection.ts @@ -0,0 +1,372 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Airflow Metadata Database Connection Config + */ +export interface AirflowConnection { + /** + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + */ + connection: MetadataDatabaseConnection; + /** + * Pipeline Service Management/UI URI. + */ + hostPort: string; + /** + * Pipeline Service Number Of Status + */ + numberOfStatus?: number; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: AirflowType; +} + +/** + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Lineage Backend Connection Config + * + * Mysql Database Connection Config + * + * Postgres Database Connection Config + * + * SQLite Database Connection Config + */ +export interface MetadataDatabaseConnection { + /** + * Service Type + */ + type?: Type; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the MySQL service. + * + * Host and port of the source service. + * + * Host and port of the SQLite service. Blank for in-memory database. + */ + hostPort?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to SQLite. Blank for in-memory database. + */ + username?: string; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sslMode?: SSLMode; + supportsDatabase?: boolean; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * Password to connect to SQLite. Blank for in-memory database. + */ + password?: string; + supportsViewLineageExtraction?: boolean; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", + SqlitePysqlite = "sqlite+pysqlite", +} + +/** + * SSL Configuration details. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum Type { + Backend = "Backend", + Mysql = "Mysql", + Postgres = "Postgres", + SQLite = "SQLite", +} + +/** + * Service Type + * + * Service type. + */ +export enum AirflowType { + Airflow = "Airflow", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/backendConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/backendConnection.ts new file mode 100644 index 000000000000..e2a4728918b0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/backendConnection.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Lineage Backend Connection Config + */ +export interface BackendConnection { + /** + * Service Type + */ + type?: BackendType; +} + +/** + * Service Type + * + * Service type. + */ +export enum BackendType { + Backend = "Backend", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/customPipelineConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/customPipelineConnection.ts new file mode 100644 index 000000000000..8d61d97acd90 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/customPipelineConnection.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom Pipeline Service connection to build a source that is not supported by + * OpenMetadata yet. + */ +export interface CustomPipelineConnection { + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Custom pipeline service type + */ + type: ServiceType; +} + +/** + * Custom pipeline service type + */ +export enum ServiceType { + CustomPipeline = "CustomPipeline", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/dagsterConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/dagsterConnection.ts new file mode 100644 index 000000000000..b1bc1c185b9f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/dagsterConnection.ts @@ -0,0 +1,45 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Dagster Metadata Database Connection Config + */ +export interface DagsterConnection { + /** + * URL to the Dagster instance + */ + host: string; + supportsMetadataExtraction?: boolean; + /** + * Connection Time Limit Between OM and Dagster Graphql API in second + */ + timeout?: number; + /** + * To Connect to Dagster Cloud + */ + token?: string; + /** + * Service Type + */ + type?: DagsterType; +} + +/** + * Service Type + * + * Service type. + */ +export enum DagsterType { + Dagster = "Dagster", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/databricksPipelineConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/databricksPipelineConnection.ts new file mode 100644 index 000000000000..7bffdb98a15c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/databricksPipelineConnection.ts @@ -0,0 +1,46 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Databricks Connection Config + */ +export interface DatabricksPipelineConnection { + connectionArguments?: { [key: string]: any }; + /** + * Host and port of the Databricks service. + */ + hostPort: string; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + supportsMetadataExtraction?: boolean; + /** + * Generated Token to connect to Databricks. + */ + token: string; + /** + * Service Type + */ + type?: DatabricksType; +} + +/** + * Service Type + * + * Service type. + */ +export enum DatabricksType { + DatabricksPipeline = "DatabricksPipeline", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/datafactoryConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/datafactoryConnection.ts new file mode 100644 index 000000000000..e8cf04281330 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/datafactoryConnection.ts @@ -0,0 +1,84 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Azure Data Factory Connection Config + */ +export interface DatafactoryConnection { + /** + * Available sources to fetch metadata. + */ + configSource?: AzureCredentials; + /** + * The name of your azure data factory. + */ + factory_name: string; + /** + * The name of your resource group the data factory is associated with. + */ + resource_group_name: string; + /** + * Number of days in the past to filter pipeline runs. + */ + run_filter_days?: number; + /** + * The azure subscription identifier. + */ + subscription_id: string; + /** + * Service Type + */ + type?: DataFactoryType; +} + +/** + * Available sources to fetch metadata. + * + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum DataFactoryType { + DataFactory = "DataFactory", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/dbtCloudConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/dbtCloudConnection.ts new file mode 100644 index 000000000000..e579a4b7abd6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/dbtCloudConnection.ts @@ -0,0 +1,56 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DBTCloud Connection Config + */ +export interface DbtCloudConnection { + /** + * ID of your DBT cloud account + */ + accountId: string; + /** + * DBT cloud Metadata API URL. + */ + discoveryAPI: string; + /** + * DBT cloud Access URL. + */ + host: string; + /** + * List of IDs of your DBT cloud jobs seperated by comma `,` + */ + jobIds?: string[]; + /** + * List of IDs of your DBT cloud projects seperated by comma `,` + */ + projectIds?: string[]; + /** + * Generated Token to connect to DBTCloud. + */ + token: string; + /** + * Service Type + */ + type?: DBTCloudType; +} + +/** + * Service Type + * + * Service type. + */ +export enum DBTCloudType { + DBTCloud = "DBTCloud", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/domoPipelineConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/domoPipelineConnection.ts new file mode 100644 index 000000000000..543d4fd80d37 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/domoPipelineConnection.ts @@ -0,0 +1,53 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Domo Pipeline Connection Config + */ +export interface DomoPipelineConnection { + /** + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + */ + clientId: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain: string; + /** + * Secret token to connect to DOMO + */ + secretToken: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: DomoPipelineType; +} + +/** + * Service Type + * + * Service type. + */ +export enum DomoPipelineType { + DomoPipeline = "DomoPipeline", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/fivetranConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/fivetranConnection.ts new file mode 100644 index 000000000000..cb80b67484d8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/fivetranConnection.ts @@ -0,0 +1,49 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Fivetran Metadata Database Connection Config + */ +export interface FivetranConnection { + /** + * Fivetran API Secret. + */ + apiKey: string; + /** + * Fivetran API Secret. + */ + apiSecret: string; + /** + * Pipeline Service Management/UI URI. + */ + hostPort?: string; + /** + * Fivetran API Limit For Pagination. + */ + limit?: number; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: FivetranType; +} + +/** + * Service Type + * + * Service type. + */ +export enum FivetranType { + Fivetran = "Fivetran", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/flinkConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/flinkConnection.ts new file mode 100644 index 000000000000..8c848305d10d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/flinkConnection.ts @@ -0,0 +1,67 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Flink Metadata Connection Config + */ +export interface FlinkConnection { + /** + * Pipeline Service Management/UI URI. + */ + hostPort: string; + sslConfig?: Config; + /** + * Service Type + */ + type?: FlinkType; + verifySSL?: VerifySSL; +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum FlinkType { + Flink = "Flink", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/gluePipelineConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/gluePipelineConnection.ts new file mode 100644 index 000000000000..1438907c0a50 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/gluePipelineConnection.ts @@ -0,0 +1,80 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Glue Pipeline Connection Config + */ +export interface GluePipelineConnection { + awsConfig: AWSCredentials; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: GlueType; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum GlueType { + GluePipeline = "GluePipeline", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/kafkaConnectConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/kafkaConnectConnection.ts new file mode 100644 index 000000000000..a0c8198824be --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/kafkaConnectConnection.ts @@ -0,0 +1,66 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * KafkaConnect Connection Config + */ +export interface KafkaConnectConnection { + /** + * KafkaConnect Service Management/UI URI. + */ + hostPort: string; + /** + * We support username/password or No Authentication + */ + KafkaConnectConfig?: UsernamePasswordAuthentication; + /** + * Name of the Kafka Messaging Service associated with this KafkaConnect Pipeline Service. + * e.g. local_kafka + */ + messagingServiceName?: string; + /** + * Service Type + */ + type?: KafkaConnectType; + /** + * Boolean marking if we need to verify the SSL certs for KafkaConnect REST API. True by + * default. + */ + verifySSL?: boolean; +} + +/** + * We support username/password or No Authentication + * + * username/password auth + */ +export interface UsernamePasswordAuthentication { + /** + * KafkaConnect password to authenticate to the API. + */ + password?: string; + /** + * KafkaConnect user to authenticate to the API. + */ + username?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum KafkaConnectType { + KafkaConnect = "KafkaConnect", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/matillionConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/matillionConnection.ts new file mode 100644 index 000000000000..21d62cf22f4c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/matillionConnection.ts @@ -0,0 +1,85 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Matillion Connection + */ +export interface MatillionConnection { + /** + * Matillion Auth Configuration + */ + connection?: Matillion; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: MatillionType; +} + +/** + * Matillion Auth Configuration + * + * Matillion ETL Auth Config + */ +export interface Matillion { + /** + * Matillion Host + */ + hostPort: string; + /** + * Password to connect to the Matillion. + */ + password: string; + sslConfig?: Config; + type?: Type; + /** + * Username to connect to the Matillion. This user should have privileges to read all the + * metadata in Matillion. + */ + username: string; + [property: string]: any; +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +export enum Type { + MatillionETL = "MatillionETL", +} + +/** + * Service Type + * + * Service type. + */ +export enum MatillionType { + Matillion = "Matillion", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/nifiConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/nifiConnection.ts new file mode 100644 index 000000000000..619f12a4cb27 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/nifiConnection.ts @@ -0,0 +1,75 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Nifi Metadata Pipeline Connection Config + */ +export interface NifiConnection { + /** + * Pipeline Service Management/UI URI. + */ + hostPort: string; + /** + * We support username/password or client certificate authentication + */ + nifiConfig: NifiCredentialsConfiguration; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: NifiType; +} + +/** + * We support username/password or client certificate authentication + * + * username/password auth + * + * client certificate auth + */ +export interface NifiCredentialsConfiguration { + /** + * Nifi password to authenticate to the API. + */ + password?: string; + /** + * Nifi user to authenticate to the API. + */ + username?: string; + /** + * Boolean marking if we need to verify the SSL certs for Nifi. False by default. + */ + verifySSL?: boolean; + /** + * Path to the root CA certificate + */ + certificateAuthorityPath?: string; + /** + * Path to the client certificate + */ + clientCertificatePath?: string; + /** + * Path to the client key + */ + clientkeyPath?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum NifiType { + Nifi = "Nifi", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/openLineageConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/openLineageConnection.ts new file mode 100644 index 000000000000..5e77b15a703b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/openLineageConnection.ts @@ -0,0 +1,141 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenLineage Connection Config + */ +export interface OpenLineageConnection { + /** + * service type of the messaging source + */ + brokersUrl?: string; + /** + * consumer group name + */ + consumerGroupName?: string; + /** + * initial Kafka consumer offset + */ + consumerOffsets?: InitialConsumerOffsets; + /** + * max allowed wait time + */ + poolTimeout?: number; + /** + * SASL Configuration details. + */ + saslConfig?: SASLClientConfig; + /** + * Kafka security protocol config + */ + securityProtocol?: KafkaSecurityProtocol; + /** + * max allowed inactivity time + */ + sessionTimeout?: number; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + supportsMetadataExtraction?: boolean; + /** + * topic from where Open lineage events will be pulled + */ + topicName?: string; + /** + * Service Type + */ + type?: OpenLineageType; +} + +/** + * initial Kafka consumer offset + */ +export enum InitialConsumerOffsets { + Earliest = "earliest", + Latest = "latest", +} + +/** + * SASL Configuration details. + * + * SASL client configuration. + */ +export interface SASLClientConfig { + /** + * SASL security mechanism + */ + saslMechanism?: SaslMechanismType; + /** + * The SASL authentication password. + */ + saslPassword?: string; + /** + * The SASL authentication username. + */ + saslUsername?: string; +} + +/** + * SASL security mechanism + * + * SASL Mechanism consumer config property + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Kafka security protocol config + */ +export enum KafkaSecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslSSL = "SASL_SSL", +} + +/** + * SSL Configuration details. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum OpenLineageType { + OpenLineage = "OpenLineage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/sparkConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/sparkConnection.ts new file mode 100644 index 000000000000..3115fb4ea58d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/sparkConnection.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Spark Metadata Pipeline Connection Config + */ +export interface SparkConnection { + /** + * Service Type + */ + type?: SparkType; +} + +/** + * Service Type + * + * Service type. + */ +export enum SparkType { + Spark = "Spark", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/splineConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/splineConnection.ts new file mode 100644 index 000000000000..669b476d300d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/splineConnection.ts @@ -0,0 +1,41 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Spline Metadata Database Connection Config + */ +export interface SplineConnection { + /** + * Spline REST Server Host & Port. + */ + hostPort: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: SplineType; + /** + * Spline UI Host & Port. + */ + uiHostPort?: string; +} + +/** + * Service Type + * + * Service type. + */ +export enum SplineType { + Spline = "Spline", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/stitchConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/stitchConnection.ts new file mode 100644 index 000000000000..7c30014889ce --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/pipeline/stitchConnection.ts @@ -0,0 +1,41 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Stitch Connection + */ +export interface StitchConnection { + /** + * Host and port of the Stitch API host + */ + hostPort: string; + supportsMetadataExtraction?: boolean; + /** + * Token to connect to Stitch api doc + */ + token: string; + /** + * Service Type + */ + type?: StitchType; +} + +/** + * Service Type + * + * Service type. + */ +export enum StitchType { + Stitch = "Stitch", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/customSearchConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/customSearchConnection.ts new file mode 100644 index 000000000000..9822b5082400 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/customSearchConnection.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom Search Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface CustomSearchConnection { + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Custom search service type + */ + type: ServiceType; +} + +/** + * Custom search service type + */ +export enum ServiceType { + CustomSearch = "CustomSearch", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearch/apiAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearch/apiAuth.ts new file mode 100644 index 000000000000..3d0c580b1bc9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearch/apiAuth.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * API Key Authentication for ElasticSearch + */ +export interface APIAuth { + /** + * Elastic Search API Key for API Authentication + */ + apiKey?: string; + /** + * Elastic Search API Key ID for API Authentication + */ + apiKeyId?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearch/basicAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearch/basicAuth.ts new file mode 100644 index 000000000000..477a61dcf1b8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearch/basicAuth.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Basic Auth Configuration for ElasticSearch + */ +export interface BasicAuth { + /** + * Elastic Search Password for Login + */ + password?: string; + /** + * Elastic Search Username for Login + */ + username?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearchConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearchConnection.ts new file mode 100644 index 000000000000..193515355bb7 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/elasticSearchConnection.ts @@ -0,0 +1,122 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * ElasticSearch Connection. + */ +export interface ElasticSearchConnection { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + connectionArguments?: { [key: string]: any }; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Host and port of the ElasticSearch service. + */ + hostPort?: string; + sslConfig?: SSLConfig; + supportsMetadataExtraction?: boolean; + /** + * ElasticSearch Type + */ + type?: ElasticSearchType; +} + +/** + * Choose Auth Config Type. + * + * Basic Auth Configuration for ElasticSearch + * + * API Key Authentication for ElasticSearch + */ +export interface AuthConfigurationType { + /** + * Elastic Search Password for Login + */ + password?: string; + /** + * Elastic Search Username for Login + */ + username?: string; + /** + * Elastic Search API Key for API Authentication + */ + apiKey?: string; + /** + * Elastic Search API Key ID for API Authentication + */ + apiKeyId?: string; +} + +/** + * SSL Config + */ +export interface SSLConfig { + /** + * SSL Certificates + */ + certificates?: SSLCertificates; + [property: string]: any; +} + +/** + * SSL Certificates + * + * SSL Certificates By Path + * + * SSL Certificates By Values + */ +export interface SSLCertificates { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} + +/** + * ElasticSearch Type + * + * ElasticSearch service type + */ +export enum ElasticSearchType { + ElasticSearch = "ElasticSearch", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/openSearchConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/openSearchConnection.ts new file mode 100644 index 000000000000..9bec2590273e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/search/openSearchConnection.ts @@ -0,0 +1,71 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenSearch Connection. + */ +export interface OpenSearchConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Host and port of the OpenSearch service. + */ + hostPort: string; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * OpenSearch Password for Login + */ + password?: string; + /** + * Http/Https connection scheme + */ + scheme?: string; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs?: number; + supportsMetadataExtraction?: boolean; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; + /** + * Service Type + */ + type?: OpenSearchType; + /** + * OpenSearch Username for Login + */ + username?: string; +} + +/** + * Service Type + * + * OpenSearch service type + */ +export enum OpenSearchType { + OpenSearch = "OpenSearch", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/serviceConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/serviceConnection.ts new file mode 100644 index 000000000000..3975eef26b8d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/serviceConnection.ts @@ -0,0 +1,3360 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Groups source connection configurations. + */ +export interface ServiceConnection { + /** + * Service Connection. + */ + serviceConnection?: ServiceConnectionClass; + [property: string]: any; +} + +/** + * Service Connection. + * + * Supported services + * + * API Service Connection. + * + * Dashboard Connection. + * + * Database Connection. + * + * Metadata Service Connection. + * + * Pipeline Connection. + * + * MlModel Connection. + * + * Storage Connection. + * + * search Connection. + */ +export interface ServiceConnectionClass { + config?: ConfigClass; +} + +/** + * REST Connection Config + * + * Looker Connection Config + * + * Metabase Connection Config + * + * PowerBI Connection Config + * + * PowerBIReportServer Connection Config + * + * Redash Connection Config + * + * Superset Connection Config + * + * Tableau Connection Config + * + * Mode Connection Config + * + * Custom Dashboard Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Domo Dashboard Connection Config + * + * QuickSight Connection Config + * + * Qlik Sense Connection Config + * + * Lightdash Connection Config + * + * MicroStrategy Connection Config + * + * Qlik Cloud Connection Config + * + * Sigma Connection Config + * + * Google BigQuery Connection Config + * + * Google BigTable Connection Config + * + * AWS Athena Connection Config + * + * Azure SQL Connection Config + * + * Clickhouse Connection Config + * + * Databricks Connection Config + * + * Db2 Connection Config + * + * DeltaLake Database Connection Config + * + * Druid Connection Config + * + * DynamoDB Connection Config + * + * Glue Connection Config + * + * Hive SQL Connection Config + * + * Impala SQL Connection Config + * + * MariaDB Database Connection Config + * + * Mssql Database Connection Config + * + * Mysql Database Connection Config + * + * SQLite Database Connection Config + * + * Oracle Database Connection Config + * + * Postgres Database Connection Config + * + * Presto Database Connection Config + * + * Redshift Connection Config + * + * Salesforce Connection Config + * + * SingleStore Database Connection Config + * + * Snowflake Connection Config + * + * Trino Connection Config + * + * Vertica Connection Config + * + * PinotDB Database Connection Config + * + * Datalake Connection Config + * + * Domo Database Connection Config + * + * Custom Database Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Sap Hana Database Connection Config + * + * MongoDB Connection Config + * + * Couchbase Connection Config + * + * Greenplum Database Connection Config + * + * Doris Database Connection Config + * + * UnityCatalog Connection Config + * + * SAS Connection Config + * + * Iceberg Catalog Connection Config + * + * Teradata Database Connection Config + * + * Sap ERP Database Connection Config + * + * Synapse Database Connection Config + * + * Exasol Database Connection Config + * + * Kafka Connection Config + * + * Redpanda Connection Config + * + * Kinesis Connection Config + * + * Custom Messaging Service Connection to build a source that is not supported by + * OpenMetadata yet. + * + * Amundsen Connection Config + * + * Metadata to ElasticSearch Connection Config + * + * OpenMetadata Connection Config + * + * Atlas Connection Config + * + * Alation Connection Config + * + * Alation Sink Connection Config + * + * Airflow Metadata Database Connection Config + * + * Glue Pipeline Connection Config + * + * Airbyte Metadata Database Connection Config + * + * Fivetran Metadata Database Connection Config + * + * Flink Metadata Connection Config + * + * Dagster Metadata Database Connection Config + * + * Nifi Metadata Pipeline Connection Config + * + * Domo Pipeline Connection Config + * + * Custom Pipeline Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Spline Metadata Database Connection Config + * + * Spark Metadata Pipeline Connection Config + * + * OpenLineage Connection Config + * + * KafkaConnect Connection Config + * + * DBTCloud Connection Config + * + * Matillion Connection + * + * Azure Data Factory Connection Config + * + * Stitch Connection + * + * MlFlow Connection Config + * + * Sklearn Connection Config + * + * Custom MlModel Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * SageMaker Connection Config + * + * Google VertexAI Connection Config + * + * S3 Connection. + * + * ADLS Connection. + * + * GCS Connection. + * + * Custom Storage Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * ElasticSearch Connection. + * + * OpenSearch Connection. + * + * Custom Search Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface ConfigClass { + /** + * Open API Schema URL. + */ + openAPISchemaURL?: string; + /** + * Supports Metadata Extraction. + */ + supportsMetadataExtraction?: boolean; + /** + * Generated Token to connect to OpenAPI Schema. + * + * token to connect to Qlik Cloud. + * + * Generated Token to connect to Databricks. + * + * To Connect to Dagster Cloud + * + * Generated Token to connect to DBTCloud. + * + * Token to connect to Stitch api doc + */ + token?: string; + /** + * REST API Type + * + * Service Type + * + * Custom dashboard service type + * + * Custom database service type + * + * Custom messaging service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * Custom search service type + */ + type?: RESTType; + /** + * User's Client ID. This user should have privileges to read all the metadata in Looker. + * + * client_id for PowerBI. + * + * Client ID for DOMO + * + * client_id for Sigma. + */ + clientId?: string; + /** + * User's Client Secret. + * + * clientSecret for PowerBI. + * + * clientSecret for Sigma. + */ + clientSecret?: string; + /** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + */ + gitCredentials?: GitHubCredentials; + /** + * URL to the Looker instance. + * + * Host and Port of the Metabase instance. + * + * Dashboard URL for PowerBI service. + * + * Dashboard URL for PowerBI Report Server. + * + * URL for the Redash instance + * + * URL for the superset instance. + * + * Tableau Server. + * + * URL for the mode instance. + * + * URL for the Qlik instance. + * + * Address for your running Lightdash instance + * + * Host and Port of the MicroStrategy instance. + * + * Host and Port of the Qlik Cloud instance. + * + * Sigma API url. + * + * BigQuery APIs URL. + * + * Host and port of the AzureSQL service. + * + * Host and port of the Clickhouse service. + * + * Host and port of the Databricks service. + * + * Host and port of the DB2 service. + * + * Host and port of the Druid service. + * + * Host and port of the Hive service. + * + * Host and port of the Impala service. + * + * Host and port of the MariaDB service. + * + * Host and port of the MSSQL service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Host and port of the Oracle service. + * + * Host and port of the source service. + * + * Host and port of the Presto service. + * + * Host and port of the Redshift service. + * + * Host and port of the SingleStore service. + * + * Host and port of the Trino service. + * + * Host and port of the Vertica service. + * + * Host and port of the PinotDB Broker service. + * + * Host and port of the MongoDB service when using the `mongodb` connection scheme. Only + * host when using the `mongodb+srv` scheme. + * + * Host and port of the Doris service. + * + * Host and port of the Teradata service. + * + * Host and Port of the SAP ERP instance. + * + * Host and port of the Azure Synapse service. + * + * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: + * bolt://localhost:7687. + * + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + * + * Host and port of the Atlas service. + * + * Host and port of the Alation service. + * + * Pipeline Service Management/UI URI. + * + * Pipeline Service Management/UI URL. + * + * Spline REST Server Host & Port. + * + * KafkaConnect Service Management/UI URI. + * + * Host and port of the Stitch API host + * + * Host and port of the ElasticSearch service. + * + * Host and port of the OpenSearch service. + */ + hostPort?: string; + /** + * Password to connect to Metabase. + * + * Password to connect to PowerBI report server. + * + * Password to connect to MicroStrategy. + * + * Password to connect to AzureSQL. + * + * Password to connect to Clickhouse. + * + * Password to connect to DB2. + * + * Password to connect to Druid. + * + * Password to connect to Hive. + * + * Password to connect to Impala. + * + * Password to connect to MariaDB. + * + * Password to connect to MSSQL. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to Oracle. + * + * Password to connect to Presto. + * + * Password to connect to Redshift. + * + * Password to connect to the Salesforce. + * + * Password to connect to SingleStore. + * + * Password to connect to Snowflake. + * + * Password to connect to Vertica. + * + * password to connect to the PinotDB. + * + * Password to connect to MongoDB. + * + * Password to connect to Couchbase. + * + * Password to connect to Doris. + * + * Password to connect to SAS Viya + * + * Password to connect to Teradata. + * + * Password to connect to Azure Synapse. + * + * Password to connect to Exasol. + * + * password to connect to the Amundsen Neo4j Connection. + * + * password to connect to the Atlas. + * + * Password to connect to Airbyte. + * + * OpenSearch Password for Login + */ + password?: string; + /** + * Username to connect to Metabase. This user should have privileges to read all the + * metadata in Metabase. + * + * Username to connect to PowerBI report server. + * + * Username for Redash + * + * Username to connect to MicroStrategy. This user should have privileges to read all the + * metadata in MicroStrategy. + * + * Username to connect to AzureSQL. This user should have privileges to read the metadata. + * + * Username to connect to Clickhouse. This user should have privileges to read all the + * metadata in Clickhouse. + * + * Username to connect to DB2. This user should have privileges to read all the metadata in + * DB2. + * + * Username to connect to Druid. This user should have privileges to read all the metadata + * in Druid. + * + * Username to connect to Hive. This user should have privileges to read all the metadata in + * Hive. + * + * Username to connect to Impala. This user should have privileges to read all the metadata + * in Impala. + * + * Username to connect to MariaDB. This user should have privileges to read all the metadata + * in MariaDB. + * + * Username to connect to MSSQL. This user should have privileges to read all the metadata + * in MsSQL. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to Oracle. This user should have privileges to read all the metadata + * in Oracle. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to Presto. This user should have privileges to read all the metadata + * in Postgres. + * + * Username to connect to Redshift. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to the Salesforce. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to SingleStore. This user should have privileges to read all the + * metadata in MySQL. + * + * Username to connect to Snowflake. This user should have privileges to read all the + * metadata in Snowflake. + * + * Username to connect to Trino. This user should have privileges to read all the metadata + * in Trino. + * + * Username to connect to Vertica. This user should have privileges to read all the metadata + * in Vertica. + * + * username to connect to the PinotDB. This user should have privileges to read all the + * metadata in PinotDB. + * + * Username to connect to MongoDB. This user should have privileges to read all the metadata + * in MongoDB. + * + * Username to connect to Couchbase. This user should have privileges to read all the + * metadata in Couchbase. + * + * Username to connect to Greenplum. This user should have privileges to read all the + * metadata in Greenplum. + * + * Username to connect to Doris. This user should have privileges to read all the metadata + * in Doris. + * + * Username to connect to SAS Viya. + * + * Username to connect to Teradata. This user should have privileges to read all the + * metadata in Teradata. + * + * Username to connect to Azure Synapse. This user should have privileges to read all the + * metadata in Azure Synapse. + * + * Username to connect to Exasol. This user should have privileges to read all the metadata + * in Exasol. + * + * username to connect to the Amundsen Neo4j Connection. + * + * username to connect to the Atlas. This user should have privileges to read all the + * metadata in Atlas. + * + * Username to connect to Airbyte. + * + * OpenSearch Username for Login + */ + username?: string; + /** + * Authority URI for the PowerBI service. + */ + authorityURI?: string; + /** + * Entity Limit set here will be used to paginate the PowerBi APIs + */ + pagination_entity_per_page?: number; + /** + * Source to get the .pbit files to extract lineage information + */ + pbitFilesSource?: PowerBIPbitFilesSource; + /** + * PowerBI secrets. + */ + scope?: string[]; + /** + * Tenant ID for PowerBI. + */ + tenantId?: string; + /** + * Fetch the PowerBI metadata using admin APIs + */ + useAdminApis?: boolean; + /** + * Web Portal Virtual Directory Name. + */ + webPortalVirtualDirectory?: string; + /** + * API key of the redash instance to access. + * + * The personal access token you can generate in the Lightdash app under the user settings + * + * API key to authenticate with the SAP ERP APIs. + * + * Fivetran API Secret. + */ + apiKey?: string; + /** + * Version of the Redash instance + */ + redashVersion?: string; + /** + * Choose between API or database connection fetch metadata from superset. + * + * Choose between Database connection or HDB User Store connection. + * + * Choose between mysql and postgres connection for alation database + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Matillion Auth Configuration + */ + connection?: ConnectionObject; + /** + * Tableau API version. + * + * Sigma API version. + * + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * Types of methods used to authenticate to the tableau instance + * + * Choose Auth Config Type. + * + * Types of methods used to authenticate to the alation instance + */ + authType?: AuthenticationTypeForTableau | NoConfigAuthenticationTypes; + /** + * Tableau Environment Name. + */ + env?: string; + /** + * Pagination limit used while querying the tableau metadata API for getting data sources + * + * Pagination limit used while querying the SAP ERP API for fetching the entities + * + * Pagination limit used for Alation APIs pagination + */ + paginationLimit?: number; + /** + * Tableau Site Name. + */ + siteName?: string; + /** + * Tableau Site Url. + */ + siteUrl?: string; + /** + * SSL Configuration details. + * + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: SSLConfigObject; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + * + * Boolean marking if we need to verify the SSL certs for KafkaConnect REST API. True by + * default. + */ + verifySSL?: boolean | VerifySSL; + /** + * Access Token for Mode Dashboard + * + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * Access Token Password for Mode Dashboard + */ + accessTokenPassword?: string; + /** + * Filter query parameter for some of the Mode API calls + */ + filterQueryParam?: string; + /** + * Mode Workspace Name + */ + workspaceName?: string; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret Token to connect DOMO + * + * Secret token to connect to DOMO + */ + secretToken?: string; + /** + * AWS Account ID + */ + awsAccountId?: string; + awsConfig?: AWSCredentials; + /** + * The authentication method that the user uses to sign in. + */ + identityType?: IdentityType; + /** + * The Amazon QuickSight namespace that contains the dashboard IDs in this request ( To be + * provided when identityType is `ANONYMOUS` ) + */ + namespace?: string; + certificates?: QlikCertificatesBy; + /** + * Qlik Sense Base URL, used for genrating dashboard & chat url + */ + displayUrl?: string; + /** + * User Directory. + */ + userDirectory?: string; + /** + * User ID. + */ + userId?: string; + /** + * Validate Host Name + */ + validateHostName?: boolean; + /** + * The Project UUID for your Lightdash instance + */ + projectUUID?: string; + /** + * Use if your Lightdash instance is behind a proxy like (Cloud IAP) + */ + proxyAuthentication?: string; + /** + * The Space UUID for your Lightdash instance + */ + spaceUUID?: string; + /** + * Login Mode for Microstrategy's REST API connection. You can authenticate with one of the + * following authentication modes: `Standard (1)`, `Anonymous (8)`. Default will be + * `Standard (1)`. If you're using demo account for Microstrategy, it will be needed to + * authenticate through loginMode `8`. + */ + loginMode?: string; + /** + * MicroStrategy Project Name + * + * Project name to create the refreshToken. Can be anything + */ + projectName?: string; + /** + * If using Metastore, Key-Value pairs that will be used to add configs to the SparkSession. + */ + connectionArguments?: { [key: string]: any }; + /** + * GCP Credentials + * + * Azure Credentials + */ + credentials?: GCPCredentials; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + * + * Mongo connection scheme options. + * + * Couchbase driver scheme options. + * + * Http/Https connection scheme + */ + scheme?: string; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + /** + * Supports Lineage Extraction. + */ + supportsLineageExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + /** + * Supports Usage Extraction. + */ + supportsUsageExtraction?: boolean; + /** + * Taxonomy location used to fetch policy tags + */ + taxonomyLocation?: string; + /** + * Project IDs used to fetch policy tags + */ + taxonomyProjectID?: string[]; + /** + * Location used to query INFORMATION_SCHEMA.JOBS_BY_PROJECT to fetch usage data. You can + * pass multi-regions, such as `us` or `eu`, or you specific region. Australia and Asia + * multi-regions are not yet in GA. + */ + usageLocation?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * S3 Staging Directory. Example: s3://postgres/input/ + */ + s3StagingDir?: string; + /** + * Athena workgroup. + */ + workgroup?: string; + /** + * This parameter determines the mode of authentication for connecting to AzureSQL using + * ODBC. If 'Active Directory Password' is selected, you need to provide the password. If + * 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with AzureSQL. + * + * This parameter determines the mode of authentication for connecting to Azure Synapse + * using ODBC. If 'Active Directory Password' is selected, you need to provide the password. + * If 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with Azure Synapse. + */ + authenticationMode?: any[] | boolean | number | null | AuthenticationModeObject | string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + * + * Database of the data source. + * + * Initial Redshift database to connect to. If you want to ingest all databases, set + * ingestAllDatabases to true. + */ + database?: string; + /** + * SQLAlchemy driver for AzureSQL. + * + * ODBC driver version in case of pyodbc connection. + */ + driver?: string; + /** + * Ingest data from all databases in Azuresql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Mssql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Redshift. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Greenplum. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Azure Synapse. You can use databaseFilterPattern on top + * of this. + */ + ingestAllDatabases?: boolean; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + * + * Optional name to give to the schema in OpenMetadata. If left blank, we will use default + * as the schema name + */ + databaseSchema?: string; + /** + * Clickhouse SQL connection duration. + */ + duration?: number; + /** + * Use HTTPS Protocol for connection with clickhouse + */ + https?: boolean; + /** + * Path to key file for establishing secure connection + */ + keyfile?: string; + /** + * Establish secure connection with clickhouse + */ + secure?: boolean; + /** + * Catalog of the data source(Example: hive_metastore). This is optional parameter, if you + * would like to restrict the metadata reading to a single catalog. When left blank, + * OpenMetadata Ingestion attempts to scan all the catalog. + * + * Presto catalog + * + * Catalog of the data source. + */ + catalog?: IcebergCatalog | string; + /** + * The maximum amount of time (in seconds) to wait for a successful connection to the data + * source. If the connection attempt takes longer than this timeout period, an error will be + * returned. + */ + connectionTimeout?: number; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + supportsViewLineageExtraction?: boolean; + /** + * Available sources to fetch the metadata. + * + * Available sources to fetch files. + * + * Available sources to fetch metadata. + */ + configSource?: DeltaLakeConfigurationSource; + /** + * Authentication mode to connect to hive. + */ + auth?: AuthEnum; + /** + * Authentication options to pass to Hive connector. These options are based on SQLAlchemy. + * + * Authentication options to pass to Impala connector. These options are based on SQLAlchemy. + */ + authOptions?: string; + /** + * If authenticating with Kerberos specify the Kerberos service name + */ + kerberosServiceName?: string; + /** + * Hive Metastore Connection Details + */ + metastoreConnection?: HiveMetastoreConnectionDetails; + /** + * Authentication mode to connect to Impala. + */ + authMechanism?: AuthMechanismEnum; + /** + * Establish secure connection with Impala + */ + useSSL?: boolean; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * This directory will be used to set the LD_LIBRARY_PATH env variable. It is required if + * you need to enable thick connection mode. By default, we bring instant client 19 and + * point to /instantclient. + */ + instantClientDirectory?: string; + /** + * Connect with oracle by either passing service name or database schema name. + */ + oracleConnectionType?: OracleConnectionType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + sslMode?: SSLMode; + /** + * Protocol ( Connection Argument ) to connect to Presto. + */ + protocol?: string; + /** + * Verify ( Connection Argument for SSL ) to connect to Presto. + * + * Verify ( Connection Argument for SSL ) to connect to Trino. + */ + verify?: string; + /** + * Salesforce Organization ID is the unique identifier for your Salesforce identity + */ + organizationId?: string; + /** + * API version of the Salesforce instance + */ + salesforceApiVersion?: string; + /** + * Domain of Salesforce instance + */ + salesforceDomain?: string; + /** + * Salesforce Security Token. + */ + securityToken?: string; + /** + * Salesforce Object Name. + */ + sobjectName?: string; + /** + * If the Snowflake URL is https://xyz1234.us-east-1.gcp.snowflakecomputing.com, then the + * account is xyz1234.us-east-1.gcp + * + * Specifies an account string to override the default account string defined for the + * database user. Accounts are used by the database for workload management and resource + * usage monitoring. + */ + account?: string; + /** + * Optional configuration for ingestion to keep the client session active in case the + * ingestion process runs for longer durations. + */ + clientSessionKeepAlive?: boolean; + /** + * Optional configuration for ingestion of TRANSIENT tables, By default, it will skip the + * TRANSIENT tables. + */ + includeTransientTables?: boolean; + /** + * Connection to Snowflake instance via Private Key + */ + privateKey?: string; + /** + * Session query tag used to monitor usage on snowflake. To use a query tag snowflake user + * should have enough privileges to alter the session. + */ + queryTag?: string; + /** + * Snowflake Role. + */ + role?: string; + /** + * Snowflake Passphrase Key used with Private Key + */ + snowflakePrivatekeyPassphrase?: string; + /** + * Snowflake warehouse. + */ + warehouse?: string; + /** + * Proxies for the connection to Trino data source + */ + proxies?: { [key: string]: string }; + /** + * Pinot Controller Host and Port of the data source. + */ + pinotControllerHost?: string; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + /** + * Couchbase connection Bucket options. + */ + bucket?: string; + /** + * Hostname of the Couchbase service. + */ + hostport?: string; + /** + * Enable dataflow for ingestion + */ + dataflows?: boolean; + /** + * Custom filter for dataflows + */ + dataflowsCustomFilter?: { [key: string]: any } | string; + /** + * Enable datatables for ingestion + */ + datatables?: boolean; + /** + * Custom filter for datatables + */ + dataTablesCustomFilter?: { [key: string]: any } | string; + /** + * Enable report for ingestion + */ + reports?: boolean; + /** + * Custom filter for reports + */ + reportsCustomFilter?: { [key: string]: any } | string; + /** + * Hostname of SAS Viya deployment. + */ + serverHost?: string; + /** + * Table property to look for the Owner. + */ + ownershipProperty?: string; + /** + * Specifies additional data needed by a logon mechanism, such as a secure token, + * Distinguished Name, or a domain/realm name. LOGDATA values are specific to each logon + * mechanism. + */ + logdata?: string; + /** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ + logmech?: Logmech; + /** + * Specifies the transaction mode for the connection + */ + tmode?: TransactionMode; + /** + * Client SSL/TLS settings. + */ + tls?: SSLTLSSettings; + /** + * basic.auth.user.info schema registry config property, Client HTTP credentials in the form + * of username:password. + */ + basicAuthUserInfo?: string; + /** + * Kafka bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + * + * Redpanda bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + */ + bootstrapServers?: string; + /** + * Confluent Kafka Consumer Config. From + * https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md + * + * Confluent Redpanda Consumer Config + */ + consumerConfig?: { [key: string]: any }; + /** + * sasl.mechanism Consumer Config property + */ + saslMechanism?: SaslMechanismType; + /** + * sasl.password consumer config property + */ + saslPassword?: string; + /** + * sasl.username consumer config property + */ + saslUsername?: string; + /** + * Confluent Kafka Schema Registry Config. From + * https://docs.confluent.io/5.5.1/clients/confluent-kafka-python/index.html#confluent_kafka.schema_registry.SchemaRegistryClient + * + * Confluent Redpanda Schema Registry Config. + */ + schemaRegistryConfig?: { [key: string]: any }; + /** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + */ + schemaRegistrySSL?: SchemaRegistrySSLClass; + /** + * Schema Registry Topic Suffix Name. The suffix to be appended to the topic name to get + * topic schema from registry. + */ + schemaRegistryTopicSuffixName?: string; + /** + * Confluent Kafka Schema Registry URL. + * + * Confluent Redpanda Schema Registry URL. + */ + schemaRegistryURL?: string; + /** + * security.protocol consumer config property + * + * Kafka security protocol config + */ + securityProtocol?: KafkaSecurityProtocol; + /** + * Enable encryption for the Amundsen Neo4j Connection. + */ + encrypted?: boolean; + /** + * Maximum connection lifetime for the Amundsen Neo4j Connection. + */ + maxConnectionLifeTime?: number; + /** + * Enable SSL validation for the Amundsen Neo4j Connection. + */ + validateSSL?: boolean; + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * List of entities that you need to reindex + */ + entities?: string[]; + recreateIndex?: boolean; + runMode?: RunMode; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * service type of the data source. + */ + databaseServiceName?: string[]; + /** + * Name of the Entity Type available in Atlas. + */ + entity_type?: string; + /** + * service type of the messaging source + * + * Name of the Kafka Messaging Service associated with this KafkaConnect Pipeline Service. + * e.g. local_kafka + */ + messagingServiceName?: string[] | string; + /** + * Custom OpenMetadata Classification name for alation tags. + */ + alationTagClassificationName?: string; + /** + * Specifies if hidden datasources should be included while ingesting. + */ + includeHiddenDatasources?: boolean; + /** + * Specifies if undeployed datasources should be included while ingesting. + */ + includeUndeployedDatasources?: boolean; + /** + * Specifies if Dashboards are to be ingested while running the ingestion job. + */ + ingestDashboards?: boolean; + /** + * Specifies if Datasources are to be ingested while running the ingestion job. + */ + ingestDatasources?: boolean; + /** + * Specifies if Domains are to be ingested while running the ingestion job. + */ + ingestDomains?: boolean; + /** + * Specifies if Knowledge Articles are to be ingested while running the ingestion job. + */ + ingestKnowledgeArticles?: boolean; + /** + * Specifies if Users and Groups are to be ingested while running the ingestion job. + */ + ingestUsersAndGroups?: boolean; + datasourceLinks?: { [key: string]: string }; + /** + * Pipeline Service Number Of Status + */ + numberOfStatus?: number; + /** + * Fivetran API Secret. + */ + apiSecret?: string; + /** + * Fivetran API Limit For Pagination. + */ + limit?: number; + /** + * URL to the Dagster instance + * + * DBT cloud Access URL. + */ + host?: string; + /** + * Connection Time Limit Between OM and Dagster Graphql API in second + */ + timeout?: number; + /** + * We support username/password or client certificate authentication + */ + nifiConfig?: NifiCredentialsConfiguration; + /** + * Spline UI Host & Port. + */ + uiHostPort?: string; + /** + * service type of the messaging source + */ + brokersUrl?: string; + /** + * consumer group name + */ + consumerGroupName?: string; + /** + * initial Kafka consumer offset + */ + consumerOffsets?: InitialConsumerOffsets; + /** + * max allowed wait time + */ + poolTimeout?: number; + /** + * SASL Configuration details. + */ + saslConfig?: SASLClientConfig; + /** + * max allowed inactivity time + */ + sessionTimeout?: number; + /** + * topic from where Open lineage events will be pulled + */ + topicName?: string; + /** + * We support username/password or No Authentication + */ + KafkaConnectConfig?: UsernamePasswordAuthentication; + /** + * ID of your DBT cloud account + */ + accountId?: string; + /** + * DBT cloud Metadata API URL. + */ + discoveryAPI?: string; + /** + * List of IDs of your DBT cloud jobs seperated by comma `,` + */ + jobIds?: string[]; + /** + * List of IDs of your DBT cloud projects seperated by comma `,` + */ + projectIds?: string[]; + /** + * The name of your azure data factory. + */ + factory_name?: string; + /** + * The name of your resource group the data factory is associated with. + */ + resource_group_name?: string; + /** + * Number of days in the past to filter pipeline runs. + */ + run_filter_days?: number; + /** + * The azure subscription identifier. + */ + subscription_id?: string; + /** + * Mlflow Model registry backend. E.g., + * mysql+pymysql://mlflow:password@localhost:3307/experiments + */ + registryUri?: string; + /** + * Mlflow Experiment tracking URI. E.g., http://localhost:5000 + */ + trackingUri?: string; + /** + * location/region of google cloud project + */ + location?: string; + /** + * Bucket Names of the data source. + */ + bucketNames?: string[]; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs?: number; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; +} + +/** + * We support username/password or No Authentication + * + * username/password auth + */ +export interface UsernamePasswordAuthentication { + /** + * KafkaConnect password to authenticate to the API. + */ + password?: string; + /** + * KafkaConnect user to authenticate to the API. + */ + username?: string; +} + +/** + * Authentication mode to connect to hive. + */ +export enum AuthEnum { + Basic = "BASIC", + Custom = "CUSTOM", + Gssapi = "GSSAPI", + Jwt = "JWT", + Kerberos = "KERBEROS", + LDAP = "LDAP", + None = "NONE", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Authentication mode to connect to Impala. + */ +export enum AuthMechanismEnum { + Gssapi = "GSSAPI", + Jwt = "JWT", + LDAP = "LDAP", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Types of methods used to authenticate to the tableau instance + * + * Basic Auth Credentials + * + * Access Token Auth Credentials + * + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + * + * Types of methods used to authenticate to the alation instance + * + * API Access Token Auth Credentials + * + * Basic Auth Configuration for ElasticSearch + * + * SSL Certificates By Path + */ +export interface AuthenticationTypeForTableau { + /** + * Password to access the service. + * + * Password to connect to source. + * + * Elastic Search Password for Login + */ + password?: string; + /** + * Username to access the service. + * + * Elastic Search Username for Login + */ + username?: string; + /** + * Personal Access Token Name. + */ + personalAccessTokenName?: string; + /** + * Personal Access Token Secret. + */ + personalAccessTokenSecret?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; + /** + * JWT to connect to source. + */ + jwt?: string; + /** + * Access Token for the API + */ + accessToken?: string; + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Database Authentication types not requiring config. + */ +export enum NoConfigAuthenticationTypes { + OAuth2 = "OAuth2", +} + +export interface AuthenticationModeObject { + /** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ + authentication?: Authentication; + /** + * Connection Timeout from Connection String for AzureSQL. + * + * Connection Timeout from Connection String for Azure Synapse. + */ + connectionTimeout?: number; + /** + * Encrypt from Connection String for AzureSQL. + * + * Encrypt from Connection String for Azure Synapse. + */ + encrypt?: boolean; + /** + * Trust Server Certificate from Connection String for AzureSQL. + * + * Trust Server Certificate from Connection String for Azure Synapse. + */ + trustServerCertificate?: boolean; + [property: string]: any; +} + +/** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ +export enum Authentication { + ActiveDirectoryIntegrated = "ActiveDirectoryIntegrated", + ActiveDirectoryPassword = "ActiveDirectoryPassword", +} + +/** + * Iceberg Catalog configuration. + */ +export interface IcebergCatalog { + /** + * Catalog connection configuration, depending on your catalog type. + */ + connection: Connection; + /** + * Custom Database Name for your Iceberg Service. If not set it will be 'default'. + */ + databaseName?: string; + /** + * Catalog Name. + */ + name: string; + /** + * Warehouse Location. Used to specify a custom warehouse location if needed. + */ + warehouseLocation?: string; +} + +/** + * Catalog connection configuration, depending on your catalog type. + * + * Iceberg Hive Catalog configuration. + * + * Iceberg REST Catalog configuration. + * + * Iceberg Glue Catalog configuration. + * + * Iceberg DynamoDB Catalog configuration. + */ +export interface Connection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + * + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri?: string; + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + awsConfig?: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName?: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * Qlik Authentication Certificate By Values + * + * Qlik Authentication Certificate File Path + */ +export interface QlikCertificatesBy { + sslConfig?: SchemaRegistrySSLClass; + /** + * Client Certificate + */ + clientCertificate?: string; + /** + * Client Key Certificate. + */ + clientKeyCertificate?: string; + /** + * Root Certificate. + */ + rootCertificate?: string; + [property: string]: any; +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface SchemaRegistrySSLClass { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Available sources to fetch the metadata. + * + * Deltalake Metastore configuration. + * + * DeltaLake Storage Connection Config + * + * Available sources to fetch files. + * + * Local config source where no extra information needs to be sent. + * + * Azure Datalake Storage will ingest files in container + * + * DataLake GCS storage will ingest metadata of files + * + * DataLake S3 bucket will ingest metadata of files in bucket + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface DeltaLakeConfigurationSource { + /** + * pySpark App Name. + */ + appName?: string; + /** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + */ + connection?: ConnectionClass; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + securityConfig?: SecurityConfigClass; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface ConnectionClass { + /** + * Thrift connection to the metastore service. E.g., localhost:9083 + */ + metastoreHostPort?: string; + /** + * Driver class name for JDBC metastore. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionDriverName sparks property. E.g., + * org.mariadb.jdbc.Driver + */ + driverName?: string; + /** + * Class path to JDBC driver required for JDBC connection. The value will be mapped as + * spark.driver.extraClassPath sparks property. + */ + jdbcDriverClassPath?: string; + /** + * JDBC connection to the metastore database. E.g., jdbc:mysql://localhost:3306/demo_hive + */ + metastoreDb?: string; + /** + * Password to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionPassword sparks property. + */ + password?: string; + /** + * Username to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionUserName sparks property. + */ + username?: string; + /** + * Local path for the local file with metastore data. E.g., /tmp/metastore.db + */ + metastoreFilePath?: string; + securityConfig?: AWSCredentials; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + * + * GCP credentials configs. + * + * GCP Credentials + * + * AWS credentials configs. + */ +export interface SecurityConfigClass { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Choose between API or database connection fetch metadata from superset. + * + * Superset API Connection Config + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + * + * Choose between Database connection or HDB User Store connection. + * + * Sap Hana Database SQL Connection Config + * + * Sap Hana Database HDB User Store Connection Config + * + * Choose between mysql and postgres connection for alation database + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Lineage Backend Connection Config + * + * SQLite Database Connection Config + * + * Matillion Auth Configuration + * + * Matillion ETL Auth Config + */ +export interface ConnectionObject { + /** + * Password for Superset. + * + * Password to connect to Hana. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to the Matillion. + */ + password?: string; + /** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ + provider?: Provider; + /** + * SSL Configuration details. + */ + sslConfig?: ConnectionSSLConfig; + /** + * Username for Superset. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to Hana. This user should have privileges to read all the metadata. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to the Matillion. This user should have privileges to read all the + * metadata in Matillion. + */ + username?: string; + verifySSL?: VerifySSL; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + * + * Database of the data source. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + * + * Host and port of the Hana service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Matillion Host + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: ConnectionScheme; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: ConnectionType; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * Database Schema of the data source. This is an optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * HDB Store User Key generated from the command `hdbuserstore SET + * ` + */ + userKey?: string; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + supportsViewLineageExtraction?: boolean; + [property: string]: any; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ +export enum Provider { + DB = "db", + LDAP = "ldap", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum ConnectionScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", + SqlitePysqlite = "sqlite+pysqlite", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + */ +export interface ConnectionSSLConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum ConnectionType { + Backend = "Backend", + MatillionETL = "MatillionETL", + Mysql = "Mysql", + Postgres = "Postgres", + SQLite = "SQLite", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + * + * Flag to verify SSL Certificate for OpenMetadata Server. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * initial Kafka consumer offset + */ +export enum InitialConsumerOffsets { + Earliest = "earliest", + Latest = "latest", +} + +/** + * GCP credentials configs. + * + * GCP Credentials + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + * + * Do not set any credentials. Note that credentials are required to extract .lkml views and + * their lineage. + * + * Credentials for a GitHub repository + * + * Credentials for a BitBucket repository + * + * Credentials for a Gitlab repository + */ +export interface GitHubCredentials { + repositoryName?: string; + repositoryOwner?: string; + token?: string; + /** + * Credentials Type + */ + type?: GitHubCredentialsType; + /** + * Main production branch of the repository. E.g., `main` + */ + branch?: string; +} + +/** + * Credentials Type + * + * GitHub Credentials type + * + * BitBucket Credentials type + * + * Gitlab Credentials type + */ +export enum GitHubCredentialsType { + BitBucket = "BitBucket", + GitHub = "GitHub", + Gitlab = "Gitlab", +} + +/** + * The authentication method that the user uses to sign in. + */ +export enum IdentityType { + Anonymous = "ANONYMOUS", + Iam = "IAM", + Quicksight = "QUICKSIGHT", +} + +/** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ +export enum Logmech { + Custom = "CUSTOM", + Jwt = "JWT", + Krb5 = "KRB5", + LDAP = "LDAP", + Td2 = "TD2", + Tdnego = "TDNEGO", +} + +/** + * Hive Metastore Connection Details + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface HiveMetastoreConnectionDetails { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: HiveMetastoreConnectionDetailsScheme; + /** + * SSL Configuration details. + */ + sslConfig?: SchemaRegistrySSLClass; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: HiveMetastoreConnectionDetailsType; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum HiveMetastoreConnectionDetailsScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Service Type + * + * Service type. + */ +export enum HiveMetastoreConnectionDetailsType { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * We support username/password or client certificate authentication + * + * username/password auth + * + * client certificate auth + */ +export interface NifiCredentialsConfiguration { + /** + * Nifi password to authenticate to the API. + */ + password?: string; + /** + * Nifi user to authenticate to the API. + */ + username?: string; + /** + * Boolean marking if we need to verify the SSL certs for Nifi. False by default. + */ + verifySSL?: boolean; + /** + * Path to the root CA certificate + */ + certificateAuthorityPath?: string; + /** + * Path to the client certificate + */ + clientCertificatePath?: string; + /** + * Path to the client key + */ + clientkeyPath?: string; +} + +/** + * Connect with oracle by either passing service name or database schema name. + */ +export interface OracleConnectionType { + /** + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + */ + databaseSchema?: string; + /** + * The Oracle Service name is the TNS alias that you give when you remotely connect to your + * database. + */ + oracleServiceName?: string; + /** + * Pass the full constructed TNS string, e.g., + * (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1530)))(CONNECT_DATA=(SID=MYSERVICENAME))). + */ + oracleTNSConnection?: string; + [property: string]: any; +} + +/** + * Source to get the .pbit files to extract lineage information + * + * Local config source where no extra information needs to be sent. + * + * Azure storage config for pbit files + * + * GCS storage config for pbit files + * + * S3 storage config for pbit files + */ +export interface PowerBIPbitFilesSource { + /** + * Directory path for the pbit files + */ + path?: string; + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig?: SecurityConfigClass; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Azure = "azure", + Gcs = "gcs", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * This schema publisher run modes. + */ +export enum RunMode { + Batch = "batch", + Stream = "stream", +} + +/** + * SASL Configuration details. + * + * SASL client configuration. + */ +export interface SASLClientConfig { + /** + * SASL security mechanism + */ + saslMechanism?: SaslMechanismType; + /** + * The SASL authentication password. + */ + saslPassword?: string; + /** + * The SASL authentication username. + */ + saslUsername?: string; +} + +/** + * sasl.mechanism Consumer Config property + * + * SASL Mechanism consumer config property + * + * SASL security mechanism + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * security.protocol consumer config property + * + * Kafka security protocol config + */ +export enum KafkaSecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslPlaintext = "SASL_PLAINTEXT", + SaslSSL = "SASL_SSL", +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Config + */ +export interface SSLConfigObject { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; + /** + * SSL Certificates + */ + certificates?: SSLCertificates; + [property: string]: any; +} + +/** + * SSL Certificates + * + * SSL Configuration details. + * + * SSL Certificates By Path + * + * SSL Certificates By Values + */ +export interface SSLCertificates { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} + +/** + * Client SSL/TLS settings. + */ +export enum SSLTLSSettings { + DisableTLS = "disable-tls", + IgnoreCertificate = "ignore-certificate", + ValidateCertificate = "validate-certificate", +} + +/** + * Specifies the transaction mode for the connection + */ +export enum TransactionMode { + ANSI = "ANSI", + Default = "DEFAULT", + Tera = "TERA", +} + +/** + * REST API Type + * + * REST API type + * + * Service Type + * + * Looker service type + * + * Metabase service type + * + * PowerBI service type + * + * PowerBIReportServer service type + * + * Redash service type + * + * Superset service type + * + * Tableau service type + * + * Mode service type + * + * Custom dashboard service type + * + * service type + * + * QuickSight service type + * + * Qlik sense service type + * + * Lightdash service type + * + * MicroStrategy service type + * + * Qlik Cloud service type + * + * Sigma service type + * + * Service type. + * + * Custom database service type + * + * Kafka service type + * + * Redpanda service type + * + * Custom messaging service type + * + * Amundsen service type + * + * Metadata to Elastic Search type + * + * OpenMetadata service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * S3 service type + * + * ADLS service type + * + * Gcs service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * ElasticSearch service type + * + * OpenSearch service type + * + * Custom search service type + */ +export enum RESTType { + Adls = "ADLS", + Airbyte = "Airbyte", + Airflow = "Airflow", + Alation = "Alation", + AlationSink = "AlationSink", + Amundsen = "Amundsen", + Athena = "Athena", + Atlas = "Atlas", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDashboard = "CustomDashboard", + CustomDatabase = "CustomDatabase", + CustomMessaging = "CustomMessaging", + CustomMlModel = "CustomMlModel", + CustomPipeline = "CustomPipeline", + CustomSearch = "CustomSearch", + CustomStorage = "CustomStorage", + DBTCloud = "DBTCloud", + Dagster = "Dagster", + DataFactory = "DataFactory", + Databricks = "Databricks", + DatabricksPipeline = "DatabricksPipeline", + Datalake = "Datalake", + Db2 = "Db2", + DeltaLake = "DeltaLake", + DomoDashboard = "DomoDashboard", + DomoDatabase = "DomoDatabase", + DomoPipeline = "DomoPipeline", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + ElasticSearch = "ElasticSearch", + Exasol = "Exasol", + Fivetran = "Fivetran", + Flink = "Flink", + Gcs = "GCS", + Glue = "Glue", + GluePipeline = "GluePipeline", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + Kafka = "Kafka", + KafkaConnect = "KafkaConnect", + Kinesis = "Kinesis", + Lightdash = "Lightdash", + Looker = "Looker", + MariaDB = "MariaDB", + Matillion = "Matillion", + Metabase = "Metabase", + MetadataES = "MetadataES", + MicroStrategy = "MicroStrategy", + Mlflow = "Mlflow", + Mode = "Mode", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Nifi = "Nifi", + OpenLineage = "OpenLineage", + OpenMetadata = "OpenMetadata", + OpenSearch = "OpenSearch", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + Presto = "Presto", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + REST = "Rest", + Redash = "Redash", + Redpanda = "Redpanda", + Redshift = "Redshift", + S3 = "S3", + SAS = "SAS", + SQLite = "SQLite", + SageMaker = "SageMaker", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + Sigma = "Sigma", + SingleStore = "SingleStore", + Sklearn = "Sklearn", + Snowflake = "Snowflake", + Spark = "Spark", + Spline = "Spline", + Stitch = "Stitch", + Superset = "Superset", + Synapse = "Synapse", + Tableau = "Tableau", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + VertexAI = "VertexAI", + Vertica = "Vertica", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/adlsConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/adlsConnection.ts new file mode 100644 index 000000000000..c3670cb2e618 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/adlsConnection.ts @@ -0,0 +1,71 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * ADLS Connection. + */ +export interface AdlsConnection { + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Azure Credentials + */ + credentials: AzureCredentials; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: AzureType; +} + +/** + * Azure Credentials + * + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Service Type + * + * ADLS service type + */ +export enum AzureType { + Adls = "ADLS", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/customStorageConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/customStorageConnection.ts new file mode 100644 index 000000000000..b7ee9cc68d1c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/customStorageConnection.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom Storage Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface CustomStorageConnection { + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Custom storage service type + */ + type: ServiceType; +} + +/** + * Custom storage service type + */ +export enum ServiceType { + CustomStorage = "CustomStorage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/gcsConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/gcsConnection.ts new file mode 100644 index 000000000000..6fa1d967dce5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/gcsConnection.ts @@ -0,0 +1,158 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * GCS Connection. + */ +export interface GcsConnection { + /** + * Bucket Names of the data source. + */ + bucketNames?: string[]; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * GCP Credentials + */ + credentials: GCPCredentials; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: GcsType; +} + +/** + * GCP Credentials + * + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * Gcs service type + */ +export enum GcsType { + Gcs = "GCS", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/s3Connection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/s3Connection.ts new file mode 100644 index 000000000000..8ee9d807245a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/storage/s3Connection.ts @@ -0,0 +1,86 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * S3 Connection. + */ +export interface S3Connection { + awsConfig: AWSCredentials; + /** + * Bucket Names of the data source. + */ + bucketNames?: string[]; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: S3Type; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Service Type + * + * S3 service type + */ +export enum S3Type { + S3 = "S3", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/testConnectionDefinition.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/testConnectionDefinition.ts new file mode 100644 index 000000000000..155b63c077a2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/testConnectionDefinition.ts @@ -0,0 +1,208 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * TestConnection is the definition that will encapsulate the steps required to test a + * connection to a specific service. + */ +export interface TestConnectionDefinition { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the test connection def. + */ + description?: string; + /** + * Display Name that identifies this test definition. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this test case definition instance. + */ + id?: string; + /** + * Name of the Test Connection Definition. It should be the `type` of the service being + * tested, e.g., Mysql, or Snowflake. + */ + name: string; + /** + * Owner of this TestConnection definition. + */ + owners?: EntityReference[]; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStep[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owner of this TestConnection definition. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStep { + /** + * What is the goal of the step + */ + description: string; + /** + * In case of error this message should be displayed on UI, We define this message manually + * on test connection definition + */ + errorMessage?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Name of the step being tested + */ + name: string; + /** + * This field if set to true, indicates that the step is important enough to break the + * process in case of failure. + */ + shortCircuit?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/testConnectionResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/testConnectionResult.ts new file mode 100644 index 000000000000..ea7287a96d67 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/connections/testConnectionResult.ts @@ -0,0 +1,71 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/dashboardService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/dashboardService.ts new file mode 100644 index 000000000000..322bbbde51ad --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/dashboardService.ts @@ -0,0 +1,1375 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Dashboard Service entity, such as Looker and Superset. + */ +export interface DashboardService { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + connection?: DashboardConnection; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a dashboard service instance. + */ + description?: string; + /** + * Display Name that identifies this dashboard service. + */ + displayName?: string; + /** + * Domain the Dashboard service belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this dashboard service. + */ + href?: string; + /** + * Unique identifier of this dashboard service instance. + */ + id: string; + /** + * Name that identifies this dashboard service. + */ + name: string; + /** + * Owners of this dashboard service. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this dashboard service. + */ + pipelines?: EntityReference[]; + /** + * Type of dashboard service such as Looker or Superset... + */ + serviceType: DashboardServiceType; + /** + * Tags for this Dashboard Service. + */ + tags?: TagLabel[]; + /** + * Last test connection results for this service + */ + testConnectionResult?: TestConnectionResult; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Dashboard Connection. + */ +export interface DashboardConnection { + config?: Connection; +} + +/** + * Looker Connection Config + * + * Metabase Connection Config + * + * PowerBI Connection Config + * + * PowerBIReportServer Connection Config + * + * Redash Connection Config + * + * Superset Connection Config + * + * Tableau Connection Config + * + * Mode Connection Config + * + * Custom Dashboard Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Domo Dashboard Connection Config + * + * QuickSight Connection Config + * + * Qlik Sense Connection Config + * + * Lightdash Connection Config + * + * MicroStrategy Connection Config + * + * Qlik Cloud Connection Config + * + * Sigma Connection Config + */ +export interface Connection { + /** + * User's Client ID. This user should have privileges to read all the metadata in Looker. + * + * client_id for PowerBI. + * + * Client ID for DOMO + * + * client_id for Sigma. + */ + clientId?: string; + /** + * User's Client Secret. + * + * clientSecret for PowerBI. + * + * clientSecret for Sigma. + */ + clientSecret?: string; + /** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + */ + gitCredentials?: GitHubCredentials; + /** + * URL to the Looker instance. + * + * Host and Port of the Metabase instance. + * + * Dashboard URL for PowerBI service. + * + * Dashboard URL for PowerBI Report Server. + * + * URL for the Redash instance + * + * URL for the superset instance. + * + * Tableau Server. + * + * URL for the mode instance. + * + * URL for the Qlik instance. + * + * Address for your running Lightdash instance + * + * Host and Port of the MicroStrategy instance. + * + * Host and Port of the Qlik Cloud instance. + * + * Sigma API url. + */ + hostPort?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + * + * Custom dashboard service type + */ + type?: DashboardServiceType; + /** + * Password to connect to Metabase. + * + * Password to connect to PowerBI report server. + * + * Password to connect to MicroStrategy. + */ + password?: string; + /** + * Username to connect to Metabase. This user should have privileges to read all the + * metadata in Metabase. + * + * Username to connect to PowerBI report server. + * + * Username for Redash + * + * Username to connect to MicroStrategy. This user should have privileges to read all the + * metadata in MicroStrategy. + */ + username?: string; + /** + * Authority URI for the PowerBI service. + */ + authorityURI?: string; + /** + * Entity Limit set here will be used to paginate the PowerBi APIs + */ + pagination_entity_per_page?: number; + /** + * Source to get the .pbit files to extract lineage information + */ + pbitFilesSource?: PowerBIPbitFilesSource; + /** + * PowerBI secrets. + */ + scope?: string[]; + /** + * Tenant ID for PowerBI. + */ + tenantId?: string; + /** + * Fetch the PowerBI metadata using admin APIs + */ + useAdminApis?: boolean; + /** + * Web Portal Virtual Directory Name. + */ + webPortalVirtualDirectory?: string; + /** + * API key of the redash instance to access. + * + * The personal access token you can generate in the Lightdash app under the user settings + */ + apiKey?: string; + /** + * Version of the Redash instance + */ + redashVersion?: string; + /** + * Choose between API or database connection fetch metadata from superset. + */ + connection?: SupersetConnection; + /** + * Tableau API version. + * + * Sigma API version. + */ + apiVersion?: string; + /** + * Types of methods used to authenticate to the tableau instance + */ + authType?: AuthenticationTypeForTableau; + /** + * Tableau Environment Name. + */ + env?: string; + /** + * Pagination limit used while querying the tableau metadata API for getting data sources + */ + paginationLimit?: number; + /** + * Tableau Site Name. + */ + siteName?: string; + /** + * Tableau Site Url. + */ + siteUrl?: string; + sslConfig?: CertificatesSSLConfig; + verifySSL?: VerifySSL; + /** + * Access Token for Mode Dashboard + * + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * Access Token Password for Mode Dashboard + */ + accessTokenPassword?: string; + /** + * Filter query parameter for some of the Mode API calls + */ + filterQueryParam?: string; + /** + * Mode Workspace Name + */ + workspaceName?: string; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret Token to connect DOMO + */ + secretToken?: string; + /** + * AWS Account ID + */ + awsAccountId?: string; + awsConfig?: AWSCredentials; + /** + * The authentication method that the user uses to sign in. + */ + identityType?: IdentityType; + /** + * The Amazon QuickSight namespace that contains the dashboard IDs in this request ( To be + * provided when identityType is `ANONYMOUS` ) + */ + namespace?: string; + certificates?: QlikCertificatesBy; + /** + * Qlik Sense Base URL, used for genrating dashboard & chat url + */ + displayUrl?: string; + /** + * User Directory. + */ + userDirectory?: string; + /** + * User ID. + */ + userId?: string; + /** + * Validate Host Name + */ + validateHostName?: boolean; + /** + * The Project UUID for your Lightdash instance + */ + projectUUID?: string; + /** + * Use if your Lightdash instance is behind a proxy like (Cloud IAP) + */ + proxyAuthentication?: string; + /** + * The Space UUID for your Lightdash instance + */ + spaceUUID?: string; + /** + * Login Mode for Microstrategy's REST API connection. You can authenticate with one of the + * following authentication modes: `Standard (1)`, `Anonymous (8)`. Default will be + * `Standard (1)`. If you're using demo account for Microstrategy, it will be needed to + * authenticate through loginMode `8`. + */ + loginMode?: string; + /** + * MicroStrategy Project Name + */ + projectName?: string; + /** + * token to connect to Qlik Cloud. + */ + token?: string; +} + +/** + * Types of methods used to authenticate to the tableau instance + * + * Basic Auth Credentials + * + * Access Token Auth Credentials + */ +export interface AuthenticationTypeForTableau { + /** + * Password to access the service. + */ + password?: string; + /** + * Username to access the service. + */ + username?: string; + /** + * Personal Access Token Name. + */ + personalAccessTokenName?: string; + /** + * Personal Access Token Secret. + */ + personalAccessTokenSecret?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Qlik Authentication Certificate By Values + * + * Qlik Authentication Certificate File Path + */ +export interface QlikCertificatesBy { + sslConfig?: CertificatesSSLConfig; + /** + * Client Certificate + */ + clientCertificate?: string; + /** + * Client Key Certificate. + */ + clientKeyCertificate?: string; + /** + * Root Certificate. + */ + rootCertificate?: string; + [property: string]: any; +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface CertificatesSSLConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Choose between API or database connection fetch metadata from superset. + * + * Superset API Connection Config + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface SupersetConnection { + /** + * Password for Superset. + */ + password?: string; + /** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ + provider?: Provider; + /** + * SSL Configuration details. + */ + sslConfig?: SupersetConnectionSSLConfig; + /** + * Username for Superset. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username: string; + verifySSL?: VerifySSL; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: SupersetConnectionType; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ +export enum Provider { + DB = "db", + LDAP = "ldap", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Configuration details. + */ +export interface SupersetConnectionSSLConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum SupersetConnectionType { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + * + * Do not set any credentials. Note that credentials are required to extract .lkml views and + * their lineage. + * + * Credentials for a GitHub repository + * + * Credentials for a BitBucket repository + * + * Credentials for a Gitlab repository + */ +export interface GitHubCredentials { + repositoryName?: string; + repositoryOwner?: string; + token?: string; + /** + * Credentials Type + */ + type?: GitHubCredentialsType; + /** + * Main production branch of the repository. E.g., `main` + */ + branch?: string; +} + +/** + * Credentials Type + * + * GitHub Credentials type + * + * BitBucket Credentials type + * + * Gitlab Credentials type + */ +export enum GitHubCredentialsType { + BitBucket = "BitBucket", + GitHub = "GitHub", + Gitlab = "Gitlab", +} + +/** + * The authentication method that the user uses to sign in. + */ +export enum IdentityType { + Anonymous = "ANONYMOUS", + Iam = "IAM", + Quicksight = "QUICKSIGHT", +} + +/** + * Source to get the .pbit files to extract lineage information + * + * Local config source where no extra information needs to be sent. + * + * Azure storage config for pbit files + * + * GCS storage config for pbit files + * + * S3 storage config for pbit files + */ +export interface PowerBIPbitFilesSource { + /** + * Directory path for the pbit files + */ + path?: string; + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig?: Credentials; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Azure = "azure", + Gcs = "gcs", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * Azure Cloud Credentials + * + * GCP credentials configs. + * + * AWS credentials configs. + */ +export interface Credentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * Looker service type + * + * Metabase service type + * + * PowerBI service type + * + * PowerBIReportServer service type + * + * Redash service type + * + * Superset service type + * + * Tableau service type + * + * Mode service type + * + * Custom dashboard service type + * + * service type + * + * QuickSight service type + * + * Qlik sense service type + * + * Lightdash service type + * + * MicroStrategy service type + * + * Qlik Cloud service type + * + * Sigma service type + * + * Type of dashboard service such as Looker or Superset... + * + * Type of Dashboard service - Superset, Looker, Redash, Tableau, Metabase, PowerBi, Mode, + * or Lightdash + */ +export enum DashboardServiceType { + CustomDashboard = "CustomDashboard", + DomoDashboard = "DomoDashboard", + Lightdash = "Lightdash", + Looker = "Looker", + Metabase = "Metabase", + MicroStrategy = "MicroStrategy", + Mode = "Mode", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + Redash = "Redash", + Sigma = "Sigma", + Superset = "Superset", + Tableau = "Tableau", +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Dashboard service belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Last test connection results for this service + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts new file mode 100644 index 000000000000..9e559e4a1395 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/databaseService.ts @@ -0,0 +1,2158 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the `Database Service` is a service such as MySQL, BigQuery, + * Redshift, Postgres, or Snowflake. Alternative terms such as Database Cluster, Database + * Server instance are also used for database service. + */ +export interface DatabaseService { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + connection?: DatabaseConnection; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a database service instance. + */ + description?: string; + /** + * Display Name that identifies this database service. + */ + displayName?: string; + /** + * Domain the Database service belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this database service. + */ + href?: string; + /** + * Unique identifier of this database service instance. + */ + id: string; + /** + * Name that identifies this database service. + */ + name: string; + /** + * Owners of this database service. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this database service to extract metadata, usage, + * lineage etc.. + */ + pipelines?: EntityReference[]; + /** + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ + serviceType: DatabaseServiceType; + /** + * Tags for this Database Service. + */ + tags?: TagLabel[]; + /** + * Last test connection results for this service + */ + testConnectionResult?: TestConnectionResult; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Database Connection. + */ +export interface DatabaseConnection { + config?: ConfigClass; +} + +/** + * Google BigQuery Connection Config + * + * Google BigTable Connection Config + * + * AWS Athena Connection Config + * + * Azure SQL Connection Config + * + * Clickhouse Connection Config + * + * Databricks Connection Config + * + * Db2 Connection Config + * + * DeltaLake Database Connection Config + * + * Druid Connection Config + * + * DynamoDB Connection Config + * + * Glue Connection Config + * + * Hive SQL Connection Config + * + * Impala SQL Connection Config + * + * MariaDB Database Connection Config + * + * Mssql Database Connection Config + * + * Mysql Database Connection Config + * + * SQLite Database Connection Config + * + * Oracle Database Connection Config + * + * Postgres Database Connection Config + * + * Presto Database Connection Config + * + * Redshift Connection Config + * + * Salesforce Connection Config + * + * SingleStore Database Connection Config + * + * Snowflake Connection Config + * + * Trino Connection Config + * + * Vertica Connection Config + * + * PinotDB Database Connection Config + * + * Datalake Connection Config + * + * Domo Database Connection Config + * + * Custom Database Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Sap Hana Database Connection Config + * + * MongoDB Connection Config + * + * Couchbase Connection Config + * + * Greenplum Database Connection Config + * + * Doris Database Connection Config + * + * UnityCatalog Connection Config + * + * SAS Connection Config + * + * Iceberg Catalog Connection Config + * + * Teradata Database Connection Config + * + * Sap ERP Database Connection Config + * + * Synapse Database Connection Config + * + * Exasol Database Connection Config + */ +export interface ConfigClass { + /** + * If using Metastore, Key-Value pairs that will be used to add configs to the SparkSession. + */ + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * GCP Credentials + */ + credentials?: GCPCredentials; + /** + * BigQuery APIs URL. + * + * Host and port of the AzureSQL service. + * + * Host and port of the Clickhouse service. + * + * Host and port of the Databricks service. + * + * Host and port of the DB2 service. + * + * Host and port of the Druid service. + * + * Host and port of the Hive service. + * + * Host and port of the Impala service. + * + * Host and port of the MariaDB service. + * + * Host and port of the MSSQL service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Host and port of the Oracle service. + * + * Host and port of the source service. + * + * Host and port of the Presto service. + * + * Host and port of the Redshift service. + * + * Host and port of the SingleStore service. + * + * Host and port of the Trino service. + * + * Host and port of the Vertica service. + * + * Host and port of the PinotDB Broker service. + * + * Host and port of the MongoDB service when using the `mongodb` connection scheme. Only + * host when using the `mongodb+srv` scheme. + * + * Host and port of the Doris service. + * + * Host and port of the Teradata service. + * + * Host and Port of the SAP ERP instance. + * + * Host and port of the Azure Synapse service. + */ + hostPort?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + * + * Mongo connection scheme options. + * + * Couchbase driver scheme options. + */ + scheme?: ConfigScheme; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + /** + * Supports Lineage Extraction. + */ + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + /** + * Supports Usage Extraction. + */ + supportsUsageExtraction?: boolean; + /** + * Taxonomy location used to fetch policy tags + */ + taxonomyLocation?: string; + /** + * Project IDs used to fetch policy tags + */ + taxonomyProjectID?: string[]; + /** + * Service Type + * + * Custom database service type + */ + type?: ConfigType; + /** + * Location used to query INFORMATION_SCHEMA.JOBS_BY_PROJECT to fetch usage data. You can + * pass multi-regions, such as `us` or `eu`, or you specific region. Australia and Asia + * multi-regions are not yet in GA. + */ + usageLocation?: string; + awsConfig?: AWSCredentials; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * S3 Staging Directory. Example: s3://postgres/input/ + */ + s3StagingDir?: string; + /** + * Athena workgroup. + */ + workgroup?: string; + /** + * This parameter determines the mode of authentication for connecting to AzureSQL using + * ODBC. If 'Active Directory Password' is selected, you need to provide the password. If + * 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with AzureSQL. + * + * This parameter determines the mode of authentication for connecting to Azure Synapse + * using ODBC. If 'Active Directory Password' is selected, you need to provide the password. + * If 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with Azure Synapse. + */ + authenticationMode?: any[] | boolean | number | null | AuthenticationModeObject | string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + * + * Database of the data source. + * + * Initial Redshift database to connect to. If you want to ingest all databases, set + * ingestAllDatabases to true. + */ + database?: string; + /** + * SQLAlchemy driver for AzureSQL. + * + * ODBC driver version in case of pyodbc connection. + */ + driver?: string; + /** + * Ingest data from all databases in Azuresql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Mssql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Redshift. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Greenplum. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Azure Synapse. You can use databaseFilterPattern on top + * of this. + */ + ingestAllDatabases?: boolean; + /** + * Password to connect to AzureSQL. + * + * Password to connect to Clickhouse. + * + * Password to connect to DB2. + * + * Password to connect to Druid. + * + * Password to connect to Hive. + * + * Password to connect to Impala. + * + * Password to connect to MariaDB. + * + * Password to connect to MSSQL. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to Oracle. + * + * Password to connect to Presto. + * + * Password to connect to Redshift. + * + * Password to connect to the Salesforce. + * + * Password to connect to SingleStore. + * + * Password to connect to Snowflake. + * + * Password to connect to Vertica. + * + * password to connect to the PinotDB. + * + * Password to connect to MongoDB. + * + * Password to connect to Couchbase. + * + * Password to connect to Doris. + * + * Password to connect to SAS Viya + * + * Password to connect to Teradata. + * + * Password to connect to Azure Synapse. + * + * Password to connect to Exasol. + */ + password?: string; + /** + * Username to connect to AzureSQL. This user should have privileges to read the metadata. + * + * Username to connect to Clickhouse. This user should have privileges to read all the + * metadata in Clickhouse. + * + * Username to connect to DB2. This user should have privileges to read all the metadata in + * DB2. + * + * Username to connect to Druid. This user should have privileges to read all the metadata + * in Druid. + * + * Username to connect to Hive. This user should have privileges to read all the metadata in + * Hive. + * + * Username to connect to Impala. This user should have privileges to read all the metadata + * in Impala. + * + * Username to connect to MariaDB. This user should have privileges to read all the metadata + * in MariaDB. + * + * Username to connect to MSSQL. This user should have privileges to read all the metadata + * in MsSQL. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to Oracle. This user should have privileges to read all the metadata + * in Oracle. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to Presto. This user should have privileges to read all the metadata + * in Postgres. + * + * Username to connect to Redshift. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to the Salesforce. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to SingleStore. This user should have privileges to read all the + * metadata in MySQL. + * + * Username to connect to Snowflake. This user should have privileges to read all the + * metadata in Snowflake. + * + * Username to connect to Trino. This user should have privileges to read all the metadata + * in Trino. + * + * Username to connect to Vertica. This user should have privileges to read all the metadata + * in Vertica. + * + * username to connect to the PinotDB. This user should have privileges to read all the + * metadata in PinotDB. + * + * Username to connect to MongoDB. This user should have privileges to read all the metadata + * in MongoDB. + * + * Username to connect to Couchbase. This user should have privileges to read all the + * metadata in Couchbase. + * + * Username to connect to Greenplum. This user should have privileges to read all the + * metadata in Greenplum. + * + * Username to connect to Doris. This user should have privileges to read all the metadata + * in Doris. + * + * Username to connect to SAS Viya. + * + * Username to connect to Teradata. This user should have privileges to read all the + * metadata in Teradata. + * + * Username to connect to Azure Synapse. This user should have privileges to read all the + * metadata in Azure Synapse. + * + * Username to connect to Exasol. This user should have privileges to read all the metadata + * in Exasol. + */ + username?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + * + * Optional name to give to the schema in OpenMetadata. If left blank, we will use default + * as the schema name + */ + databaseSchema?: string; + /** + * Clickhouse SQL connection duration. + */ + duration?: number; + /** + * Use HTTPS Protocol for connection with clickhouse + */ + https?: boolean; + /** + * Path to key file for establishing secure connection + */ + keyfile?: string; + /** + * Establish secure connection with clickhouse + */ + secure?: boolean; + /** + * Catalog of the data source(Example: hive_metastore). This is optional parameter, if you + * would like to restrict the metadata reading to a single catalog. When left blank, + * OpenMetadata Ingestion attempts to scan all the catalog. + * + * Presto catalog + * + * Catalog of the data source. + */ + catalog?: IcebergCatalog | string; + /** + * The maximum amount of time (in seconds) to wait for a successful connection to the data + * source. If the connection attempt takes longer than this timeout period, an error will be + * returned. + */ + connectionTimeout?: number; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + /** + * Generated Token to connect to Databricks. + */ + token?: string; + supportsViewLineageExtraction?: boolean; + /** + * Available sources to fetch the metadata. + * + * Available sources to fetch files. + */ + configSource?: TaLakeConfigurationSource; + /** + * Authentication mode to connect to hive. + */ + auth?: AuthEnum; + /** + * Authentication options to pass to Hive connector. These options are based on SQLAlchemy. + * + * Authentication options to pass to Impala connector. These options are based on SQLAlchemy. + */ + authOptions?: string; + /** + * If authenticating with Kerberos specify the Kerberos service name + */ + kerberosServiceName?: string; + /** + * Hive Metastore Connection Details + */ + metastoreConnection?: HiveMetastoreConnectionDetails; + /** + * Authentication mode to connect to Impala. + */ + authMechanism?: AuthMechanismEnum; + /** + * Establish secure connection with Impala + */ + useSSL?: boolean; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType | NoConfigAuthenticationTypes; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * This directory will be used to set the LD_LIBRARY_PATH env variable. It is required if + * you need to enable thick connection mode. By default, we bring instant client 19 and + * point to /instantclient. + */ + instantClientDirectory?: string; + /** + * Connect with oracle by either passing service name or database schema name. + */ + oracleConnectionType?: OracleConnectionType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + sslMode?: SSLMode; + /** + * Protocol ( Connection Argument ) to connect to Presto. + */ + protocol?: string; + /** + * Verify ( Connection Argument for SSL ) to connect to Presto. + * + * Verify ( Connection Argument for SSL ) to connect to Trino. + */ + verify?: string; + /** + * Salesforce Organization ID is the unique identifier for your Salesforce identity + */ + organizationId?: string; + /** + * API version of the Salesforce instance + */ + salesforceApiVersion?: string; + /** + * Domain of Salesforce instance + */ + salesforceDomain?: string; + /** + * Salesforce Security Token. + */ + securityToken?: string; + /** + * Salesforce Object Name. + */ + sobjectName?: string; + /** + * If the Snowflake URL is https://xyz1234.us-east-1.gcp.snowflakecomputing.com, then the + * account is xyz1234.us-east-1.gcp + * + * Specifies an account string to override the default account string defined for the + * database user. Accounts are used by the database for workload management and resource + * usage monitoring. + */ + account?: string; + /** + * Optional configuration for ingestion to keep the client session active in case the + * ingestion process runs for longer durations. + */ + clientSessionKeepAlive?: boolean; + /** + * Optional configuration for ingestion of TRANSIENT tables, By default, it will skip the + * TRANSIENT tables. + */ + includeTransientTables?: boolean; + /** + * Connection to Snowflake instance via Private Key + */ + privateKey?: string; + /** + * Session query tag used to monitor usage on snowflake. To use a query tag snowflake user + * should have enough privileges to alter the session. + */ + queryTag?: string; + /** + * Snowflake Role. + */ + role?: string; + /** + * Snowflake Passphrase Key used with Private Key + */ + snowflakePrivatekeyPassphrase?: string; + /** + * Snowflake warehouse. + */ + warehouse?: string; + /** + * Proxies for the connection to Trino data source + */ + proxies?: { [key: string]: string }; + /** + * Pinot Controller Host and Port of the data source. + */ + pinotControllerHost?: string; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + /** + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + */ + clientId?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret Token to connect DOMO + */ + secretToken?: string; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * Choose between Database connection or HDB User Store connection. + */ + connection?: SAPHanaConnection; + /** + * Couchbase connection Bucket options. + */ + bucket?: string; + /** + * Hostname of the Couchbase service. + */ + hostport?: string; + /** + * Enable dataflow for ingestion + */ + dataflows?: boolean; + /** + * Custom filter for dataflows + */ + dataflowsCustomFilter?: { [key: string]: any } | string; + /** + * Enable datatables for ingestion + */ + datatables?: boolean; + /** + * Custom filter for datatables + */ + dataTablesCustomFilter?: { [key: string]: any } | string; + /** + * Enable report for ingestion + */ + reports?: boolean; + /** + * Custom filter for reports + */ + reportsCustomFilter?: { [key: string]: any } | string; + /** + * Hostname of SAS Viya deployment. + */ + serverHost?: string; + /** + * Table property to look for the Owner. + */ + ownershipProperty?: string; + /** + * Specifies additional data needed by a logon mechanism, such as a secure token, + * Distinguished Name, or a domain/realm name. LOGDATA values are specific to each logon + * mechanism. + */ + logdata?: string; + /** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ + logmech?: Logmech; + /** + * Specifies the transaction mode for the connection + */ + tmode?: TransactionMode; + /** + * API key to authenticate with the SAP ERP APIs. + */ + apiKey?: string; + /** + * Pagination limit used while querying the SAP ERP API for fetching the entities + */ + paginationLimit?: number; + verifySSL?: VerifySSL; + /** + * Client SSL/TLS settings. + */ + tls?: SSLTLSSettings; +} + +/** + * Authentication mode to connect to hive. + */ +export enum AuthEnum { + Basic = "BASIC", + Custom = "CUSTOM", + Gssapi = "GSSAPI", + Jwt = "JWT", + Kerberos = "KERBEROS", + LDAP = "LDAP", + None = "NONE", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Authentication mode to connect to Impala. + */ +export enum AuthMechanismEnum { + Gssapi = "GSSAPI", + Jwt = "JWT", + LDAP = "LDAP", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; + /** + * JWT to connect to source. + */ + jwt?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Database Authentication types not requiring config. + */ +export enum NoConfigAuthenticationTypes { + OAuth2 = "OAuth2", +} + +export interface AuthenticationModeObject { + /** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ + authentication?: Authentication; + /** + * Connection Timeout from Connection String for AzureSQL. + * + * Connection Timeout from Connection String for Azure Synapse. + */ + connectionTimeout?: number; + /** + * Encrypt from Connection String for AzureSQL. + * + * Encrypt from Connection String for Azure Synapse. + */ + encrypt?: boolean; + /** + * Trust Server Certificate from Connection String for AzureSQL. + * + * Trust Server Certificate from Connection String for Azure Synapse. + */ + trustServerCertificate?: boolean; + [property: string]: any; +} + +/** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ +export enum Authentication { + ActiveDirectoryIntegrated = "ActiveDirectoryIntegrated", + ActiveDirectoryPassword = "ActiveDirectoryPassword", +} + +/** + * Iceberg Catalog configuration. + */ +export interface IcebergCatalog { + /** + * Catalog connection configuration, depending on your catalog type. + */ + connection: Connection; + /** + * Custom Database Name for your Iceberg Service. If not set it will be 'default'. + */ + databaseName?: string; + /** + * Catalog Name. + */ + name: string; + /** + * Warehouse Location. Used to specify a custom warehouse location if needed. + */ + warehouseLocation?: string; +} + +/** + * Catalog connection configuration, depending on your catalog type. + * + * Iceberg Hive Catalog configuration. + * + * Iceberg REST Catalog configuration. + * + * Iceberg Glue Catalog configuration. + * + * Iceberg DynamoDB Catalog configuration. + */ +export interface Connection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + * + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri?: string; + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + awsConfig?: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName?: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * Available sources to fetch the metadata. + * + * Deltalake Metastore configuration. + * + * DeltaLake Storage Connection Config + * + * Available sources to fetch files. + * + * Local config source where no extra information needs to be sent. + * + * Azure Datalake Storage will ingest files in container + * + * DataLake GCS storage will ingest metadata of files + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface TaLakeConfigurationSource { + /** + * pySpark App Name. + */ + appName?: string; + /** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + */ + connection?: ConnectionClass; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + securityConfig?: SecurityConfigClass; +} + +/** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface ConnectionClass { + /** + * Thrift connection to the metastore service. E.g., localhost:9083 + */ + metastoreHostPort?: string; + /** + * Driver class name for JDBC metastore. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionDriverName sparks property. E.g., + * org.mariadb.jdbc.Driver + */ + driverName?: string; + /** + * Class path to JDBC driver required for JDBC connection. The value will be mapped as + * spark.driver.extraClassPath sparks property. + */ + jdbcDriverClassPath?: string; + /** + * JDBC connection to the metastore database. E.g., jdbc:mysql://localhost:3306/demo_hive + */ + metastoreDb?: string; + /** + * Password to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionPassword sparks property. + */ + password?: string; + /** + * Username to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionUserName sparks property. + */ + username?: string; + /** + * Local path for the local file with metastore data. E.g., /tmp/metastore.db + */ + metastoreFilePath?: string; + securityConfig?: AWSCredentials; +} + +/** + * Azure Cloud Credentials + * + * GCP Credentials + * + * GCP credentials configs. + * + * AWS credentials configs. + */ +export interface SecurityConfigClass { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Choose between Database connection or HDB User Store connection. + * + * Sap Hana Database SQL Connection Config + * + * Sap Hana Database HDB User Store Connection Config + */ +export interface SAPHanaConnection { + /** + * Database of the data source. + */ + database?: string; + /** + * Database Schema of the data source. This is an optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the Hana service. + */ + hostPort?: string; + /** + * Password to connect to Hana. + */ + password?: string; + /** + * Username to connect to Hana. This user should have privileges to read all the metadata. + */ + username?: string; + /** + * HDB Store User Key generated from the command `hdbuserstore SET + * ` + */ + userKey?: string; +} + +/** + * GCP Credentials + * + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ +export enum Logmech { + Custom = "CUSTOM", + Jwt = "JWT", + Krb5 = "KRB5", + LDAP = "LDAP", + Td2 = "TD2", + Tdnego = "TDNEGO", +} + +/** + * Hive Metastore Connection Details + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface HiveMetastoreConnectionDetails { + /** + * Choose Auth Config Type. + */ + authType?: HiveMetastoreConnectionDetailsAuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: HiveMetastoreConnectionDetailsScheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: HiveMetastoreConnectionDetailsType; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface HiveMetastoreConnectionDetailsAuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum HiveMetastoreConnectionDetailsScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum HiveMetastoreConnectionDetailsType { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * Connect with oracle by either passing service name or database schema name. + */ +export interface OracleConnectionType { + /** + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + */ + databaseSchema?: string; + /** + * The Oracle Service name is the TNS alias that you give when you remotely connect to your + * database. + */ + oracleServiceName?: string; + /** + * Pass the full constructed TNS string, e.g., + * (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1530)))(CONNECT_DATA=(SID=MYSERVICENAME))). + */ + oracleTNSConnection?: string; + [property: string]: any; +} + +/** + * SQLAlchemy driver scheme options. + * + * Mongo connection scheme options. + * + * Couchbase driver scheme options. + */ +export enum ConfigScheme { + AwsathenaREST = "awsathena+rest", + Bigquery = "bigquery", + ClickhouseHTTP = "clickhouse+http", + ClickhouseNative = "clickhouse+native", + Couchbase = "couchbase", + DatabricksConnector = "databricks+connector", + Db2IBMDB = "db2+ibm_db", + Doris = "doris", + Druid = "druid", + ExaWebsocket = "exa+websocket", + Hana = "hana", + Hive = "hive", + HiveHTTP = "hive+http", + HiveHTTPS = "hive+https", + Ibmi = "ibmi", + Impala = "impala", + Impala4 = "impala4", + Mongodb = "mongodb", + MongodbSrv = "mongodb+srv", + MssqlPymssql = "mssql+pymssql", + MssqlPyodbc = "mssql+pyodbc", + MssqlPytds = "mssql+pytds", + MysqlPymysql = "mysql+pymysql", + OracleCxOracle = "oracle+cx_oracle", + PgspiderPsycopg2 = "pgspider+psycopg2", + Pinot = "pinot", + PinotHTTP = "pinot+http", + PinotHTTPS = "pinot+https", + PostgresqlPsycopg2 = "postgresql+psycopg2", + Presto = "presto", + RedshiftPsycopg2 = "redshift+psycopg2", + Snowflake = "snowflake", + SqlitePysqlite = "sqlite+pysqlite", + Teradatasql = "teradatasql", + Trino = "trino", + VerticaVerticaPython = "vertica+vertica_python", +} + +/** + * Client SSL/TLS settings. + */ +export enum SSLTLSSettings { + DisableTLS = "disable-tls", + IgnoreCertificate = "ignore-certificate", + ValidateCertificate = "validate-certificate", +} + +/** + * Specifies the transaction mode for the connection + */ +export enum TransactionMode { + ANSI = "ANSI", + Default = "DEFAULT", + Tera = "TERA", +} + +/** + * Service Type + * + * Service type. + * + * service type + * + * Custom database service type + */ +export enum ConfigType { + Athena = "Athena", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDatabase = "CustomDatabase", + Databricks = "Databricks", + Datalake = "Datalake", + Db2 = "Db2", + DeltaLake = "DeltaLake", + DomoDatabase = "DomoDatabase", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + Exasol = "Exasol", + Glue = "Glue", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + MariaDB = "MariaDB", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + Presto = "Presto", + Redshift = "Redshift", + SAS = "SAS", + SQLite = "SQLite", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + SingleStore = "SingleStore", + Snowflake = "Snowflake", + Synapse = "Synapse", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + Vertica = "Vertica", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Database service belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ +export enum DatabaseServiceType { + Athena = "Athena", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDatabase = "CustomDatabase", + Databricks = "Databricks", + Datalake = "Datalake", + Db2 = "Db2", + Dbt = "Dbt", + DeltaLake = "DeltaLake", + DomoDatabase = "DomoDatabase", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + Exasol = "Exasol", + Glue = "Glue", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + MariaDB = "MariaDB", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + Presto = "Presto", + QueryLog = "QueryLog", + Redshift = "Redshift", + SAS = "SAS", + SQLite = "SQLite", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + SingleStore = "SingleStore", + Snowflake = "Snowflake", + Synapse = "Synapse", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + Vertica = "Vertica", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Last test connection results for this service + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts new file mode 100644 index 000000000000..f99ae8769a22 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/ingestionPipeline.ts @@ -0,0 +1,2017 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Ingestion Pipeline Config is used to set up a DAG and deploy. This entity is used to + * setup metadata/quality pipelines on Apache Airflow. + */ +export interface IngestionPipeline { + airflowConfig: AirflowConfig; + /** + * Type of the application when pipelineType is 'application'. + */ + applicationType?: string; + /** + * Change that led to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Indicates if the workflow has been successfully deployed to Airflow. + */ + deployed?: boolean; + /** + * Description of the Pipeline. + */ + description?: string; + /** + * Display Name that identifies this Pipeline. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * True if the pipeline is ready to be run in the next schedule. False if it is paused. + */ + enabled?: boolean; + /** + * Name that uniquely identifies a Pipeline. + */ + fullyQualifiedName?: string; + /** + * Link to this ingestion pipeline resource. + */ + href?: string; + /** + * Unique identifier that identifies this pipeline. + */ + id?: string; + /** + * Set the logging level for the workflow. + */ + loggerLevel?: LogLevels; + /** + * Name that identifies this pipeline instance uniquely. + */ + name: string; + openMetadataServerConnection?: OpenMetadataConnection; + /** + * Owners of this Pipeline. + */ + owners?: EntityReference[]; + /** + * Last of executions and status for the Pipeline. + */ + pipelineStatuses?: PipelineStatus; + pipelineType: PipelineType; + provider?: ProviderType; + /** + * Link to the service (such as database, messaging, storage services, etc. for which this + * ingestion pipeline ingests the metadata from. + */ + service?: EntityReference; + sourceConfig: SourceConfig; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Properties to configure the Airflow pipeline that will run the workflow. + */ +export interface AirflowConfig { + /** + * Concurrency of the Pipeline. + */ + concurrency?: number; + /** + * Email to notify workflow status. + */ + email?: string; + /** + * End Date of the pipeline. + */ + endDate?: Date; + /** + * Maximum Number of active runs. + */ + maxActiveRuns?: number; + /** + * pause the pipeline from running once the deploy is finished successfully. + */ + pausePipeline?: boolean; + /** + * Run past executions if the start date is in the past. + */ + pipelineCatchup?: boolean; + /** + * Timezone in which pipeline going to be scheduled. + */ + pipelineTimezone?: string; + /** + * Retry pipeline in case of failure. + */ + retries?: number; + /** + * Delay between retries in seconds. + */ + retryDelay?: number; + /** + * Scheduler Interval for the pipeline in cron format. + */ + scheduleInterval?: string; + /** + * Start date of the pipeline. + */ + startDate?: Date; + /** + * Default view in Airflow. + */ + workflowDefaultView?: string; + /** + * Default view Orientation in Airflow. + */ + workflowDefaultViewOrientation?: string; + /** + * Timeout for the workflow in seconds. + */ + workflowTimeout?: number; +} + +/** + * Change that led to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this Pipeline. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Link to the service (such as database, messaging, storage services, etc. for which this + * ingestion pipeline ingests the metadata from. + * + * Domain to apply + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Set the logging level for the workflow. + * + * Supported logging levels + */ +export enum LogLevels { + Debug = "DEBUG", + Error = "ERROR", + Info = "INFO", + Warn = "WARN", +} + +/** + * OpenMetadata Connection Config + */ +export interface OpenMetadataConnection { + /** + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + */ + hostPort: string; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: Config; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * Service Type + */ + type?: OpenmetadataType; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: VerifySSL; +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * SSL Configuration for OpenMetadata Server + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * OpenMetadata service type + */ +export enum OpenmetadataType { + OpenMetadata = "OpenMetadata", +} + +/** + * Flag to verify SSL Certificate for OpenMetadata Server. + * + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Last of executions and status for the Pipeline. + * + * This defines runtime status of Pipeline. + */ +export interface PipelineStatus { + /** + * endDate of the pipeline run for this particular execution. + */ + endDate?: number; + /** + * Pipeline status denotes if its failed or succeeded. + */ + pipelineState?: PipelineState; + /** + * Pipeline unique run ID. + */ + runId?: string; + /** + * startDate of the pipeline run for this particular execution. + */ + startDate?: number; + /** + * Ingestion Pipeline summary status. Informed at the end of the execution. + */ + status?: StepSummary[]; + /** + * executionDate of the pipeline run for this particular execution. + */ + timestamp?: number; +} + +/** + * Pipeline status denotes if its failed or succeeded. + */ +export enum PipelineState { + Failed = "failed", + PartialSuccess = "partialSuccess", + Queued = "queued", + Running = "running", + Success = "success", +} + +/** + * Ingestion Pipeline summary status. Informed at the end of the execution. + * + * Summary for each step of the ingestion pipeline + * + * Defines the summary status of each step executed in an Ingestion Pipeline. + */ +export interface StepSummary { + /** + * Number of records with errors. + */ + errors?: number; + /** + * Sample of errors encountered in the step + */ + failures?: StackTraceError[]; + /** + * Number of filtered records. + */ + filtered?: number; + /** + * Step name + */ + name: string; + /** + * Number of successfully processed records. + */ + records?: number; + /** + * Number of successfully updated records. + */ + updated_records?: number; + /** + * Number of records raising warnings. + */ + warnings?: number; +} + +/** + * Represents a failure status + */ +export interface StackTraceError { + /** + * Error being handled + */ + error: string; + /** + * Name of the asset with the error + */ + name: string; + /** + * Exception stack trace + */ + stackTrace?: string; +} + +/** + * Type of Pipeline - metadata, usage + */ +export enum PipelineType { + Application = "application", + AutoClassification = "autoClassification", + DataInsight = "dataInsight", + Dbt = "dbt", + ElasticSearchReindex = "elasticSearchReindex", + Lineage = "lineage", + Metadata = "metadata", + Profiler = "profiler", + TestSuite = "TestSuite", + Usage = "usage", +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * Additional connection configuration. + */ +export interface SourceConfig { + config?: Pipeline; +} + +/** + * DatabaseService Metadata Pipeline Configuration. + * + * DatabaseService Query Usage Pipeline Configuration. + * + * DatabaseService Query Lineage Pipeline Configuration. + * + * DashboardService Metadata Pipeline Configuration. + * + * MessagingService Metadata Pipeline Configuration. + * + * DatabaseService Profiler Pipeline Configuration. + * + * DatabaseService AutoClassification & Auto Classification Pipeline Configuration. + * + * PipelineService Metadata Pipeline Configuration. + * + * MlModelService Metadata Pipeline Configuration. + * + * StorageService Metadata Pipeline Configuration. + * + * SearchService Metadata Pipeline Configuration. + * + * TestSuite Pipeline Configuration. + * + * Data Insight Pipeline Configuration. + * + * DBT Pipeline Configuration. + * + * Application Pipeline Configuration. + * + * ApiService Metadata Pipeline Configuration. + */ +export interface Pipeline { + /** + * Regex to only fetch databases that matches the pattern. + */ + databaseFilterPattern?: FilterPattern; + /** + * Optional configuration to toggle the DDL Statements ingestion. + */ + includeDDL?: boolean; + /** + * Set the 'Include Owners' toggle to control whether to include owners to the ingested + * entity if the owner email matches with a user stored in the OM server as part of metadata + * ingestion. If the ingested entity already exists and has an owner, the owner will not be + * overwritten. + * + * Enabling a flag will replace the current owner with a new owner from the source during + * metadata ingestion, if the current owner is null. It is recommended to keep the flag + * enabled to obtain the owner information during the first metadata ingestion. + */ + includeOwners?: boolean; + /** + * Optional configuration to toggle the Stored Procedures ingestion. + */ + includeStoredProcedures?: boolean; + /** + * Optional configuration to turn off fetching metadata for tables. + */ + includeTables?: boolean; + /** + * Optional configuration to toggle the tags ingestion. + */ + includeTags?: boolean; + /** + * Optional configuration to turn off fetching metadata for views. + */ + includeViews?: boolean; + /** + * Use incremental Metadata extraction after the first execution. This is commonly done by + * getting the changes from Audit tables on the supporting databases. + */ + incremental?: IncrementalMetadataExtractionConfiguration; + /** + * Optional configuration to soft delete stored procedures in OpenMetadata if the source + * stored procedures are deleted. Also, if the stored procedures is deleted, all the + * associated entities like lineage, etc., with that stored procedures will be deleted + */ + markDeletedStoredProcedures?: boolean; + /** + * This is an optional configuration for enabling soft deletion of tables. When this option + * is enabled, only tables that have been deleted from the source will be soft deleted, and + * this will apply solely to the schema that is currently being ingested via the pipeline. + * Any related entities such as test suites or lineage information that were associated with + * those tables will also be deleted. + */ + markDeletedTables?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * Configuration to tune how far we want to look back in query logs to process Stored + * Procedures results. + * + * Configuration to tune how far we want to look back in query logs to process usage data. + * + * Configuration to tune how far we want to look back in query logs to process lineage data. + */ + queryLogDuration?: number; + /** + * Configuration to set the timeout for parsing the query in seconds. + */ + queryParsingTimeoutLimit?: number; + /** + * Regex to only fetch tables or databases that matches the pattern. + */ + schemaFilterPattern?: FilterPattern; + /** + * Regex exclude tables or databases that matches the pattern. + */ + tableFilterPattern?: FilterPattern; + /** + * Number of Threads to use in order to parallelize Table ingestion. + * + * Number of Threads to use in order to parallelize lineage ingestion. + */ + threads?: number; + /** + * Pipeline type + */ + type?: ConfigType; + /** + * Regex will be applied on fully qualified name (e.g + * service_name.db_name.schema_name.table_name) instead of raw name (e.g. table_name) + */ + useFqnForFiltering?: boolean; + /** + * Configuration the condition to filter the query history. + */ + filterCondition?: string; + /** + * Configuration to set the file path for query logs + */ + queryLogFilePath?: string; + /** + * Configuration to set the limit for query logs + */ + resultLimit?: number; + /** + * Temporary file name to store the query logs before processing. Absolute file path + * required. + */ + stageFileLocation?: string; + /** + * Set the 'Override View Lineage' toggle to control whether to override the existing view + * lineage. + */ + overrideViewLineage?: boolean; + /** + * Configuration to set the timeout for parsing the query in seconds. + */ + parsingTimeoutLimit?: number; + /** + * Set the 'Process Query Lineage' toggle to control whether to process query lineage. + */ + processQueryLineage?: boolean; + /** + * Set the 'Process Stored ProcedureLog Lineage' toggle to control whether to process stored + * procedure lineage. + */ + processStoredProcedureLineage?: boolean; + /** + * Set the 'Process View Lineage' toggle to control whether to process view lineage. + */ + processViewLineage?: boolean; + /** + * Regex exclude or include charts that matches the pattern. + */ + chartFilterPattern?: FilterPattern; + /** + * Regex to exclude or include dashboards that matches the pattern. + */ + dashboardFilterPattern?: FilterPattern; + /** + * Regex exclude or include data models that matches the pattern. + */ + dataModelFilterPattern?: FilterPattern; + /** + * Optional configuration to toggle the ingestion of data models. + */ + includeDataModels?: boolean; + /** + * Optional Configuration to include/exclude draft dashboards. By default it will include + * draft dashboards + */ + includeDraftDashboard?: boolean; + /** + * Details required to generate Lineage + */ + lineageInformation?: LineageInformation; + /** + * Optional configuration to soft delete dashboards in OpenMetadata if the source dashboards + * are deleted. Also, if the dashboard is deleted, all the associated entities like lineage, + * etc., with that dashboard will be deleted + */ + markDeletedDashboards?: boolean; + /** + * Optional configuration to soft delete data models in OpenMetadata if the source data + * models are deleted. Also, if the data models is deleted, all the associated entities like + * lineage, etc., with that data models will be deleted + */ + markDeletedDataModels?: boolean; + /** + * Set the 'Override Lineage' toggle to control whether to override the existing lineage. + */ + overrideLineage?: boolean; + /** + * Regex to exclude or include projects that matches the pattern. + */ + projectFilterPattern?: FilterPattern; + /** + * Option to turn on/off generating sample data during metadata extraction. + */ + generateSampleData?: boolean; + /** + * Optional configuration to soft delete topics in OpenMetadata if the source topics are + * deleted. Also, if the topic is deleted, all the associated entities like sample data, + * lineage, etc., with that topic will be deleted + */ + markDeletedTopics?: boolean; + /** + * Regex to only fetch topics that matches the pattern. + */ + topicFilterPattern?: FilterPattern; + /** + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + */ + classificationFilterPattern?: FilterPattern; + /** + * Option to turn on/off column metric computation. If enabled, profiler will compute column + * level metrics. + */ + computeColumnMetrics?: boolean; + /** + * Option to turn on/off computing profiler metrics. + */ + computeMetrics?: boolean; + /** + * Option to turn on/off table metric computation. If enabled, profiler will compute table + * level metrics. + */ + computeTableMetrics?: boolean; + /** + * Percentage of data or no. of rows used to compute the profiler metrics and run data + * quality tests + * + * Percentage of data or no. of rows we want to execute the profiler and tests on + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * Number of sample rows to ingest when 'Generate Sample Data' is enabled + */ + sampleDataCount?: number; + samplingMethodType?: SamplingMethodType; + /** + * Number of threads to use during metric computations + */ + threadCount?: number; + /** + * Profiler Timeout in Seconds + */ + timeoutSeconds?: number; + /** + * Use system tables to extract metrics. Metrics that cannot be gathered from system tables + * will use the default methods. Using system tables can be faster but requires gathering + * statistics before running (for example using the ANALYZE procedure). More information can + * be found in the documentation: https://docs.openmetadata.org/latest/profler + */ + useStatistics?: boolean; + /** + * Set the Confidence value for which you want the column to be tagged as PII. Confidence + * value ranges from 0 to 100. A higher number will yield less false positives but more + * false negatives. A lower number will yield more false positives but less false negatives. + */ + confidence?: number; + /** + * Optional configuration to automatically tag columns that might contain sensitive + * information + */ + enableAutoClassification?: boolean; + /** + * Option to turn on/off storing sample data. If enabled, we will ingest sample data for + * each table. + */ + storeSampleData?: boolean; + /** + * Optional configuration to turn off fetching lineage from pipelines. + */ + includeLineage?: boolean; + /** + * Optional configuration to toggle whether the un-deployed pipelines should be ingested or + * not. If set to false, only deployed pipelines will be ingested. + */ + includeUnDeployedPipelines?: boolean; + /** + * Optional configuration to soft delete Pipelines in OpenMetadata if the source Pipelines + * are deleted. Also, if the Pipeline is deleted, all the associated entities like lineage, + * etc., with that Pipeline will be deleted + */ + markDeletedPipelines?: boolean; + /** + * Regex exclude pipelines. + */ + pipelineFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete MlModels in OpenMetadata if the source MlModels are + * deleted. Also, if the MlModel is deleted, all the associated entities like lineage, etc., + * with that MlModels will be deleted + */ + markDeletedMlModels?: boolean; + /** + * Regex to only fetch MlModels with names matching the pattern. + */ + mlModelFilterPattern?: FilterPattern; + /** + * Regex to only fetch containers that matches the pattern. + */ + containerFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete containers in OpenMetadata if the source containers + * are deleted. Also, if the topic is deleted, all the associated entities with that + * containers will be deleted + */ + markDeletedContainers?: boolean; + storageMetadataConfigSource?: StorageMetadataConfigurationSource; + /** + * Enable the 'Include Index Template' toggle to manage the ingestion of index template data. + */ + includeIndexTemplate?: boolean; + /** + * Optional configuration to turn off fetching sample data for search index. + */ + includeSampleData?: boolean; + /** + * Optional configuration to soft delete search indexes in OpenMetadata if the source search + * indexes are deleted. Also, if the search index is deleted, all the associated entities + * like lineage, etc., with that search index will be deleted + */ + markDeletedSearchIndexes?: boolean; + /** + * No. of records of sample data we want to ingest. + */ + sampleSize?: number; + /** + * Regex to only fetch search indexes that matches the pattern. + */ + searchIndexFilterPattern?: FilterPattern; + /** + * Fully qualified name of the entity to be tested. + */ + entityFullyQualifiedName?: string; + /** + * List of test cases to be executed on the entity. If null, all test cases will be executed. + */ + testCases?: string[]; + /** + * Maximum number of events entities in a batch (Default 1000). + */ + batchSize?: number; + /** + * Certificate path to be added in configuration. The path should be local in the Ingestion + * Container. + */ + caCerts?: string; + recreateIndex?: boolean; + /** + * Region name. Required when using AWS Credentials. + */ + regionName?: string; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Connection Timeout + */ + timeout?: number; + /** + * Indicates whether to use aws credentials when connecting to OpenSearch in AWS. + */ + useAwsCredentials?: boolean; + /** + * Indicates whether to use SSL when connecting to ElasticSearch. By default, we will ignore + * SSL settings. + */ + useSSL?: boolean; + /** + * Indicates whether to verify certificates when using SSL connection to ElasticSearch. + * Ignored by default. Is set to true, make sure to send the certificates in the property + * `CA Certificates`. + */ + verifyCerts?: boolean; + /** + * Custom OpenMetadata Classification name for dbt tags. + */ + dbtClassificationName?: string; + /** + * Available sources to fetch DBT catalog and manifest files. + */ + dbtConfigSource?: DBTConfigurationSource; + /** + * Optional configuration to update the description from DBT or not + */ + dbtUpdateDescriptions?: boolean; + /** + * Application configuration + */ + appConfig?: any[] | boolean | CollateAIAppConfig | number | null | string; + /** + * Application private configuration + */ + appPrivateConfig?: PrivateConfig; + /** + * Source Python Class Name to run the application + */ + sourcePythonClass?: string; + /** + * Regex to only fetch api collections with names matching the pattern. + */ + apiCollectionFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete api collections in OpenMetadata if the source + * collections are deleted. Also, if the collection is deleted, all the associated entities + * like endpoints, etc., with that collection will be deleted + */ + markDeletedApiCollections?: boolean; +} + +/** + * Regex to only fetch databases that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + * + * Regex to only fetch tables or databases that matches the pattern. + * + * Regex exclude tables or databases that matches the pattern. + * + * Regex exclude or include charts that matches the pattern. + * + * Regex to exclude or include dashboards that matches the pattern. + * + * Regex exclude or include data models that matches the pattern. + * + * Regex to exclude or include projects that matches the pattern. + * + * Regex to only fetch topics that matches the pattern. + * + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + * + * Regex exclude pipelines. + * + * Regex to only fetch MlModels with names matching the pattern. + * + * Regex to only fetch containers that matches the pattern. + * + * Regex to only fetch search indexes that matches the pattern. + * + * Regex to only fetch api collections with names matching the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Configuration for the CollateAI External Application. + * + * Configuration for the Automator External Application. + * + * No configuration needed to instantiate the Data Insights Pipeline. The logic is handled + * in the backend. + * + * Search Indexing App. + * + * This schema defines the Slack App Token Configuration + */ +export interface CollateAIAppConfig { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + filter?: string; + /** + * Patch the description if it is empty, instead of raising a suggestion + */ + patchIfEmpty?: boolean; + /** + * Application Type + */ + type?: Type; + /** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + */ + actions?: Action[]; + /** + * Entities selected to run the automation. + */ + resources?: Resource; + backfillConfiguration?: BackfillConfiguration; + /** + * Maximum number of events processed at a time (Default 100). + * + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Recreates the DataAssets index on DataInsights. Useful if you changed a Custom Property + * Type and are facing errors. Bear in mind that recreating the index will delete your + * DataAssets and a backfill will be needed. + */ + recreateDataAssetsIndex?: boolean; + sendToAdmins?: boolean; + sendToTeams?: boolean; + /** + * Number of threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Maximum number of events sent in a batch (Default 100). + */ + payLoadSize?: number; + /** + * Number of threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to user internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Bot Token + */ + botToken?: string; + /** + * User Token + */ + userToken?: string; +} + +/** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + * + * Apply Tags to the selected assets. + * + * Remove Tags Action Type + * + * Add an owner to the selected assets. + * + * Remove Owner Action Type + * + * Add owners to the selected assets. + * + * Propagate description, tags and glossary terms via lineage + * + * ML Tagging action configuration for external automator. + */ +export interface Action { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + * + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + * + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + * + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + * + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + * + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + * + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + * + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + * + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + * + * Tags to remove + */ + tags?: TagLabel[]; + /** + * Application Type + */ + type: ActionType; + /** + * Domain to apply + */ + domain?: EntityReference; + /** + * Description to apply + */ + description?: string; + /** + * tier to apply + */ + tier?: TagLabel; + /** + * Owners to apply + */ + owners?: EntityReference[]; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + * + * tier to apply + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + * + * Remove Tags Action Type. + * + * Add Owner Action Type. + * + * Remove Domain Action Type + * + * Add Description Action Type. + * + * Remove Description Action Type + * + * Add Tier Action Type. + * + * Remove Tier Action Type + * + * Remove Owner Action Type + * + * Lineage propagation action type. + * + * ML PII Tagging action type. + */ +export enum ActionType { + AddDescriptionAction = "AddDescriptionAction", + AddDomainAction = "AddDomainAction", + AddOwnerAction = "AddOwnerAction", + AddTagsAction = "AddTagsAction", + AddTierAction = "AddTierAction", + LineagePropagationAction = "LineagePropagationAction", + MLTaggingAction = "MLTaggingAction", + RemoveDescriptionAction = "RemoveDescriptionAction", + RemoveDomainAction = "RemoveDomainAction", + RemoveOwnerAction = "RemoveOwnerAction", + RemoveTagsAction = "RemoveTagsAction", + RemoveTierAction = "RemoveTierAction", +} + +/** + * Backfill Configuration + */ +export interface BackfillConfiguration { + /** + * Enable Backfill for the configured dates + */ + enabled?: boolean; + /** + * Date for which the backfill will end + */ + endDate?: Date; + /** + * Date from which to start the backfill + */ + startDate?: Date; + [property: string]: any; +} + +/** + * Entities selected to run the automation. + */ +export interface Resource { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + queryFilter?: string; + /** + * Type of the entity. E.g., 'table', 'chart',... + */ + type?: string[]; + [property: string]: any; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Application Type + * + * Application type. + */ +export enum Type { + Automator = "Automator", + CollateAI = "CollateAI", + DataInsights = "DataInsights", + DataInsightsReport = "DataInsightsReport", + SearchIndexing = "SearchIndexing", +} + +/** + * Application private configuration + * + * PRivate Configuration for the CollateAI External Application. + */ +export interface PrivateConfig { + /** + * Collate Server public URL. WAII will use this information to interact with the server. + * E.g., https://sandbox.getcollate.io + */ + collateURL: string; + /** + * Limits for the CollateAI Application. + */ + limits: CollateAILimits; + /** + * WAII API Token + */ + token: string; + /** + * WAII API host URL + */ + waiiInstance: string; +} + +/** + * Limits for the CollateAI Application. + */ +export interface CollateAILimits { + /** + * Start of the billing cycle. + */ + billingCycleStart?: Date; + /** + * Maximum number of descriptions generated by the CollateAI + */ + descriptions?: number; + /** + * Maximum number of queries generated by CollateAI. + */ + queries?: number; + [property: string]: any; +} + +/** + * Available sources to fetch DBT catalog and manifest files. + * + * dbt Cloud configuration. + * + * DBT Catalog, Manifest and Run Results file path config. + * + * DBT Catalog, Manifest and Run Results HTTP path configuration. + * + * DBT Catalog, Manifest and Run Results files in S3 bucket. We will search for + * catalog.json, manifest.json and run_results.json. + * + * DBT Catalog, Manifest and Run Results files in GCS storage. We will search for + * catalog.json, manifest.json and run_results.json. + * + * DBT Catalog, Manifest and Run Results files in Azure bucket. We will search for + * catalog.json, manifest.json and run_results.json. + */ +export interface DBTConfigurationSource { + /** + * dbt cloud account Id + */ + dbtCloudAccountId?: string; + /** + * dbt cloud account authentication token + */ + dbtCloudAuthToken?: string; + /** + * dbt cloud job id. + */ + dbtCloudJobId?: string; + /** + * In case of multiple projects in a dbt cloud account, specify the project's id from which + * you want to extract the dbt run artifacts + */ + dbtCloudProjectId?: string; + /** + * URL to connect to your dbt cloud instance. E.g., https://cloud.getdbt.com or + * https://emea.dbt.com/ + */ + dbtCloudUrl?: string; + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigType; + /** + * DBT catalog file path to extract dbt models with their column schemas. + */ + dbtCatalogFilePath?: string; + /** + * DBT manifest file path to extract dbt models and associate with tables. + */ + dbtManifestFilePath?: string; + /** + * DBT run results file path to extract the test results information. + */ + dbtRunResultsFilePath?: string; + /** + * DBT sources file path to extract the freshness test result. + */ + dbtSourcesFilePath?: string; + /** + * DBT catalog http file path to extract dbt models with their column schemas. + */ + dbtCatalogHttpPath?: string; + /** + * DBT manifest http file path to extract dbt models and associate with tables. + */ + dbtManifestHttpPath?: string; + /** + * DBT run results http file path to extract the test results information. + */ + dbtRunResultsHttpPath?: string; + /** + * DBT sources http file path to extract freshness test results information. + */ + dbtSourcesHttpPath?: string; + /** + * Details of the bucket where the dbt files are stored + */ + dbtPrefixConfig?: DBTPrefixConfig; + dbtSecurityConfig?: Credentials; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigType { + Azure = "azure", + Cloud = "cloud", + Gcs = "gcs", + HTTP = "http", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the dbt files are stored + */ +export interface DBTPrefixConfig { + /** + * Name of the bucket where the dbt files are stored + */ + dbtBucketName?: string; + /** + * Path of the folder where the dbt files are stored + */ + dbtObjectPrefix?: string; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + * + * GCP credentials configs. + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Use incremental Metadata extraction after the first execution. This is commonly done by + * getting the changes from Audit tables on the supporting databases. + */ +export interface IncrementalMetadataExtractionConfiguration { + /** + * If True, enables Metadata Extraction to be incremental + */ + enabled: boolean; + /** + * Number os days to search back for a successful pipeline run. The timestamp of the last + * found successful pipeline run will be used as a base to search for updated entities. + */ + lookbackDays?: number; + /** + * Number of days to add to the last successful pipeline run timestamp to search for updated + * entities. + */ + safetyMarginDays?: number; +} + +/** + * Details required to generate Lineage + */ +export interface LineageInformation { + /** + * List of Database Service Names for creation of lineage + */ + dbServiceNames?: string[]; + /** + * List of Storage Service Names for creation of lineage + */ + storageServiceNames?: string[]; + [property: string]: any; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * No manifest file available. Ingestion would look for bucket-level metadata file instead + * + * Storage Metadata Manifest file path config. + * + * Storage Metadata Manifest file HTTP path config. + * + * Storage Metadata Manifest file S3 path config. + * + * Storage Metadata Manifest file ADLS path config. + * + * Storage Metadata Manifest file GCS path config. + */ +export interface StorageMetadataConfigurationSource { + /** + * Storage Metadata manifest file path to extract locations to ingest from. + */ + manifestFilePath?: string; + /** + * Storage Metadata manifest http file path to extract locations to ingest from. + */ + manifestHttpPath?: string; + prefixConfig?: StorageMetadataBucketDetails; + securityConfig?: Credentials; +} + +/** + * Details of the bucket where the storage metadata manifest file is stored + */ +export interface StorageMetadataBucketDetails { + /** + * Name of the top level container where the storage metadata file is stored + */ + containerName: string; + /** + * Path of the folder where the storage metadata file is stored. If the file is at the root, + * you can keep it empty. + */ + objectPrefix?: string; +} + +/** + * Pipeline type + * + * Database Source Config Metadata Pipeline type + * + * Database Source Config Usage Pipeline type + * + * Dashboard Source Config Metadata Pipeline type + * + * Messaging Source Config Metadata Pipeline type + * + * Profiler Source Config Pipeline type + * + * Pipeline Source Config Metadata Pipeline type + * + * MlModel Source Config Metadata Pipeline type + * + * Object Store Source Config Metadata Pipeline type + * + * Search Source Config Metadata Pipeline type + * + * DBT Config Pipeline type + * + * Pipeline Source Config For Application Pipeline type. Nothing is required. + * + * Api Source Config Metadata Pipeline type + */ +export enum ConfigType { + APIMetadata = "ApiMetadata", + Application = "Application", + AutoClassification = "AutoClassification", + DashboardMetadata = "DashboardMetadata", + DataInsight = "dataInsight", + DatabaseLineage = "DatabaseLineage", + DatabaseMetadata = "DatabaseMetadata", + DatabaseUsage = "DatabaseUsage", + Dbt = "DBT", + MessagingMetadata = "MessagingMetadata", + MetadataToElasticSearch = "MetadataToElasticSearch", + MlModelMetadata = "MlModelMetadata", + PipelineMetadata = "PipelineMetadata", + Profiler = "Profiler", + SearchMetadata = "SearchMetadata", + StorageMetadata = "StorageMetadata", + TestSuite = "TestSuite", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/pipelineServiceClientResponse.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/pipelineServiceClientResponse.ts new file mode 100644 index 000000000000..6fd4090a5ac6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/pipelineServiceClientResponse.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Object to send Status responses about your Ingestion Pipelines ops. + */ +export interface PipelineServiceClientResponse { + /** + * Status code + */ + code: number; + /** + * Orchestration platform used by the Pipeline Service Client. + */ + platform: string; + /** + * Extra information to be sent back to the client, such as error traces. + */ + reason?: string; + /** + * Ingestion version being used. + */ + version?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/status.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/status.ts new file mode 100644 index 000000000000..aabf6c9eb0a9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/ingestionPipelines/status.ts @@ -0,0 +1,16 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + export interface StatusClass { +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/messagingService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/messagingService.ts new file mode 100644 index 000000000000..a11173008e51 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/messagingService.ts @@ -0,0 +1,545 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Messaging Service entity, such as Kafka and Pulsar. + */ +export interface MessagingService { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + connection?: MessagingConnection; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a messaging service instance. + */ + description?: string; + /** + * Display Name that identifies this messaging service. It could be title or label from the + * source services. + */ + displayName?: string; + /** + * Domain the Messaging service belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this messaging service. + */ + href?: string; + /** + * Unique identifier of this messaging service instance. + */ + id: string; + /** + * Name that identifies this messaging service. + */ + name: string; + /** + * Owners of this messaging service. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this messaging service to extract topic configs and + * schemas. + */ + pipelines?: EntityReference[]; + /** + * Type of messaging service such as Kafka or Pulsar... + */ + serviceType: MessagingServiceType; + /** + * Tags for this Message Service. + */ + tags?: TagLabel[]; + /** + * Last test connection results for this service + */ + testConnectionResult?: TestConnectionResult; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Dashboard Connection. + */ +export interface MessagingConnection { + config?: Connection; +} + +/** + * Kafka Connection Config + * + * Redpanda Connection Config + * + * Kinesis Connection Config + * + * Custom Messaging Service Connection to build a source that is not supported by + * OpenMetadata yet. + */ +export interface Connection { + /** + * basic.auth.user.info schema registry config property, Client HTTP credentials in the form + * of username:password. + */ + basicAuthUserInfo?: string; + /** + * Kafka bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + * + * Redpanda bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + */ + bootstrapServers?: string; + /** + * Confluent Kafka Consumer Config. From + * https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md + * + * Confluent Redpanda Consumer Config + */ + consumerConfig?: { [key: string]: any }; + /** + * sasl.mechanism Consumer Config property + */ + saslMechanism?: SaslMechanismType; + /** + * sasl.password consumer config property + */ + saslPassword?: string; + /** + * sasl.username consumer config property + */ + saslUsername?: string; + /** + * Confluent Kafka Schema Registry Config. From + * https://docs.confluent.io/5.5.1/clients/confluent-kafka-python/index.html#confluent_kafka.schema_registry.SchemaRegistryClient + * + * Confluent Redpanda Schema Registry Config. + */ + schemaRegistryConfig?: { [key: string]: any }; + /** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + */ + schemaRegistrySSL?: Config; + /** + * Schema Registry Topic Suffix Name. The suffix to be appended to the topic name to get + * topic schema from registry. + */ + schemaRegistryTopicSuffixName?: string; + /** + * Confluent Kafka Schema Registry URL. + * + * Confluent Redpanda Schema Registry URL. + */ + schemaRegistryURL?: string; + /** + * security.protocol consumer config property + */ + securityProtocol?: SecurityProtocol; + supportsMetadataExtraction?: boolean; + /** + * Service Type + * + * Custom messaging service type + */ + type?: MessagingServiceType; + awsConfig?: AWSCredentials; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * sasl.mechanism Consumer Config property + * + * SASL Mechanism consumer config property + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * security.protocol consumer config property + */ +export enum SecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslPlaintext = "SASL_PLAINTEXT", + SaslSSL = "SASL_SSL", +} + +/** + * Service Type + * + * Kafka service type + * + * Redpanda service type + * + * Service type. + * + * Custom messaging service type + * + * Type of messaging service such as Kafka or Pulsar... + * + * Type of messaging service - Kafka or Pulsar. + */ +export enum MessagingServiceType { + CustomMessaging = "CustomMessaging", + Kafka = "Kafka", + Kinesis = "Kinesis", + Redpanda = "Redpanda", +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Messaging service belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Last test connection results for this service + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/metadataService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/metadataService.ts new file mode 100644 index 000000000000..d70978f4988e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/metadataService.ts @@ -0,0 +1,1058 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Metadata Service entity, such as Amundsen, Atlas etc. + */ +export interface MetadataService { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + connection?: MetadataConnection; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a database service instance. + */ + description?: string; + /** + * Display Name that identifies this database service. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this database service. + */ + href?: string; + /** + * Unique identifier of this database service instance. + */ + id: string; + /** + * Name that identifies this database service. + */ + name: string; + /** + * Owners of this database service. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this database service to extract metadata, usage, + * lineage etc.. + */ + pipelines?: EntityReference[]; + provider?: ProviderType; + /** + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ + serviceType: MetadataServiceType; + /** + * Tags for this Metadata Service. + */ + tags?: TagLabel[]; + /** + * Last test connection results for this service + */ + testConnectionResult?: TestConnectionResult; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Metadata Service Connection. + */ +export interface MetadataConnection { + config?: Connection; +} + +/** + * Amundsen Connection Config + * + * Metadata to ElasticSearch Connection Config + * + * OpenMetadata Connection Config + * + * Atlas Connection Config + * + * Alation Connection Config + * + * Alation Sink Connection Config + */ +export interface Connection { + /** + * Enable encryption for the Amundsen Neo4j Connection. + */ + encrypted?: boolean; + /** + * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: + * bolt://localhost:7687. + * + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + * + * Host and port of the Atlas service. + * + * Host and port of the Alation service. + */ + hostPort?: string; + /** + * Maximum connection lifetime for the Amundsen Neo4j Connection. + */ + maxConnectionLifeTime?: number; + /** + * password to connect to the Amundsen Neo4j Connection. + * + * password to connect to the Atlas. + */ + password?: string; + supportsMetadataExtraction?: boolean; + /** + * Service Type + */ + type?: MetadataServiceType; + /** + * username to connect to the Amundsen Neo4j Connection. + * + * username to connect to the Atlas. This user should have privileges to read all the + * metadata in Atlas. + */ + username?: string; + /** + * Enable SSL validation for the Amundsen Neo4j Connection. + */ + validateSSL?: boolean; + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * List of entities that you need to reindex + */ + entities?: string[]; + recreateIndex?: boolean; + runMode?: RunMode; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: Config; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: VerifySSL; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * service type of the data source. + */ + databaseServiceName?: string[]; + /** + * Name of the Entity Type available in Atlas. + */ + entity_type?: string; + /** + * service type of the messaging source + */ + messagingServiceName?: string[]; + /** + * Custom OpenMetadata Classification name for alation tags. + */ + alationTagClassificationName?: string; + /** + * Types of methods used to authenticate to the alation instance + */ + authType?: AuthenticationTypeForAlation; + /** + * Choose between mysql and postgres connection for alation database + */ + connection?: AlationDatabaseConnection; + /** + * Specifies if hidden datasources should be included while ingesting. + */ + includeHiddenDatasources?: boolean; + /** + * Specifies if undeployed datasources should be included while ingesting. + */ + includeUndeployedDatasources?: boolean; + /** + * Specifies if Dashboards are to be ingested while running the ingestion job. + */ + ingestDashboards?: boolean; + /** + * Specifies if Datasources are to be ingested while running the ingestion job. + */ + ingestDatasources?: boolean; + /** + * Specifies if Domains are to be ingested while running the ingestion job. + */ + ingestDomains?: boolean; + /** + * Specifies if Knowledge Articles are to be ingested while running the ingestion job. + */ + ingestKnowledgeArticles?: boolean; + /** + * Specifies if Users and Groups are to be ingested while running the ingestion job. + */ + ingestUsersAndGroups?: boolean; + /** + * Pagination limit used for Alation APIs pagination + */ + paginationLimit?: number; + /** + * Project name to create the refreshToken. Can be anything + */ + projectName?: string; + datasourceLinks?: { [key: string]: string }; +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Types of methods used to authenticate to the alation instance + * + * Basic Auth Credentials + * + * API Access Token Auth Credentials + */ +export interface AuthenticationTypeForAlation { + /** + * Password to access the service. + */ + password?: string; + /** + * Username to access the service. + */ + username?: string; + /** + * Access Token for the API + */ + accessToken?: string; +} + +/** + * Choose between mysql and postgres connection for alation database + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface AlationDatabaseConnection { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: Type; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * SSL Configuration for OpenMetadata Server + * + * Client SSL configuration + * + * SSL Configuration details. + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum Type { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * This schema publisher run modes. + */ +export enum RunMode { + Batch = "batch", + Stream = "stream", +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * Service Type + * + * Amundsen service type + * + * Metadata to Elastic Search type + * + * OpenMetadata service type + * + * Service type. + * + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + * + * Type of database service such as Amundsen, Atlas... + */ +export enum MetadataServiceType { + Alation = "Alation", + AlationSink = "AlationSink", + Amundsen = "Amundsen", + Atlas = "Atlas", + MetadataES = "MetadataES", + OpenMetadata = "OpenMetadata", +} + +/** + * Flag to verify SSL Certificate for OpenMetadata Server. + * + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this database service. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Last test connection results for this service + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/mlmodelService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/mlmodelService.ts new file mode 100644 index 000000000000..8828be31ca02 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/mlmodelService.ts @@ -0,0 +1,572 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * MlModel Service Entity, such as MlFlow. + */ +export interface MlmodelService { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + connection?: MlModelConnection; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a pipeline service instance. + */ + description?: string; + /** + * Display Name that identifies this pipeline service. It could be title or label from the + * source services. + */ + displayName?: string; + /** + * Domain the MLModel service belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this pipeline service. + */ + href?: string; + /** + * Unique identifier of this pipeline service instance. + */ + id: string; + /** + * Name that identifies this pipeline service. + */ + name: string; + /** + * Owners of this pipeline service. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this pipeline service to extract metadata + */ + pipelines?: EntityReference[]; + /** + * Type of pipeline service such as Airflow or Prefect... + */ + serviceType: MlModelServiceType; + /** + * Tags for this MlModel Service. + */ + tags?: TagLabel[]; + /** + * Last test connection results for this service + */ + testConnectionResult?: TestConnectionResult; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * MlModel Connection. + */ +export interface MlModelConnection { + config?: Connection; +} + +/** + * MlFlow Connection Config + * + * Sklearn Connection Config + * + * Custom MlModel Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * SageMaker Connection Config + * + * Google VertexAI Connection Config + */ +export interface Connection { + /** + * Mlflow Model registry backend. E.g., + * mysql+pymysql://mlflow:password@localhost:3307/experiments + */ + registryUri?: string; + supportsMetadataExtraction?: boolean; + /** + * Mlflow Experiment tracking URI. E.g., http://localhost:5000 + */ + trackingUri?: string; + /** + * Service Type + * + * Custom Ml model service type + */ + type?: MlModelServiceType; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + awsConfig?: AWSCredentials; + /** + * GCP Credentials + */ + credentials?: GCPCredentials; + /** + * location/region of google cloud project + */ + location?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * GCP Credentials + * + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * Service type. + * + * Custom Ml model service type + * + * Type of pipeline service such as Airflow or Prefect... + * + * Type of MlModel service + */ +export enum MlModelServiceType { + CustomMlModel = "CustomMlModel", + Mlflow = "Mlflow", + SageMaker = "SageMaker", + Sklearn = "Sklearn", + VertexAI = "VertexAI", +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the MLModel service belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Last test connection results for this service + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/pipelineService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/pipelineService.ts new file mode 100644 index 000000000000..67cc2f1b4c5f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/pipelineService.ts @@ -0,0 +1,1067 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Pipeline Service entity, such as Airflow and Prefect. + */ +export interface PipelineService { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + connection?: PipelineConnection; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a pipeline service instance. + */ + description?: string; + /** + * Display Name that identifies this pipeline service. It could be title or label from the + * source services. + */ + displayName?: string; + /** + * Domain the Pipeline service belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this pipeline service. + */ + href?: string; + /** + * Unique identifier of this pipeline service instance. + */ + id: string; + /** + * Name that identifies this pipeline service. + */ + name: string; + /** + * Owners of this pipeline service. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this pipeline service to extract metadata + */ + pipelines?: EntityReference[]; + /** + * Type of pipeline service such as Airflow or Prefect... + */ + serviceType: PipelineServiceType; + /** + * Tags for this Pipeline Service. + */ + tags?: TagLabel[]; + /** + * Last test connection results for this service + */ + testConnectionResult?: TestConnectionResult; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Pipeline Connection. + */ +export interface PipelineConnection { + config?: Connection; +} + +/** + * Airflow Metadata Database Connection Config + * + * Glue Pipeline Connection Config + * + * Airbyte Metadata Database Connection Config + * + * Fivetran Metadata Database Connection Config + * + * Flink Metadata Connection Config + * + * Dagster Metadata Database Connection Config + * + * Nifi Metadata Pipeline Connection Config + * + * Domo Pipeline Connection Config + * + * Custom Pipeline Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Databricks Connection Config + * + * Spline Metadata Database Connection Config + * + * Spark Metadata Pipeline Connection Config + * + * OpenLineage Connection Config + * + * KafkaConnect Connection Config + * + * DBTCloud Connection Config + * + * Matillion Connection + * + * Azure Data Factory Connection Config + * + * Stitch Connection + */ +export interface Connection { + /** + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Matillion Auth Configuration + */ + connection?: MetadataDatabaseConnection; + /** + * Pipeline Service Management/UI URI. + * + * Pipeline Service Management/UI URL. + * + * Host and port of the Databricks service. + * + * Spline REST Server Host & Port. + * + * KafkaConnect Service Management/UI URI. + * + * Host and port of the Stitch API host + */ + hostPort?: string; + /** + * Pipeline Service Number Of Status + */ + numberOfStatus?: number; + supportsMetadataExtraction?: boolean; + /** + * Service Type + * + * Custom pipeline service type + */ + type?: PipelineServiceType; + awsConfig?: AWSCredentials; + /** + * Password to connect to Airbyte. + */ + password?: string; + /** + * Username to connect to Airbyte. + */ + username?: string; + /** + * Fivetran API Secret. + */ + apiKey?: string; + /** + * Fivetran API Secret. + */ + apiSecret?: string; + /** + * Fivetran API Limit For Pagination. + */ + limit?: number; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + /** + * Boolean marking if we need to verify the SSL certs for KafkaConnect REST API. True by + * default. + */ + verifySSL?: boolean | VerifySSL; + /** + * URL to the Dagster instance + * + * DBT cloud Access URL. + */ + host?: string; + /** + * Connection Time Limit Between OM and Dagster Graphql API in second + */ + timeout?: number; + /** + * To Connect to Dagster Cloud + * + * Generated Token to connect to Databricks. + * + * Generated Token to connect to DBTCloud. + * + * Token to connect to Stitch api doc + */ + token?: string; + /** + * We support username/password or client certificate authentication + */ + nifiConfig?: NifiCredentialsConfiguration; + /** + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * Client ID for DOMO + */ + clientId?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret token to connect to DOMO + */ + secretToken?: string; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + connectionArguments?: { [key: string]: any }; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + /** + * Spline UI Host & Port. + */ + uiHostPort?: string; + /** + * service type of the messaging source + */ + brokersUrl?: string; + /** + * consumer group name + */ + consumerGroupName?: string; + /** + * initial Kafka consumer offset + */ + consumerOffsets?: InitialConsumerOffsets; + /** + * max allowed wait time + */ + poolTimeout?: number; + /** + * SASL Configuration details. + */ + saslConfig?: SASLClientConfig; + /** + * Kafka security protocol config + */ + securityProtocol?: KafkaSecurityProtocol; + /** + * max allowed inactivity time + */ + sessionTimeout?: number; + /** + * topic from where Open lineage events will be pulled + */ + topicName?: string; + /** + * We support username/password or No Authentication + */ + KafkaConnectConfig?: UsernamePasswordAuthentication; + /** + * Name of the Kafka Messaging Service associated with this KafkaConnect Pipeline Service. + * e.g. local_kafka + */ + messagingServiceName?: string; + /** + * ID of your DBT cloud account + */ + accountId?: string; + /** + * DBT cloud Metadata API URL. + */ + discoveryAPI?: string; + /** + * List of IDs of your DBT cloud jobs seperated by comma `,` + */ + jobIds?: string[]; + /** + * List of IDs of your DBT cloud projects seperated by comma `,` + */ + projectIds?: string[]; + /** + * Available sources to fetch metadata. + */ + configSource?: AzureCredentials; + /** + * The name of your azure data factory. + */ + factory_name?: string; + /** + * The name of your resource group the data factory is associated with. + */ + resource_group_name?: string; + /** + * Number of days in the past to filter pipeline runs. + */ + run_filter_days?: number; + /** + * The azure subscription identifier. + */ + subscription_id?: string; +} + +/** + * We support username/password or No Authentication + * + * username/password auth + */ +export interface UsernamePasswordAuthentication { + /** + * KafkaConnect password to authenticate to the API. + */ + password?: string; + /** + * KafkaConnect user to authenticate to the API. + */ + username?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Lineage Backend Connection Config + * + * Mysql Database Connection Config + * + * Postgres Database Connection Config + * + * SQLite Database Connection Config + * + * Matillion Auth Configuration + * + * Matillion ETL Auth Config + */ +export interface MetadataDatabaseConnection { + /** + * Service Type + */ + type?: Type; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * Host and port of the MySQL service. + * + * Host and port of the source service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Matillion Host + */ + hostPort?: string; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: Scheme; + /** + * SSL Configuration details. + */ + sslConfig?: Config; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to the Matillion. This user should have privileges to read all the + * metadata in Matillion. + */ + username?: string; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sslMode?: SSLMode; + supportsDatabase?: boolean; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to the Matillion. + */ + password?: string; + supportsViewLineageExtraction?: boolean; + [property: string]: any; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum Scheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", + SqlitePysqlite = "sqlite+pysqlite", +} + +/** + * SSL Configuration details. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum Type { + Backend = "Backend", + MatillionETL = "MatillionETL", + Mysql = "Mysql", + Postgres = "Postgres", + SQLite = "SQLite", +} + +/** + * initial Kafka consumer offset + */ +export enum InitialConsumerOffsets { + Earliest = "earliest", + Latest = "latest", +} + +/** + * We support username/password or client certificate authentication + * + * username/password auth + * + * client certificate auth + */ +export interface NifiCredentialsConfiguration { + /** + * Nifi password to authenticate to the API. + */ + password?: string; + /** + * Nifi user to authenticate to the API. + */ + username?: string; + /** + * Boolean marking if we need to verify the SSL certs for Nifi. False by default. + */ + verifySSL?: boolean; + /** + * Path to the root CA certificate + */ + certificateAuthorityPath?: string; + /** + * Path to the client certificate + */ + clientCertificatePath?: string; + /** + * Path to the client key + */ + clientkeyPath?: string; +} + +/** + * SASL Configuration details. + * + * SASL client configuration. + */ +export interface SASLClientConfig { + /** + * SASL security mechanism + */ + saslMechanism?: SaslMechanismType; + /** + * The SASL authentication password. + */ + saslPassword?: string; + /** + * The SASL authentication username. + */ + saslUsername?: string; +} + +/** + * SASL security mechanism + * + * SASL Mechanism consumer config property + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Kafka security protocol config + */ +export enum KafkaSecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslSSL = "SASL_SSL", +} + +/** + * Service Type + * + * Service type. + * + * Custom pipeline service type + * + * Type of pipeline service such as Airflow or Prefect... + * + * Type of pipeline service - Airflow or Prefect. + */ +export enum PipelineServiceType { + Airbyte = "Airbyte", + Airflow = "Airflow", + CustomPipeline = "CustomPipeline", + DBTCloud = "DBTCloud", + Dagster = "Dagster", + DataFactory = "DataFactory", + DatabricksPipeline = "DatabricksPipeline", + DomoPipeline = "DomoPipeline", + Fivetran = "Fivetran", + Flink = "Flink", + GluePipeline = "GluePipeline", + KafkaConnect = "KafkaConnect", + Matillion = "Matillion", + Nifi = "Nifi", + OpenLineage = "OpenLineage", + Spark = "Spark", + Spline = "Spline", + Stitch = "Stitch", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Pipeline service belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Last test connection results for this service + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/searchService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/searchService.ts new file mode 100644 index 000000000000..dfd75d35f932 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/searchService.ts @@ -0,0 +1,511 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Search Service entity, such as ElasticSearch, OpenSearch. + */ +export interface SearchService { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + connection?: SearchConnection; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a search service instance. + */ + description?: string; + /** + * Display Name that identifies this search service. + */ + displayName?: string; + /** + * Domain the search service belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this search service. + */ + href?: string; + /** + * Unique identifier of this search service instance. + */ + id: string; + /** + * Name that identifies this search service. + */ + name: string; + /** + * Owners of this search service. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this search service to extract metadata etc.. + */ + pipelines?: EntityReference[]; + /** + * Type of search service such as S3, GCS, AZURE... + */ + serviceType: SearchServiceType; + /** + * Tags for this search Service. + */ + tags?: TagLabel[]; + /** + * Last test connection results for this service + */ + testConnectionResult?: TestConnectionResult; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * search Connection. + */ +export interface SearchConnection { + config?: ConfigClass; +} + +/** + * ElasticSearch Connection. + * + * OpenSearch Connection. + * + * Custom Search Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface ConfigClass { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + connectionArguments?: { [key: string]: any }; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Host and port of the ElasticSearch service. + * + * Host and port of the OpenSearch service. + */ + hostPort?: string; + sslConfig?: SSLConfig; + supportsMetadataExtraction?: boolean; + /** + * ElasticSearch Type + * + * Service Type + * + * Custom search service type + */ + type?: SearchServiceType; + connectionOptions?: { [key: string]: string }; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * OpenSearch Password for Login + */ + password?: string; + /** + * Http/Https connection scheme + */ + scheme?: string; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs?: number; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; + /** + * OpenSearch Username for Login + */ + username?: string; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; +} + +/** + * Choose Auth Config Type. + * + * Basic Auth Configuration for ElasticSearch + * + * API Key Authentication for ElasticSearch + */ +export interface AuthConfigurationType { + /** + * Elastic Search Password for Login + */ + password?: string; + /** + * Elastic Search Username for Login + */ + username?: string; + /** + * Elastic Search API Key for API Authentication + */ + apiKey?: string; + /** + * Elastic Search API Key ID for API Authentication + */ + apiKeyId?: string; +} + +/** + * SSL Config + */ +export interface SSLConfig { + /** + * SSL Certificates + */ + certificates?: SSLCertificates; + [property: string]: any; +} + +/** + * SSL Certificates + * + * SSL Certificates By Path + * + * SSL Certificates By Values + */ +export interface SSLCertificates { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} + +/** + * ElasticSearch Type + * + * ElasticSearch service type + * + * Service Type + * + * OpenSearch service type + * + * Custom search service type + * + * Type of search service such as S3, GCS, AZURE... + * + * Type of search service such as ElasticSearch or OpenSearch. + */ +export enum SearchServiceType { + CustomSearch = "CustomSearch", + ElasticSearch = "ElasticSearch", + OpenSearch = "OpenSearch", +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the search service belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Last test connection results for this service + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/serviceType.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/serviceType.ts new file mode 100644 index 000000000000..4bb60fe92f2f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/serviceType.ts @@ -0,0 +1,28 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the service types entities which requires a connection. + */ +export enum ServiceType { + API = "Api", + Dashboard = "Dashboard", + Database = "Database", + Messaging = "Messaging", + Metadata = "Metadata", + MlModel = "MlModel", + Pipeline = "Pipeline", + Search = "Search", + Storage = "Storage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/storageService.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/storageService.ts new file mode 100644 index 000000000000..85d4130037b2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/services/storageService.ts @@ -0,0 +1,595 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Storage Service entity, such as S3, GCS or AZURE. + */ +export interface StorageService { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + connection?: StorageConnection; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of a storage service instance. + */ + description?: string; + /** + * Display Name that identifies this storage service. + */ + displayName?: string; + /** + * Domain the Storage service belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this storage service. + */ + href?: string; + /** + * Unique identifier of this storage service instance. + */ + id: string; + /** + * Name that identifies this storage service. + */ + name: string; + /** + * Owners of this storage service. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this storage service to extract metadata, usage, + * lineage etc.. + */ + pipelines?: EntityReference[]; + /** + * Type of storage service such as S3, GCS, AZURE... + */ + serviceType: StorageServiceType; + /** + * Tags for this storage Service. + */ + tags?: TagLabel[]; + /** + * Last test connection results for this service + */ + testConnectionResult?: TestConnectionResult; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Storage Connection. + */ +export interface StorageConnection { + config?: Connection; +} + +/** + * S3 Connection. + * + * ADLS Connection. + * + * GCS Connection. + * + * Custom Storage Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface Connection { + awsConfig?: AWSCredentials; + /** + * Bucket Names of the data source. + */ + bucketNames?: string[]; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + supportsMetadataExtraction?: boolean; + /** + * Service Type + * + * Custom storage service type + */ + type?: StorageServiceType; + /** + * Azure Credentials + * + * GCP Credentials + */ + credentials?: Credentials; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Credentials + * + * Azure Cloud Credentials + * + * GCP Credentials + * + * GCP credentials configs. + */ +export interface Credentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Service Type + * + * S3 service type + * + * ADLS service type + * + * Gcs service type + * + * Custom storage service type + * + * Type of storage service such as S3, GCS, AZURE... + * + * Type of storage service such as S3, GFS, AZURE... + */ +export enum StorageServiceType { + Adls = "ADLS", + CustomStorage = "CustomStorage", + Gcs = "GCS", + S3 = "S3", +} + +/** + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the Storage service belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Last test connection results for this service + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/persona.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/persona.ts new file mode 100644 index 000000000000..1b7197a20fee --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/persona.ts @@ -0,0 +1,173 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Persona entity. A `Persona` is a job function associated with a + * user. An Example, Data Engineer or Data Consumer is a Persona of a user in Metadata world. + */ +export interface Persona { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Description of the persona. + */ + description?: string; + /** + * Name used for display purposes. Example 'Data Steward'. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + id: string; + /** + * A unique name of Persona. Example 'data engineer' + */ + name: string; + /** + * Reference to the UI customization configuration. + */ + uiCustomization?: EntityReference; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Users that are assigned a persona. + */ + users?: EntityReference[]; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Reference to the UI customization configuration. + * + * Users that are assigned a persona. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/role.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/role.ts new file mode 100644 index 000000000000..e5191b65ace5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/role.ts @@ -0,0 +1,200 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `Role` is a collection of `Policies` that provides access control. A user or a team can + * be assigned one or multiple roles that provide privileges to a user and members of a team + * to perform the job function. + */ +export interface Role { + /** + * Some system roles can't be deleted + */ + allowDelete?: boolean; + /** + * Some system roles can't be edited + */ + allowEdit?: boolean; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the role. + */ + description?: string; + /** + * System policy can't be deleted. Use this flag to disable them. + */ + disabled?: boolean; + /** + * Name used for display purposes. Example 'Data Consumer'. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + id: string; + name: string; + /** + * Policies that is attached to this role. + */ + policies?: EntityReference[]; + provider?: ProviderType; + /** + * Teams that have this role assigned to them. + */ + teams?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Users that have this role assigned to them. + */ + users?: EntityReference[]; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Policies that is attached to this role. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/team.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/team.ts new file mode 100644 index 000000000000..cc206fa07089 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/team.ts @@ -0,0 +1,329 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Team entity. A `Team` is a group of zero or more users and/or + * other teams. Teams can own zero or more data assets. Hierarchical teams are supported + * `Organization` -> `BusinessUnit` -> `Division` -> `Department`. + */ +export interface Team { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Children teams. An `Organization` can have `BusinessUnit`, `Division` or `Department` as + * children. A `BusinessUnit` can have `BusinessUnit`, `Division`, or `Department` as + * children. A `Division` can have `Division` or `Department` as children. A `Department` + * can have `Department` as children. + */ + children?: EntityReference[]; + /** + * Total count of Children teams. + */ + childrenCount?: number; + /** + * Default roles of a team. These roles will be inherited by all the users that are part of + * this team. + */ + defaultRoles?: EntityReference[]; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the team. + */ + description?: string; + /** + * Name used for display purposes. Example 'Data Science team'. + */ + displayName?: string; + /** + * Domain the Team belongs to. + */ + domains?: EntityReference[]; + /** + * Email address of the team. + */ + email?: string; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + id: string; + /** + * Roles that a team is inheriting through membership in teams that have set team default + * roles. + */ + inheritedRoles?: EntityReference[]; + /** + * Can any user join this team during sign up? Value of true indicates yes, and false no. + */ + isJoinable?: boolean; + /** + * A unique name of the team typically the team ID from an identity provider. Example - + * group Id from LDAP. + */ + name: string; + /** + * Owner of this team. + */ + owners?: EntityReference[]; + /** + * List of entities owned by the team. + */ + owns?: EntityReference[]; + /** + * Parent teams. For an `Organization` the `parent` is always null. A `BusinessUnit` always + * has only one parent of type `BusinessUnit` or an `Organization`. A `Division` can have + * multiple parents of type `BusinessUnit` or `Division`. A `Department` can have multiple + * parents of type `Division` or `Department`. + */ + parents?: EntityReference[]; + /** + * Policies that is attached to this team. + */ + policies?: EntityReference[]; + /** + * Team profile information. + */ + profile?: Profile; + /** + * Team type + */ + teamType?: TeamType; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Total count of users that are part of the team. + */ + userCount?: number; + /** + * Users that are part of the team. + */ + users?: EntityReference[]; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Children teams. An `Organization` can have `BusinessUnit`, `Division` or `Department` as + * children. A `BusinessUnit` can have `BusinessUnit`, `Division`, or `Department` as + * children. A `Division` can have `Division` or `Department` as children. A `Department` + * can have `Department` as children. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Team profile information. + * + * This schema defines the type for a profile of a user, team, or organization. + */ +export interface Profile { + images?: ImageList; + subscription?: MessagingProvider; +} + +/** + * Links to a list of images of varying resolutions/sizes. + */ +export interface ImageList { + image?: string; + image192?: string; + image24?: string; + image32?: string; + image48?: string; + image512?: string; + image72?: string; +} + +/** + * Holds the Subscription Config for different types + */ +export interface MessagingProvider { + gChat?: Webhook; + generic?: Webhook; + msTeams?: Webhook; + slack?: Webhook; +} + +/** + * This schema defines webhook for receiving events from OpenMetadata. + */ +export interface Webhook { + /** + * Endpoint to receive the webhook events over POST requests. + */ + endpoint?: string; + /** + * Custom headers to be sent with the webhook request. + */ + headers?: { [key: string]: any }; + /** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ + httpMethod?: HTTPMethod; + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Secret set by the webhook client used for computing HMAC SHA256 signature of webhook + * payload and sent in `X-OM-Signature` header in POST requests to publish the events. + */ + secretKey?: string; + /** + * Send the Event to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Event to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Event to Owners + */ + sendToOwners?: boolean; +} + +/** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ +export enum HTTPMethod { + Post = "POST", + Put = "PUT", +} + +/** + * Team type + * + * Organization is the highest level entity. An Organization has one of more Business Units, + * Division, Departments, Group, or Users. A Business Unit has one or more Divisions, + * Departments, Group, or Users. A Division has one or more Divisions, Departments, Group, + * or Users. A Department has one or more Departments, Group, or Users. A Group has only + * Users + */ +export enum TeamType { + BusinessUnit = "BusinessUnit", + Department = "Department", + Division = "Division", + Group = "Group", + Organization = "Organization", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/teamHierarchy.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/teamHierarchy.ts new file mode 100644 index 000000000000..15558778a383 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/teamHierarchy.ts @@ -0,0 +1,123 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Team entity with Hierarchy. Hierarchical teams are supported + * `Organization` -> `BusinessUnit` -> `Division` -> `Department` -> `Group`. + */ +export interface TeamHierarchy { + /** + * Children teams. An `Organization` can have `BusinessUnit`, `Division` or `Department` as + * children. A `BusinessUnit` can have `BusinessUnit`, `Division`, or `Department` as + * children. A `Division` can have `Division` or `Department` as children. A `Department` + * can have `Department` as children. + */ + children?: ChildElement[]; + /** + * Description of the team. + */ + description?: string; + /** + * Name used for display purposes. Example 'Data Science team'. + */ + displayName?: string; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + id: string; + /** + * Can any user join this team during sign up? Value of true indicates yes, and false no. + */ + isJoinable?: boolean; + /** + * A unique name of the team typically the team ID from an identity provider. Example - + * group Id from LDAP. + */ + name: string; + /** + * Team type + */ + teamType?: TeamType; +} + +/** + * Children teams. An `Organization` can have `BusinessUnit`, `Division` or `Department` as + * children. A `BusinessUnit` can have `BusinessUnit`, `Division`, or `Department` as + * children. A `Division` can have `Division` or `Department` as children. A `Department` + * can have `Department` as children. + * + * This schema defines the Team entity with Hierarchy. Hierarchical teams are supported + * `Organization` -> `BusinessUnit` -> `Division` -> `Department` -> `Group`. + */ +export interface ChildElement { + /** + * Children teams. An `Organization` can have `BusinessUnit`, `Division` or `Department` as + * children. A `BusinessUnit` can have `BusinessUnit`, `Division`, or `Department` as + * children. A `Division` can have `Division` or `Department` as children. A `Department` + * can have `Department` as children. + */ + children?: ChildElement[]; + /** + * Description of the team. + */ + description?: string; + /** + * Name used for display purposes. Example 'Data Science team'. + */ + displayName?: string; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + id: string; + /** + * Can any user join this team during sign up? Value of true indicates yes, and false no. + */ + isJoinable?: boolean; + /** + * A unique name of the team typically the team ID from an identity provider. Example - + * group Id from LDAP. + */ + name: string; + /** + * Team type + */ + teamType?: TeamType; +} + +/** + * Team type + * + * Organization is the highest level entity. An Organization has one of more Business Units, + * Division, Departments, Group, or Users. A Business Unit has one or more Divisions, + * Departments, Group, or Users. A Division has one or more Divisions, Departments, Group, + * or Users. A Department has one or more Departments, Group, or Users. A Group has only + * Users + */ +export enum TeamType { + BusinessUnit = "BusinessUnit", + Department = "Department", + Division = "Division", + Group = "Group", + Organization = "Organization", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/user.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/user.ts new file mode 100644 index 000000000000..571a415e5e27 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/teams/user.ts @@ -0,0 +1,572 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * A `User` represents a user of OpenMetadata. A user can be part of 0 or more teams. A + * special type of user called Bot is used for automation. A user can be an owner of zero or + * more data assets. A user can also follow zero or more data assets. + */ +export interface User { + authenticationMechanism?: AuthenticationMechanism; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Default Persona for the user from list of personas. + */ + defaultPersona?: EntityReference; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Used for user biography. + */ + description?: string; + /** + * Name used for display purposes. Example 'FirstName LastName'. + */ + displayName?: string; + /** + * Domain the User belongs to. This is inherited by the team the user belongs to. + */ + domains?: EntityReference[]; + /** + * Email address of the user. + */ + email: string; + /** + * List of entities followed by the user. + */ + follows?: EntityReference[]; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies a user entity instance. + */ + id: string; + /** + * Roles that a user is inheriting through membership in teams that have set team default + * roles. + */ + inheritedRoles?: EntityReference[]; + /** + * When true indicates user is an administrator for the system with superuser privileges. + */ + isAdmin?: boolean; + /** + * When true indicates a special type of user called Bot. + */ + isBot?: boolean; + /** + * If the User has verified the mail + */ + isEmailVerified?: boolean; + /** + * A unique name of the user, typically the user ID from an identity provider. Example - uid + * from LDAP. + */ + name: string; + /** + * List of entities owned by the user. + */ + owns?: EntityReference[]; + /** + * Personas that the user assigned to. + */ + personas?: EntityReference[]; + /** + * Profile of the user. + */ + profile?: Profile; + /** + * Roles that the user has been assigned. + */ + roles?: EntityReference[]; + /** + * Teams that the user belongs to. + */ + teams?: EntityReference[]; + /** + * Timezone of the user. + */ + timezone?: string; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * User/Bot Authentication Mechanism. + */ +export interface AuthenticationMechanism { + authType?: AuthType; + config?: AuthMechanism; +} + +export enum AuthType { + Basic = "BASIC", + Jwt = "JWT", + Sso = "SSO", +} + +/** + * User/Bot SSOAuthN. + * + * User/Bot JWTAuthMechanism. + * + * User basic Auth Mechanism. + */ +export interface AuthMechanism { + /** + * The authentication configuration used by the SSO + */ + authConfig?: SsoClientConfig; + /** + * Type of database service such as Amundsen, Atlas... + */ + ssoServiceType?: SsoServiceType; + /** + * JWT Auth Token. + */ + JWTToken?: string; + /** + * JWT Auth Token expiration time. + */ + JWTTokenExpiresAt?: number; + JWTTokenExpiry?: JWTTokenExpiry; + /** + * User Password + */ + password?: string; +} + +/** + * JWT Auth Token expiration in days + */ +export enum JWTTokenExpiry { + OneHour = "OneHour", + The1 = "1", + The30 = "30", + The60 = "60", + The7 = "7", + The90 = "90", + Unlimited = "Unlimited", +} + +/** + * The authentication configuration used by the SSO + * + * Google SSO Configuration + * + * Google SSO client security configs. + * + * Okta SSO Configuration + * + * Okta SSO client security configs. + * + * Auth0 SSO Configuration + * + * Auth0 SSO client security configs. + * + * Azure SSO Configuration + * + * Azure SSO Client security config to connect to OpenMetadata. + * + * Custom OIDC SSO Configuration + * + * Custom OIDC SSO client security configs. + * + * SAML SSO Configuration + * + * SAML SSO client security configs. + */ +export interface SsoClientConfig { + /** + * Google SSO audience URL + */ + audience?: string; + /** + * Google SSO client secret key path or contents. + * + * Auth0 Client Secret Key. + * + * Custom OIDC Client Secret Key. + */ + secretKey?: string; + /** + * Okta Client ID. + * + * Auth0 Client ID. + * + * Azure Client ID. + * + * Custom OIDC Client ID. + */ + clientId?: string; + /** + * Okta Service account Email. + */ + email?: string; + /** + * Okta org url. + */ + orgURL?: string; + /** + * Okta Private Key. + */ + privateKey?: string; + /** + * Okta client scopes. + * + * Azure Client ID. + */ + scopes?: string[]; + /** + * Auth0 Domain. + */ + domain?: string; + /** + * Azure SSO Authority + */ + authority?: string; + /** + * Azure SSO client secret key + */ + clientSecret?: string; + /** + * Custom OIDC token endpoint. + */ + tokenEndpoint?: string; + /** + * Get logs from the Library in debug mode + */ + debugMode?: boolean; + idp?: Idp; + security?: Security; + sp?: SP; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface Idp { + /** + * Authority URL to redirect the users on Sign In page + */ + authorityUrl?: string; + /** + * Identity Provider Entity ID usually same as the SSO login URL. + */ + entityId: string; + /** + * X509 Certificate + */ + idpX509Certificate?: string; + /** + * Authority URL to redirect the users on Sign In page + */ + nameId?: string; + /** + * SSO Login URL. + */ + ssoLoginUrl: string; +} + +/** + * This schema defines defines the security config for SAML. + */ +export interface Security { + /** + * KeyStore Alias + */ + keyStoreAlias?: string; + /** + * KeyStore File Path + */ + keyStoreFilePath?: string; + /** + * KeyStore Password + */ + keyStorePassword?: string; + /** + * Encrypt Name Id while sending requests from SP. + */ + sendEncryptedNameId?: boolean; + /** + * Sign the Authn Request while sending. + */ + sendSignedAuthRequest?: boolean; + /** + * Want the Metadata of this SP to be signed. + */ + signSpMetadata?: boolean; + /** + * Only accept valid signed and encrypted assertions if the relevant flags are set + */ + strictMode?: boolean; + /** + * Validity for the JWT Token created from SAML Response + */ + tokenValidity?: number; + /** + * In case of strict mode whether to validate XML format. + */ + validateXml?: boolean; + /** + * SP requires the assertion received to be encrypted. + */ + wantAssertionEncrypted?: boolean; + /** + * SP requires the assertions received to be signed. + */ + wantAssertionsSigned?: boolean; + /** + * SP requires the messages received to be signed. + */ + wantMessagesSigned?: boolean; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface SP { + /** + * Assertion Consumer URL. + */ + acs: string; + /** + * Service Provider Entity ID usually same as the SSO login URL. + */ + callback: string; + /** + * Service Provider Entity ID. + */ + entityId: string; + /** + * Sp Private Key for Signing and Encryption Only + */ + spPrivateKey?: string; + /** + * X509 Certificate + */ + spX509Certificate?: string; +} + +/** + * Type of database service such as Amundsen, Atlas... + */ +export enum SsoServiceType { + Auth0 = "auth0", + Azure = "azure", + CustomOidc = "custom-oidc", + Google = "google", + Okta = "okta", +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Default Persona for the user from list of personas. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the User belongs to. This is inherited by the team the user belongs to. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Profile of the user. + * + * This schema defines the type for a profile of a user, team, or organization. + */ +export interface Profile { + images?: ImageList; + subscription?: MessagingProvider; +} + +/** + * Links to a list of images of varying resolutions/sizes. + */ +export interface ImageList { + image?: string; + image192?: string; + image24?: string; + image32?: string; + image48?: string; + image512?: string; + image72?: string; +} + +/** + * Holds the Subscription Config for different types + */ +export interface MessagingProvider { + gChat?: Webhook; + generic?: Webhook; + msTeams?: Webhook; + slack?: Webhook; +} + +/** + * This schema defines webhook for receiving events from OpenMetadata. + */ +export interface Webhook { + /** + * Endpoint to receive the webhook events over POST requests. + */ + endpoint?: string; + /** + * Custom headers to be sent with the webhook request. + */ + headers?: { [key: string]: any }; + /** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ + httpMethod?: HTTPMethod; + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Secret set by the webhook client used for computing HMAC SHA256 signature of webhook + * payload and sent in `X-OM-Signature` header in POST requests to publish the events. + */ + secretKey?: string; + /** + * Send the Event to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Event to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Event to Owners + */ + sendToOwners?: boolean; +} + +/** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ +export enum HTTPMethod { + Post = "POST", + Put = "PUT", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/type.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/type.ts new file mode 100644 index 000000000000..8c737849f524 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/type.ts @@ -0,0 +1,240 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines a type as an entity. Types includes property types and entity types. + * Custom types can also be defined by the users to extend the metadata system. + */ +export interface Type { + category?: Category; + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Custom properties added to extend the entity. Only available for entity type + */ + customProperties?: CustomProperty[]; + /** + * List of data products this entity is part of. + */ + dataProducts?: EntityReference[]; + /** + * Optional description of entity. + */ + description: string; + /** + * Display Name that identifies this type. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to this table resource. + */ + href?: string; + /** + * Unique identifier of the type instance. + */ + id?: string; + /** + * Unique name that identifies the type. + */ + name: string; + /** + * Namespace or group to which this type belongs to. For example, some of the property types + * commonly used can come from `basic` namespace. Some of the entities such as `table`, + * `database`, etc. come from `data` namespace. + */ + nameSpace?: string; + /** + * JSON schema encoded as string that defines the type. This will be used to validate the + * type values. + */ + schema?: string; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Metadata category to which a type belongs to. + */ +export enum Category { + Entity = "entity", + Field = "field", +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * This schema defines the custom property to an entity to extend it. + */ +export interface CustomProperty { + customPropertyConfig?: CustomPropertyConfig; + description: string; + /** + * Display Name for the custom property.Must be unique for an entity. + */ + displayName?: string; + /** + * Name of the entity property. Note a property name must be unique for an entity. Property + * name must follow camelCase naming adopted by openMetadata - must start with lower case + * with no space, underscore, or dots. + */ + name: string; + propertyType: EntityReference; +} + +/** + * Config to define constraints around CustomProperty + */ +export interface CustomPropertyConfig { + config?: string[] | Config | string; +} + +/** + * Applies to Enum type, this config is used to define list of enum values + * + * Custom property configuration for table-type property where all column data types are + * strings. + */ +export interface Config { + multiSelect?: boolean; + values?: string[]; + /** + * List of column names defined at the entity type level. + */ + columns?: string[]; + maxColumns?: number; + minColumns?: number; +} + +/** + * Reference to a property type. Only property types are allowed and entity types are not + * allowed as custom properties to extend an existing entity + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * List of data products this entity is part of. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/entitiesCount.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/entitiesCount.ts new file mode 100644 index 000000000000..59c1c729d487 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/entitiesCount.ts @@ -0,0 +1,67 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Entities Count. This contains aggregated entities count. + */ +export interface EntitiesCount { + /** + * Dashboard Count + */ + dashboardCount?: number; + /** + * Glossary Count + */ + glossaryCount?: number; + /** + * Glossary Term Count + */ + glossaryTermCount?: number; + /** + * MlModel Count + */ + mlmodelCount?: number; + /** + * Pipeline Count + */ + pipelineCount?: number; + /** + * Services Count + */ + servicesCount?: number; + /** + * Storage Container Count + */ + storageContainerCount?: number; + /** + * Table Count + */ + tableCount?: number; + /** + * Team Count + */ + teamCount?: number; + /** + * Test Suite Count + */ + testSuiteCount?: number; + /** + * Topic Count + */ + topicCount?: number; + /** + * User Count + */ + userCount?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/servicesCount.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/servicesCount.ts new file mode 100644 index 000000000000..5fed1a0f1507 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/servicesCount.ts @@ -0,0 +1,43 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Services Count. This contains aggregated services count. + */ +export interface ServicesCount { + /** + * Dashboard Service Count + */ + dashboardServiceCount?: number; + /** + * Database Service Count + */ + databaseServiceCount?: number; + /** + * Messaging Service Count + */ + messagingServiceCount?: number; + /** + * MlModel Service Count + */ + mlModelServiceCount?: number; + /** + * Pipeline Service Count + */ + pipelineServiceCount?: number; + /** + * Storage Service Count + */ + storageServiceCount?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/supersetApiConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/supersetApiConnection.ts new file mode 100644 index 000000000000..24bdeb7ec3e1 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/entity/utils/supersetApiConnection.ts @@ -0,0 +1,74 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Superset API Connection Config + */ +export interface SupersetAPIConnection { + /** + * Password for Superset. + */ + password: string; + /** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ + provider: Provider; + sslConfig?: Config; + /** + * Username for Superset. + */ + username: string; + verifySSL?: VerifySSL; +} + +/** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ +export enum Provider { + DB = "db", + LDAP = "ldap", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/alertMetrics.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/alertMetrics.ts new file mode 100644 index 000000000000..d1333583239a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/alertMetrics.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Alert Metrics Schema + */ +export interface AlertMetrics { + /** + * Number of events that failed to be processed. + */ + failedEvents?: number; + /** + * Number of events that were successfully processed. + */ + successEvents?: number; + /** + * Update time of the job status. + */ + timestamp?: number; + /** + * Total number of events. + */ + totalEvents?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/api/createEventSubscription.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/createEventSubscription.ts new file mode 100644 index 000000000000..a6a6f1e02c96 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/createEventSubscription.ts @@ -0,0 +1,454 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This defines schema for sending alerts for OpenMetadata + */ +export interface CreateEventSubscription { + /** + * Type of Alert + */ + alertType: AlertType; + /** + * Maximum number of events sent in a batch (Default 10). + */ + batchSize?: number; + /** + * A short description of the Alert, comprehensible to regular users. + */ + description?: string; + /** + * Subscription Config. + */ + destinations?: Destination[]; + /** + * Display name for this Alert. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * Is the alert enabled. + */ + enabled?: boolean; + /** + * Input for the Filters. + */ + input?: AlertFilteringInput; + /** + * Name that uniquely identifies this Alert. + */ + name: string; + /** + * Owners of this Alert. + */ + owners?: EntityReference[]; + /** + * Poll Interval in seconds. + */ + pollInterval?: number; + provider?: ProviderType; + /** + * Defines a list of resources that triggers the Event Subscription, Eg All, User, Teams etc. + */ + resources?: string[]; + /** + * Number of times to retry callback on failure. (Default 3). + */ + retries?: number; + trigger?: Trigger; +} + +/** + * Type of Alert + * + * Type of Alerts supported. + */ +export enum AlertType { + ActivityFeed = "ActivityFeed", + GovernanceWorkflowChangeEvent = "GovernanceWorkflowChangeEvent", + Notification = "Notification", + Observability = "Observability", +} + +/** + * Subscription which has a type and the config. + */ +export interface Destination { + category: SubscriptionCategory; + config?: Webhook; + /** + * Is the subscription enabled. + */ + enabled?: boolean; + /** + * Unique identifier that identifies this Event Subscription. + */ + id?: string; + /** + * Read timeout in seconds. (Default 12s). + */ + readTimeout?: number; + statusDetails?: TionStatus; + /** + * Connection timeout in seconds. (Default 10s). + */ + timeout?: number; + type: SubscriptionType; +} + +/** + * Subscription Endpoint Type. + */ +export enum SubscriptionCategory { + Admins = "Admins", + Assignees = "Assignees", + External = "External", + Followers = "Followers", + Mentions = "Mentions", + Owners = "Owners", + Teams = "Teams", + Users = "Users", +} + +/** + * This schema defines webhook for receiving events from OpenMetadata. + * + * This schema defines email config for receiving events from OpenMetadata. + */ +export interface Webhook { + /** + * Endpoint to receive the webhook events over POST requests. + */ + endpoint?: string; + /** + * Custom headers to be sent with the webhook request. + */ + headers?: { [key: string]: any }; + /** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ + httpMethod?: HTTPMethod; + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Secret set by the webhook client used for computing HMAC SHA256 signature of webhook + * payload and sent in `X-OM-Signature` header in POST requests to publish the events. + */ + secretKey?: string; + /** + * Send the Event to Admins + * + * Send the Mails to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Event to Followers + * + * Send the Mails to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Event to Owners + * + * Send the Mails to Owners + */ + sendToOwners?: boolean; +} + +/** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ +export enum HTTPMethod { + Post = "POST", + Put = "PUT", +} + +/** + * Current status of the subscription, including details on the last successful and failed + * attempts, and retry information. + * + * Detailed status of the destination during a test operation, including HTTP response + * information. + */ +export interface TionStatus { + /** + * Timestamp of the last failed callback in UNIX UTC epoch time in milliseconds. + */ + lastFailedAt?: number; + /** + * Detailed reason for the last failure received during callback. + */ + lastFailedReason?: string; + /** + * HTTP status code received during the last failed callback attempt. + */ + lastFailedStatusCode?: number; + /** + * Timestamp of the last successful callback in UNIX UTC epoch time in milliseconds. + */ + lastSuccessfulAt?: number; + /** + * Timestamp for the next retry attempt in UNIX epoch time in milliseconds. Only valid if + * `status` is `awaitingRetry`. + */ + nextAttempt?: number; + /** + * Status is `disabled` when the event subscription was created with `enabled` set to false + * and it never started publishing events. Status is `active` when the event subscription is + * functioning normally and a 200 OK response was received for the callback notification. + * Status is `failed` when a bad callback URL, connection failures, or `1xx` or `3xx` + * response was received for the callback notification. Status is `awaitingRetry` when the + * previous attempt at callback timed out or received a `4xx` or `5xx` response. Status is + * `retryLimitReached` after all retries fail. + * + * Overall test status, indicating if the test operation succeeded or failed. + */ + status?: Status; + /** + * Current timestamp of this status in UNIX epoch time in milliseconds. + * + * Timestamp when the response was received, in UNIX epoch time milliseconds. + */ + timestamp?: number; + /** + * Body of the HTTP response, if any, returned by the server. + */ + entity?: string; + /** + * HTTP headers returned in the response as a map of header names to values. + */ + headers?: any; + /** + * URL location if the response indicates a redirect or newly created resource. + */ + location?: string; + /** + * Media type of the response entity, if specified (e.g., application/json). + */ + mediaType?: string; + /** + * Detailed reason for failure if the test did not succeed. + */ + reason?: string; + /** + * HTTP status code of the response (e.g., 200 for OK, 404 for Not Found). + */ + statusCode?: number; + /** + * HTTP status reason phrase associated with the status code (e.g., 'Not Found'). + */ + statusInfo?: string; +} + +/** + * Status is `disabled` when the event subscription was created with `enabled` set to false + * and it never started publishing events. Status is `active` when the event subscription is + * functioning normally and a 200 OK response was received for the callback notification. + * Status is `failed` when a bad callback URL, connection failures, or `1xx` or `3xx` + * response was received for the callback notification. Status is `awaitingRetry` when the + * previous attempt at callback timed out or received a `4xx` or `5xx` response. Status is + * `retryLimitReached` after all retries fail. + * + * Overall test status, indicating if the test operation succeeded or failed. + */ +export enum Status { + Active = "active", + AwaitingRetry = "awaitingRetry", + Disabled = "disabled", + Failed = "failed", + RetryLimitReached = "retryLimitReached", + StatusFailed = "Failed", + Success = "Success", +} + +/** + * Subscription Endpoint Type. + */ +export enum SubscriptionType { + ActivityFeed = "ActivityFeed", + Email = "Email", + GChat = "GChat", + GovernanceWorkflowChangeEvent = "GovernanceWorkflowChangeEvent", + MSTeams = "MsTeams", + Slack = "Slack", + Webhook = "Webhook", +} + +/** + * Input for the Filters. + * + * Observability of the event subscription. + */ +export interface AlertFilteringInput { + /** + * List of filters for the event subscription. + */ + actions?: ArgumentsInput[]; + /** + * List of filters for the event subscription. + */ + filters?: ArgumentsInput[]; +} + +/** + * Observability Filters for Event Subscription. + */ +export interface ArgumentsInput { + /** + * Arguments List + */ + arguments?: Argument[]; + effect?: Effect; + /** + * Name of the filter + */ + name?: string; + /** + * Prefix Condition for the filter. + */ + prefixCondition?: PrefixCondition; +} + +/** + * Argument for the filter. + */ +export interface Argument { + /** + * Value of the Argument + */ + input?: string[]; + /** + * Name of the Argument + */ + name?: string; +} + +export enum Effect { + Exclude = "exclude", + Include = "include", +} + +/** + * Prefix Condition for the filter. + * + * Prefix Condition to be applied to the Condition. + */ +export enum PrefixCondition { + And = "AND", + Or = "OR", +} + +/** + * Owners of this Alert. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * Trigger Configuration for Alerts. + */ +export interface Trigger { + /** + * Cron Expression in case of Custom scheduled Trigger + */ + cronExpression?: string; + /** + * Schedule Info + */ + scheduleInfo?: ScheduleInfo; + triggerType: TriggerType; +} + +/** + * Schedule Info + */ +export enum ScheduleInfo { + Custom = "Custom", + Daily = "Daily", + Monthly = "Monthly", + Weekly = "Weekly", +} + +/** + * Trigger Configuration for Alerts. + */ +export enum TriggerType { + RealTime = "RealTime", + Scheduled = "Scheduled", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/api/eventSubscriptionDiagnosticInfo.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/eventSubscriptionDiagnosticInfo.ts new file mode 100644 index 000000000000..9489bef8268c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/eventSubscriptionDiagnosticInfo.ts @@ -0,0 +1,192 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema defining the response for event subscription diagnostics, including details about + * processed and unprocessed events. + */ +export interface EventSubscriptionDiagnosticInfo { + /** + * The current offset of the event subscription. + */ + currentOffset?: any; + /** + * Count of failed events for specific alert. + */ + failedEventsCount?: any; + /** + * Indicates whether all events have been processed. + */ + hasProcessedAllEvents?: boolean; + /** + * The latest offset of the event in the system. + */ + latestOffset?: any; + /** + * The number of relevant unprocessed events based on the alert's filtering rules for + * specific alert. + */ + relevantUnprocessedEventsCount?: any; + /** + * A list of relevant unprocessed events based on the alert's filtering criteria. + */ + relevantUnprocessedEventsList?: ChangeEvent[]; + /** + * The initial offset of the event subscription when it started processing. + */ + startingOffset?: any; + /** + * Count of successful events for specific alert. + */ + successfulEventsCount?: any; + /** + * The total number of unprocessed events. + */ + totalUnprocessedEventsCount?: any; + /** + * A list of all unprocessed events. + */ + totalUnprocessedEventsList?: ChangeEvent[]; +} + +/** + * This schema defines the change event type to capture the changes to entities. Entities + * change due to user activity, such as updating description of a dataset, changing + * ownership, or adding new tags. Entity also changes due to activities at the metadata + * sources, such as a new dataset was created, a datasets was deleted, or schema of a + * dataset is modified. When state of entity changes, an event is produced. These events can + * be used to build apps and bots that respond to the change from activities. + */ +export interface ChangeEvent { + /** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + */ + changeDescription?: ChangeDescription; + /** + * Current version of the entity after this change. Note that not all changes result in + * entity version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + currentVersion?: number; + /** + * Domain of the entity that was modified by the operation. + */ + domain?: string; + /** + * For `eventType` `entityCreated`, this field captures JSON coded string of the entity + * using the schema corresponding to `entityType`. + */ + entity?: any; + /** + * Fully Qualified Name of entity that was modified by the operation. + */ + entityFullyQualifiedName?: string; + /** + * Identifier of entity that was modified by the operation. + */ + entityId: string; + /** + * Entity type that changed. Use the schema of this entity to process the entity attribute. + */ + entityType: string; + eventType: EventType; + /** + * Unique identifier for the event. + */ + id: string; + /** + * Version of the entity before this change. Note that not all changes result in entity + * version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + previousVersion?: number; + /** + * Timestamp when the change was made in Unix epoch time milliseconds. + */ + timestamp: number; + /** + * Name of the user whose activity resulted in the change. + */ + userName?: string; +} + +/** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Type of event. + */ +export enum EventType { + EntityCreated = "entityCreated", + EntityDeleted = "entityDeleted", + EntityFieldsChanged = "entityFieldsChanged", + EntityNoChange = "entityNoChange", + EntityRestored = "entityRestored", + EntitySoftDeleted = "entitySoftDeleted", + EntityUpdated = "entityUpdated", + LogicalTestCaseAdded = "logicalTestCaseAdded", + PostCreated = "postCreated", + PostUpdated = "postUpdated", + SuggestionAccepted = "suggestionAccepted", + SuggestionCreated = "suggestionCreated", + SuggestionDeleted = "suggestionDeleted", + SuggestionRejected = "suggestionRejected", + SuggestionUpdated = "suggestionUpdated", + TaskClosed = "taskClosed", + TaskResolved = "taskResolved", + ThreadCreated = "threadCreated", + ThreadUpdated = "threadUpdated", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/api/eventsRecord.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/eventsRecord.ts new file mode 100644 index 000000000000..2f236052a522 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/eventsRecord.ts @@ -0,0 +1,37 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema defining the response for event subscription events record, including total, + * pending, successful, and failed event counts for a specific alert. + */ +export interface EventsRecord { + /** + * Count of failed events for specific alert. + */ + failedEventsCount?: any; + /** + * Count of pending events for specific alert. + */ + pendingEventsCount?: any; + /** + * Count of successful events for specific alert. + */ + successfulEventsCount?: any; + /** + * Count of total events (pendingEventsCount + successfulEventsCount + failedEventsCount) + * for specific alert. + */ + totalEventsCount?: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/api/testEventSubscriptionDestination.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/testEventSubscriptionDestination.ts new file mode 100644 index 000000000000..9f6386b25a45 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/testEventSubscriptionDestination.ts @@ -0,0 +1,229 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema defining eventSubscription test API. + */ +export interface TestEventSubscriptionDestination { + /** + * List of external destinations. + */ + destinations?: Destination[]; +} + +/** + * Subscription which has a type and the config. + */ +export interface Destination { + category: SubscriptionCategory; + config?: Webhook; + /** + * Is the subscription enabled. + */ + enabled?: boolean; + /** + * Unique identifier that identifies this Event Subscription. + */ + id?: string; + /** + * Read timeout in seconds. (Default 12s). + */ + readTimeout?: number; + statusDetails?: TionStatus; + /** + * Connection timeout in seconds. (Default 10s). + */ + timeout?: number; + type: SubscriptionType; +} + +/** + * Subscription Endpoint Type. + */ +export enum SubscriptionCategory { + Admins = "Admins", + Assignees = "Assignees", + External = "External", + Followers = "Followers", + Mentions = "Mentions", + Owners = "Owners", + Teams = "Teams", + Users = "Users", +} + +/** + * This schema defines webhook for receiving events from OpenMetadata. + * + * This schema defines email config for receiving events from OpenMetadata. + */ +export interface Webhook { + /** + * Endpoint to receive the webhook events over POST requests. + */ + endpoint?: string; + /** + * Custom headers to be sent with the webhook request. + */ + headers?: { [key: string]: any }; + /** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ + httpMethod?: HTTPMethod; + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Secret set by the webhook client used for computing HMAC SHA256 signature of webhook + * payload and sent in `X-OM-Signature` header in POST requests to publish the events. + */ + secretKey?: string; + /** + * Send the Event to Admins + * + * Send the Mails to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Event to Followers + * + * Send the Mails to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Event to Owners + * + * Send the Mails to Owners + */ + sendToOwners?: boolean; +} + +/** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ +export enum HTTPMethod { + Post = "POST", + Put = "PUT", +} + +/** + * Current status of the subscription, including details on the last successful and failed + * attempts, and retry information. + * + * Detailed status of the destination during a test operation, including HTTP response + * information. + */ +export interface TionStatus { + /** + * Timestamp of the last failed callback in UNIX UTC epoch time in milliseconds. + */ + lastFailedAt?: number; + /** + * Detailed reason for the last failure received during callback. + */ + lastFailedReason?: string; + /** + * HTTP status code received during the last failed callback attempt. + */ + lastFailedStatusCode?: number; + /** + * Timestamp of the last successful callback in UNIX UTC epoch time in milliseconds. + */ + lastSuccessfulAt?: number; + /** + * Timestamp for the next retry attempt in UNIX epoch time in milliseconds. Only valid if + * `status` is `awaitingRetry`. + */ + nextAttempt?: number; + /** + * Status is `disabled` when the event subscription was created with `enabled` set to false + * and it never started publishing events. Status is `active` when the event subscription is + * functioning normally and a 200 OK response was received for the callback notification. + * Status is `failed` when a bad callback URL, connection failures, or `1xx` or `3xx` + * response was received for the callback notification. Status is `awaitingRetry` when the + * previous attempt at callback timed out or received a `4xx` or `5xx` response. Status is + * `retryLimitReached` after all retries fail. + * + * Overall test status, indicating if the test operation succeeded or failed. + */ + status?: Status; + /** + * Current timestamp of this status in UNIX epoch time in milliseconds. + * + * Timestamp when the response was received, in UNIX epoch time milliseconds. + */ + timestamp?: number; + /** + * Body of the HTTP response, if any, returned by the server. + */ + entity?: string; + /** + * HTTP headers returned in the response as a map of header names to values. + */ + headers?: any; + /** + * URL location if the response indicates a redirect or newly created resource. + */ + location?: string; + /** + * Media type of the response entity, if specified (e.g., application/json). + */ + mediaType?: string; + /** + * Detailed reason for failure if the test did not succeed. + */ + reason?: string; + /** + * HTTP status code of the response (e.g., 200 for OK, 404 for Not Found). + */ + statusCode?: number; + /** + * HTTP status reason phrase associated with the status code (e.g., 'Not Found'). + */ + statusInfo?: string; +} + +/** + * Status is `disabled` when the event subscription was created with `enabled` set to false + * and it never started publishing events. Status is `active` when the event subscription is + * functioning normally and a 200 OK response was received for the callback notification. + * Status is `failed` when a bad callback URL, connection failures, or `1xx` or `3xx` + * response was received for the callback notification. Status is `awaitingRetry` when the + * previous attempt at callback timed out or received a `4xx` or `5xx` response. Status is + * `retryLimitReached` after all retries fail. + * + * Overall test status, indicating if the test operation succeeded or failed. + */ +export enum Status { + Active = "active", + AwaitingRetry = "awaitingRetry", + Disabled = "disabled", + Failed = "failed", + RetryLimitReached = "retryLimitReached", + StatusFailed = "Failed", + Success = "Success", +} + +/** + * Subscription Endpoint Type. + */ +export enum SubscriptionType { + ActivityFeed = "ActivityFeed", + Email = "Email", + GChat = "GChat", + GovernanceWorkflowChangeEvent = "GovernanceWorkflowChangeEvent", + MSTeams = "MsTeams", + Slack = "Slack", + Webhook = "Webhook", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/api/typedEvent.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/typedEvent.ts new file mode 100644 index 000000000000..5209ba74c3ad --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/api/typedEvent.ts @@ -0,0 +1,258 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema defining a Typed Event with its status, data, and timestamp. + */ +export interface TypedEvent { + /** + * The event data, which can be of different types depending on the status. + */ + data: ChangeEvent[]; + /** + * The status of the event, such as 'failed', 'successful', or 'unprocessed'. + */ + status: Status; + /** + * The timestamp when the event occurred, represented as a long. + */ + timestamp: number; +} + +/** + * This schema defines the change event type to capture the changes to entities. Entities + * change due to user activity, such as updating description of a dataset, changing + * ownership, or adding new tags. Entity also changes due to activities at the metadata + * sources, such as a new dataset was created, a datasets was deleted, or schema of a + * dataset is modified. When state of entity changes, an event is produced. These events can + * be used to build apps and bots that respond to the change from activities. + * + * Change Event that failed + * + * Failed Events Schema + */ +export interface ChangeEvent { + /** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + */ + changeDescription?: ChangeDescription; + /** + * Current version of the entity after this change. Note that not all changes result in + * entity version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + currentVersion?: number; + /** + * Domain of the entity that was modified by the operation. + */ + domain?: string; + /** + * For `eventType` `entityCreated`, this field captures JSON coded string of the entity + * using the schema corresponding to `entityType`. + */ + entity?: any; + /** + * Fully Qualified Name of entity that was modified by the operation. + */ + entityFullyQualifiedName?: string; + /** + * Identifier of entity that was modified by the operation. + */ + entityId?: string; + /** + * Entity type that changed. Use the schema of this entity to process the entity attribute. + */ + entityType?: string; + eventType?: EventType; + /** + * Unique identifier for the event. + */ + id?: string; + /** + * Version of the entity before this change. Note that not all changes result in entity + * version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + previousVersion?: number; + /** + * Timestamp when the change was made in Unix epoch time milliseconds. + * + * Time of Failure + */ + timestamp?: number; + /** + * Name of the user whose activity resulted in the change. + */ + userName?: string; + /** + * Change Event that failed + */ + changeEvent?: ChangeEventClass; + /** + * Unique identifier that identifies this Event Subscription. + */ + failingSubscriptionId?: string; + /** + * Reason for failure + */ + reason?: string; + /** + * Source of the failed event + */ + source?: string; +} + +/** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * This schema defines the change event type to capture the changes to entities. Entities + * change due to user activity, such as updating description of a dataset, changing + * ownership, or adding new tags. Entity also changes due to activities at the metadata + * sources, such as a new dataset was created, a datasets was deleted, or schema of a + * dataset is modified. When state of entity changes, an event is produced. These events can + * be used to build apps and bots that respond to the change from activities. + * + * Change Event that failed + */ +export interface ChangeEventClass { + /** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + */ + changeDescription?: ChangeDescription; + /** + * Current version of the entity after this change. Note that not all changes result in + * entity version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + currentVersion?: number; + /** + * Domain of the entity that was modified by the operation. + */ + domain?: string; + /** + * For `eventType` `entityCreated`, this field captures JSON coded string of the entity + * using the schema corresponding to `entityType`. + */ + entity?: any; + /** + * Fully Qualified Name of entity that was modified by the operation. + */ + entityFullyQualifiedName?: string; + /** + * Identifier of entity that was modified by the operation. + */ + entityId: string; + /** + * Entity type that changed. Use the schema of this entity to process the entity attribute. + */ + entityType: string; + eventType: EventType; + /** + * Unique identifier for the event. + */ + id: string; + /** + * Version of the entity before this change. Note that not all changes result in entity + * version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + previousVersion?: number; + /** + * Timestamp when the change was made in Unix epoch time milliseconds. + */ + timestamp: number; + /** + * Name of the user whose activity resulted in the change. + */ + userName?: string; +} + +/** + * Type of event. + */ +export enum EventType { + EntityCreated = "entityCreated", + EntityDeleted = "entityDeleted", + EntityFieldsChanged = "entityFieldsChanged", + EntityNoChange = "entityNoChange", + EntityRestored = "entityRestored", + EntitySoftDeleted = "entitySoftDeleted", + EntityUpdated = "entityUpdated", + LogicalTestCaseAdded = "logicalTestCaseAdded", + PostCreated = "postCreated", + PostUpdated = "postUpdated", + SuggestionAccepted = "suggestionAccepted", + SuggestionCreated = "suggestionCreated", + SuggestionDeleted = "suggestionDeleted", + SuggestionRejected = "suggestionRejected", + SuggestionUpdated = "suggestionUpdated", + TaskClosed = "taskClosed", + TaskResolved = "taskResolved", + ThreadCreated = "threadCreated", + ThreadUpdated = "threadUpdated", +} + +/** + * The status of the event, such as 'failed', 'successful', or 'unprocessed'. + */ +export enum Status { + Failed = "failed", + Successful = "successful", + Unprocessed = "unprocessed", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/emailAlertConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/emailAlertConfig.ts new file mode 100644 index 000000000000..6072313da7fe --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/emailAlertConfig.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines email config for receiving events from OpenMetadata. + */ +export interface EmailAlertConfig { + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Send the Mails to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Mails to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Mails to Owners + */ + sendToOwners?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/eventFilterRule.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/eventFilterRule.ts new file mode 100644 index 000000000000..a4e653d1b848 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/eventFilterRule.ts @@ -0,0 +1,69 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Describes an Event Filter Rule + */ +export interface EventFilterRule { + /** + * Arguments to the Condition. + */ + arguments?: string[]; + /** + * Expression in SpEL used for matching of a `Rule` based on entity, resource, and + * environmental attributes. + */ + condition: string; + /** + * Description of the Event Filter Rule. + */ + description?: string; + /** + * Display Name of the Filter. + */ + displayName?: string; + effect: Effect; + /** + * FullyQualifiedName in the form `eventSubscription.eventFilterRuleName`. + */ + fullyQualifiedName?: string; + inputType?: InputType; + /** + * Name of this Event Filter. + */ + name?: string; + /** + * Prefix Condition to be applied to the Condition. + */ + prefixCondition?: PrefixCondition; +} + +export enum Effect { + Exclude = "exclude", + Include = "include", +} + +export enum InputType { + None = "none", + Runtime = "runtime", + Static = "static", +} + +/** + * Prefix Condition to be applied to the Condition. + */ +export enum PrefixCondition { + And = "AND", + Or = "OR", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/eventSubscription.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/eventSubscription.ts new file mode 100644 index 000000000000..461f6de3176e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/eventSubscription.ts @@ -0,0 +1,599 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the EventSubscription entity. An Event Subscription has trigger, + * filters and Subscription + */ +export interface EventSubscription { + /** + * Type of Alert + */ + alertType: AlertType; + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Change that led to this version of the Event Subscription. + */ + changeDescription?: ChangeDescription; + /** + * A short description of the Event Subscription, comprehensible to regular users. + */ + description?: string; + /** + * Destination Config. + */ + destinations: Destination[]; + /** + * Display name for this Event Subscription. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + /** + * Is the event Subscription enabled. + */ + enabled?: boolean; + /** + * Set of rules that the Event Subscription Contains to allow conditional control for + * alerting. + */ + filteringRules?: FilteringRules; + /** + * FullyQualifiedName that uniquely identifies a Event Subscription. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier that identifies this Event Subscription. + */ + id: string; + /** + * Input for the Filters. + */ + input?: AlertFilteringInput; + /** + * Name that uniquely identifies this Event Subscription. + */ + name: string; + /** + * Owners of this Event Subscription. + */ + owners?: EntityReference[]; + /** + * Poll Interval in seconds. + */ + pollInterval?: number; + provider?: ProviderType; + /** + * Number of times to retry callback on failure. (Default 3). + */ + retries?: number; + /** + * Trigger information for Alert. + */ + trigger?: Trigger; + /** + * Last update time corresponding to the new version of the Event Subscription in Unix epoch + * time milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the Event Subscription. + */ + version?: number; +} + +/** + * Type of Alert + * + * Type of Alerts supported. + */ +export enum AlertType { + ActivityFeed = "ActivityFeed", + GovernanceWorkflowChangeEvent = "GovernanceWorkflowChangeEvent", + Notification = "Notification", + Observability = "Observability", +} + +/** + * Change that led to this version of the Event Subscription. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Subscription which has a type and the config. + */ +export interface Destination { + category: SubscriptionCategory; + config?: Webhook; + /** + * Is the subscription enabled. + */ + enabled?: boolean; + /** + * Unique identifier that identifies this Event Subscription. + */ + id?: string; + /** + * Read timeout in seconds. (Default 12s). + */ + readTimeout?: number; + statusDetails?: TionStatus; + /** + * Connection timeout in seconds. (Default 10s). + */ + timeout?: number; + type: SubscriptionType; +} + +/** + * Subscription Endpoint Type. + */ +export enum SubscriptionCategory { + Admins = "Admins", + Assignees = "Assignees", + External = "External", + Followers = "Followers", + Mentions = "Mentions", + Owners = "Owners", + Teams = "Teams", + Users = "Users", +} + +/** + * This schema defines webhook for receiving events from OpenMetadata. + * + * This schema defines email config for receiving events from OpenMetadata. + */ +export interface Webhook { + /** + * Endpoint to receive the webhook events over POST requests. + */ + endpoint?: string; + /** + * Custom headers to be sent with the webhook request. + */ + headers?: { [key: string]: any }; + /** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ + httpMethod?: HTTPMethod; + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Secret set by the webhook client used for computing HMAC SHA256 signature of webhook + * payload and sent in `X-OM-Signature` header in POST requests to publish the events. + */ + secretKey?: string; + /** + * Send the Event to Admins + * + * Send the Mails to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Event to Followers + * + * Send the Mails to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Event to Owners + * + * Send the Mails to Owners + */ + sendToOwners?: boolean; +} + +/** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ +export enum HTTPMethod { + Post = "POST", + Put = "PUT", +} + +/** + * Current status of the subscription, including details on the last successful and failed + * attempts, and retry information. + * + * Detailed status of the destination during a test operation, including HTTP response + * information. + */ +export interface TionStatus { + /** + * Timestamp of the last failed callback in UNIX UTC epoch time in milliseconds. + */ + lastFailedAt?: number; + /** + * Detailed reason for the last failure received during callback. + */ + lastFailedReason?: string; + /** + * HTTP status code received during the last failed callback attempt. + */ + lastFailedStatusCode?: number; + /** + * Timestamp of the last successful callback in UNIX UTC epoch time in milliseconds. + */ + lastSuccessfulAt?: number; + /** + * Timestamp for the next retry attempt in UNIX epoch time in milliseconds. Only valid if + * `status` is `awaitingRetry`. + */ + nextAttempt?: number; + /** + * Status is `disabled` when the event subscription was created with `enabled` set to false + * and it never started publishing events. Status is `active` when the event subscription is + * functioning normally and a 200 OK response was received for the callback notification. + * Status is `failed` when a bad callback URL, connection failures, or `1xx` or `3xx` + * response was received for the callback notification. Status is `awaitingRetry` when the + * previous attempt at callback timed out or received a `4xx` or `5xx` response. Status is + * `retryLimitReached` after all retries fail. + * + * Overall test status, indicating if the test operation succeeded or failed. + */ + status?: Status; + /** + * Current timestamp of this status in UNIX epoch time in milliseconds. + * + * Timestamp when the response was received, in UNIX epoch time milliseconds. + */ + timestamp?: number; + /** + * Body of the HTTP response, if any, returned by the server. + */ + entity?: string; + /** + * HTTP headers returned in the response as a map of header names to values. + */ + headers?: any; + /** + * URL location if the response indicates a redirect or newly created resource. + */ + location?: string; + /** + * Media type of the response entity, if specified (e.g., application/json). + */ + mediaType?: string; + /** + * Detailed reason for failure if the test did not succeed. + */ + reason?: string; + /** + * HTTP status code of the response (e.g., 200 for OK, 404 for Not Found). + */ + statusCode?: number; + /** + * HTTP status reason phrase associated with the status code (e.g., 'Not Found'). + */ + statusInfo?: string; +} + +/** + * Status is `disabled` when the event subscription was created with `enabled` set to false + * and it never started publishing events. Status is `active` when the event subscription is + * functioning normally and a 200 OK response was received for the callback notification. + * Status is `failed` when a bad callback URL, connection failures, or `1xx` or `3xx` + * response was received for the callback notification. Status is `awaitingRetry` when the + * previous attempt at callback timed out or received a `4xx` or `5xx` response. Status is + * `retryLimitReached` after all retries fail. + * + * Overall test status, indicating if the test operation succeeded or failed. + */ +export enum Status { + Active = "active", + AwaitingRetry = "awaitingRetry", + Disabled = "disabled", + Failed = "failed", + RetryLimitReached = "retryLimitReached", + StatusFailed = "Failed", + Success = "Success", +} + +/** + * Subscription Endpoint Type. + */ +export enum SubscriptionType { + ActivityFeed = "ActivityFeed", + Email = "Email", + GChat = "GChat", + GovernanceWorkflowChangeEvent = "GovernanceWorkflowChangeEvent", + MSTeams = "MsTeams", + Slack = "Slack", + Webhook = "Webhook", +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this Event Subscription. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Set of rules that the Event Subscription Contains to allow conditional control for + * alerting. + * + * Filtering Rules for Event Subscription. + */ +export interface FilteringRules { + /** + * A set of filter rules associated with the Alert. + */ + actions?: EventFilterRule[]; + /** + * Defines a list of resources that triggers the Event Subscription, Eg All, User, Teams etc. + */ + resources: string[]; + /** + * A set of filter rules associated with the Alert. + */ + rules?: EventFilterRule[]; +} + +/** + * Describes an Event Filter Rule + */ +export interface EventFilterRule { + /** + * Arguments to the Condition. + */ + arguments?: string[]; + /** + * Expression in SpEL used for matching of a `Rule` based on entity, resource, and + * environmental attributes. + */ + condition: string; + /** + * Description of the Event Filter Rule. + */ + description?: string; + /** + * Display Name of the Filter. + */ + displayName?: string; + effect: Effect; + /** + * FullyQualifiedName in the form `eventSubscription.eventFilterRuleName`. + */ + fullyQualifiedName?: string; + inputType?: InputType; + /** + * Name of this Event Filter. + */ + name?: string; + /** + * Prefix Condition to be applied to the Condition. + */ + prefixCondition?: PrefixCondition; +} + +export enum Effect { + Exclude = "exclude", + Include = "include", +} + +export enum InputType { + None = "none", + Runtime = "runtime", + Static = "static", +} + +/** + * Prefix Condition to be applied to the Condition. + * + * Prefix Condition for the filter. + */ +export enum PrefixCondition { + And = "AND", + Or = "OR", +} + +/** + * Input for the Filters. + * + * Observability of the event subscription. + */ +export interface AlertFilteringInput { + /** + * List of filters for the event subscription. + */ + actions?: ArgumentsInput[]; + /** + * List of filters for the event subscription. + */ + filters?: ArgumentsInput[]; +} + +/** + * Observability Filters for Event Subscription. + */ +export interface ArgumentsInput { + /** + * Arguments List + */ + arguments?: Argument[]; + effect?: Effect; + /** + * Name of the filter + */ + name?: string; + /** + * Prefix Condition for the filter. + */ + prefixCondition?: PrefixCondition; +} + +/** + * Argument for the filter. + */ +export interface Argument { + /** + * Value of the Argument + */ + input?: string[]; + /** + * Name of the Argument + */ + name?: string; +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * Trigger information for Alert. + * + * Trigger Configuration for Alerts. + */ +export interface Trigger { + /** + * Cron Expression in case of Custom scheduled Trigger + */ + cronExpression?: string; + /** + * Schedule Info + */ + scheduleInfo?: ScheduleInfo; + triggerType: TriggerType; +} + +/** + * Schedule Info + */ +export enum ScheduleInfo { + Custom = "Custom", + Daily = "Daily", + Monthly = "Monthly", + Weekly = "Weekly", +} + +/** + * Trigger Configuration for Alerts. + */ +export enum TriggerType { + RealTime = "RealTime", + Scheduled = "Scheduled", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/eventSubscriptionOffset.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/eventSubscriptionOffset.ts new file mode 100644 index 000000000000..6ec24b95a709 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/eventSubscriptionOffset.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Represents the offsets for an event subscription, tracking the starting point and current + * position of events processed. + */ +export interface EventSubscriptionOffset { + /** + * The current position in the events. + */ + currentOffset: number; + /** + * The offset from where event processing starts. + */ + startingOffset: number; + /** + * Update time of the job status. + */ + timestamp?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/failedEvent.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/failedEvent.ts new file mode 100644 index 000000000000..5d16baed3341 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/failedEvent.ts @@ -0,0 +1,172 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Failed Events Schema + */ +export interface FailedEvent { + /** + * Change Event that failed + */ + changeEvent?: ChangeEvent; + /** + * Unique identifier that identifies this Event Subscription. + */ + failingSubscriptionId?: string; + /** + * Reason for failure + */ + reason?: string; + /** + * Retries Left for the event + */ + retriesLeft?: number; + /** + * Time of Failure + */ + timestamp?: number; +} + +/** + * Change Event that failed + * + * This schema defines the change event type to capture the changes to entities. Entities + * change due to user activity, such as updating description of a dataset, changing + * ownership, or adding new tags. Entity also changes due to activities at the metadata + * sources, such as a new dataset was created, a datasets was deleted, or schema of a + * dataset is modified. When state of entity changes, an event is produced. These events can + * be used to build apps and bots that respond to the change from activities. + */ +export interface ChangeEvent { + /** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + */ + changeDescription?: ChangeDescription; + /** + * Current version of the entity after this change. Note that not all changes result in + * entity version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + currentVersion?: number; + /** + * Domain of the entity that was modified by the operation. + */ + domain?: string; + /** + * For `eventType` `entityCreated`, this field captures JSON coded string of the entity + * using the schema corresponding to `entityType`. + */ + entity?: any; + /** + * Fully Qualified Name of entity that was modified by the operation. + */ + entityFullyQualifiedName?: string; + /** + * Identifier of entity that was modified by the operation. + */ + entityId: string; + /** + * Entity type that changed. Use the schema of this entity to process the entity attribute. + */ + entityType: string; + eventType: EventType; + /** + * Unique identifier for the event. + */ + id: string; + /** + * Version of the entity before this change. Note that not all changes result in entity + * version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + previousVersion?: number; + /** + * Timestamp when the change was made in Unix epoch time milliseconds. + */ + timestamp: number; + /** + * Name of the user whose activity resulted in the change. + */ + userName?: string; +} + +/** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Type of event. + */ +export enum EventType { + EntityCreated = "entityCreated", + EntityDeleted = "entityDeleted", + EntityFieldsChanged = "entityFieldsChanged", + EntityNoChange = "entityNoChange", + EntityRestored = "entityRestored", + EntitySoftDeleted = "entitySoftDeleted", + EntityUpdated = "entityUpdated", + LogicalTestCaseAdded = "logicalTestCaseAdded", + PostCreated = "postCreated", + PostUpdated = "postUpdated", + SuggestionAccepted = "suggestionAccepted", + SuggestionCreated = "suggestionCreated", + SuggestionDeleted = "suggestionDeleted", + SuggestionRejected = "suggestionRejected", + SuggestionUpdated = "suggestionUpdated", + TaskClosed = "taskClosed", + TaskResolved = "taskResolved", + ThreadCreated = "threadCreated", + ThreadUpdated = "threadUpdated", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/failedEventResponse.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/failedEventResponse.ts new file mode 100644 index 000000000000..c60b2c173993 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/failedEventResponse.ts @@ -0,0 +1,172 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Failed Events Schema + */ +export interface FailedEventResponse { + /** + * Change Event that failed + */ + changeEvent?: ChangeEvent; + /** + * Unique identifier that identifies this Event Subscription. + */ + failingSubscriptionId?: string; + /** + * Reason for failure + */ + reason?: string; + /** + * Source of the failed event + */ + source?: string; + /** + * Time of Failure + */ + timestamp?: number; +} + +/** + * Change Event that failed + * + * This schema defines the change event type to capture the changes to entities. Entities + * change due to user activity, such as updating description of a dataset, changing + * ownership, or adding new tags. Entity also changes due to activities at the metadata + * sources, such as a new dataset was created, a datasets was deleted, or schema of a + * dataset is modified. When state of entity changes, an event is produced. These events can + * be used to build apps and bots that respond to the change from activities. + */ +export interface ChangeEvent { + /** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + */ + changeDescription?: ChangeDescription; + /** + * Current version of the entity after this change. Note that not all changes result in + * entity version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + currentVersion?: number; + /** + * Domain of the entity that was modified by the operation. + */ + domain?: string; + /** + * For `eventType` `entityCreated`, this field captures JSON coded string of the entity + * using the schema corresponding to `entityType`. + */ + entity?: any; + /** + * Fully Qualified Name of entity that was modified by the operation. + */ + entityFullyQualifiedName?: string; + /** + * Identifier of entity that was modified by the operation. + */ + entityId: string; + /** + * Entity type that changed. Use the schema of this entity to process the entity attribute. + */ + entityType: string; + eventType: EventType; + /** + * Unique identifier for the event. + */ + id: string; + /** + * Version of the entity before this change. Note that not all changes result in entity + * version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + previousVersion?: number; + /** + * Timestamp when the change was made in Unix epoch time milliseconds. + */ + timestamp: number; + /** + * Name of the user whose activity resulted in the change. + */ + userName?: string; +} + +/** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Type of event. + */ +export enum EventType { + EntityCreated = "entityCreated", + EntityDeleted = "entityDeleted", + EntityFieldsChanged = "entityFieldsChanged", + EntityNoChange = "entityNoChange", + EntityRestored = "entityRestored", + EntitySoftDeleted = "entitySoftDeleted", + EntityUpdated = "entityUpdated", + LogicalTestCaseAdded = "logicalTestCaseAdded", + PostCreated = "postCreated", + PostUpdated = "postUpdated", + SuggestionAccepted = "suggestionAccepted", + SuggestionCreated = "suggestionCreated", + SuggestionDeleted = "suggestionDeleted", + SuggestionRejected = "suggestionRejected", + SuggestionUpdated = "suggestionUpdated", + TaskClosed = "taskClosed", + TaskResolved = "taskResolved", + ThreadCreated = "threadCreated", + ThreadUpdated = "threadUpdated", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/filterResourceDescriptor.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/filterResourceDescriptor.ts new file mode 100644 index 000000000000..f007c783138b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/filterResourceDescriptor.ts @@ -0,0 +1,88 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Filter descriptor + */ +export interface FilterResourceDescriptor { + /** + * Name of the resource. For entity related resources, resource name is same as the entity + * name. Some resources such as lineage are not entities but are resources. + */ + name?: string; + /** + * List of actions supported filters by the resource. + */ + supportedActions?: EventFilterRule[]; + /** + * List of operations supported filters by the resource. + */ + supportedFilters?: EventFilterRule[]; +} + +/** + * Describes an Event Filter Rule + */ +export interface EventFilterRule { + /** + * Arguments to the Condition. + */ + arguments?: string[]; + /** + * Expression in SpEL used for matching of a `Rule` based on entity, resource, and + * environmental attributes. + */ + condition: string; + /** + * Description of the Event Filter Rule. + */ + description?: string; + /** + * Display Name of the Filter. + */ + displayName?: string; + effect: Effect; + /** + * FullyQualifiedName in the form `eventSubscription.eventFilterRuleName`. + */ + fullyQualifiedName?: string; + inputType?: InputType; + /** + * Name of this Event Filter. + */ + name?: string; + /** + * Prefix Condition to be applied to the Condition. + */ + prefixCondition?: PrefixCondition; +} + +export enum Effect { + Exclude = "exclude", + Include = "include", +} + +export enum InputType { + None = "none", + Runtime = "runtime", + Static = "static", +} + +/** + * Prefix Condition to be applied to the Condition. + */ +export enum PrefixCondition { + And = "AND", + Or = "OR", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/statusContext.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/statusContext.ts new file mode 100644 index 000000000000..e723d5ff5a2e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/statusContext.ts @@ -0,0 +1,47 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Status Context + */ +export interface StatusContext { + /** + * Response entity, if available + */ + entity?: string; + /** + * Response headers as a map + */ + headers?: any; + /** + * Location URI from the response + */ + location?: string; + /** + * Media type of the response + */ + mediaType?: string; + /** + * HTTP status code of the response + */ + statusCode?: number; + /** + * Reason phrase associated with the status code + */ + statusInfo?: string; + /** + * Time in milliseconds since epoch + */ + timestamp?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/subscriptionResourceDescriptor.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/subscriptionResourceDescriptor.ts new file mode 100644 index 000000000000..b6c989b12be4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/subscriptionResourceDescriptor.ts @@ -0,0 +1,45 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Subscription descriptor + */ +export interface SubscriptionResourceDescriptor { + /** + * Name of the resource. For entity related resources, resource name is same as the entity + * name. Some resources such as lineage are not entities but are resources. + */ + name?: string; + /** + * List of operations supported filters by the resource. + */ + supportedFilters?: Operation[]; +} + +/** + * This schema defines all possible filter operations on metadata of entities in + * OpenMetadata. + */ +export enum Operation { + FilterByDomain = "filterByDomain", + FilterByEntityID = "filterByEntityId", + FilterByEventType = "filterByEventType", + FilterByFieldChange = "filterByFieldChange", + FilterByFqn = "filterByFqn", + FilterByGeneralMetadataEvents = "filterByGeneralMetadataEvents", + FilterByMentionedName = "filterByMentionedName", + FilterByOwnerName = "filterByOwnerName", + FilterBySource = "filterBySource", + FilterByUpdaterName = "filterByUpdaterName", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/subscriptionStatus.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/subscriptionStatus.ts new file mode 100644 index 000000000000..7797f3a3b3b9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/subscriptionStatus.ts @@ -0,0 +1,72 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Current status of the subscription, including details on the last successful and failed + * attempts, and retry information. + */ +export interface SubscriptionStatus { + /** + * Timestamp of the last failed callback in UNIX UTC epoch time in milliseconds. + */ + lastFailedAt?: number; + /** + * Detailed reason for the last failure received during callback. + */ + lastFailedReason?: string; + /** + * HTTP status code received during the last failed callback attempt. + */ + lastFailedStatusCode?: number; + /** + * Timestamp of the last successful callback in UNIX UTC epoch time in milliseconds. + */ + lastSuccessfulAt?: number; + /** + * Timestamp for the next retry attempt in UNIX epoch time in milliseconds. Only valid if + * `status` is `awaitingRetry`. + */ + nextAttempt?: number; + /** + * Status is `disabled` when the event subscription was created with `enabled` set to false + * and it never started publishing events. Status is `active` when the event subscription is + * functioning normally and a 200 OK response was received for the callback notification. + * Status is `failed` when a bad callback URL, connection failures, or `1xx` or `3xx` + * response was received for the callback notification. Status is `awaitingRetry` when the + * previous attempt at callback timed out or received a `4xx` or `5xx` response. Status is + * `retryLimitReached` after all retries fail. + */ + status?: Status; + /** + * Current timestamp of this status in UNIX epoch time in milliseconds. + */ + timestamp?: number; +} + +/** + * Status is `disabled` when the event subscription was created with `enabled` set to false + * and it never started publishing events. Status is `active` when the event subscription is + * functioning normally and a 200 OK response was received for the callback notification. + * Status is `failed` when a bad callback URL, connection failures, or `1xx` or `3xx` + * response was received for the callback notification. Status is `awaitingRetry` when the + * previous attempt at callback timed out or received a `4xx` or `5xx` response. Status is + * `retryLimitReached` after all retries fail. + */ +export enum Status { + Active = "active", + AwaitingRetry = "awaitingRetry", + Disabled = "disabled", + Failed = "failed", + RetryLimitReached = "retryLimitReached", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/events/testDestinationStatus.ts b/openmetadata-ui/src/main/resources/ui/src/generated/events/testDestinationStatus.ts new file mode 100644 index 000000000000..9221a8aa2331 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/events/testDestinationStatus.ts @@ -0,0 +1,64 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Detailed status of the destination during a test operation, including HTTP response + * information. + */ +export interface TestDestinationStatus { + /** + * Body of the HTTP response, if any, returned by the server. + */ + entity?: string; + /** + * HTTP headers returned in the response as a map of header names to values. + */ + headers?: any; + /** + * URL location if the response indicates a redirect or newly created resource. + */ + location?: string; + /** + * Media type of the response entity, if specified (e.g., application/json). + */ + mediaType?: string; + /** + * Detailed reason for failure if the test did not succeed. + */ + reason?: string; + /** + * Overall test status, indicating if the test operation succeeded or failed. + */ + status?: Status; + /** + * HTTP status code of the response (e.g., 200 for OK, 404 for Not Found). + */ + statusCode?: number; + /** + * HTTP status reason phrase associated with the status code (e.g., 'Not Found'). + */ + statusInfo?: string; + /** + * Timestamp when the response was received, in UNIX epoch time milliseconds. + */ + timestamp?: number; +} + +/** + * Overall test status, indicating if the test operation succeeded or failed. + */ +export enum Status { + Failed = "Failed", + Success = "Success", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/edge.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/edge.ts new file mode 100644 index 000000000000..5ffd51f64e7c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/edge.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Governance Workflow Edge. + */ +export interface Edge { + /** + * Defines if the edge will follow a path depending on the source node result. + */ + condition?: boolean; + /** + * Element from which the edge will start. + */ + from: string; + /** + * Element on which the edge will end. + */ + to: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodeSubType.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodeSubType.ts new file mode 100644 index 000000000000..01c6ffad7ee3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodeSubType.ts @@ -0,0 +1,25 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SubType of the Node. + */ +export enum NodeSubType { + CheckEntityAttributesTask = "checkEntityAttributesTask", + EndEvent = "endEvent", + SetEntityCertificationTask = "setEntityCertificationTask", + SetGlossaryTermStatusTask = "setGlossaryTermStatusTask", + StartEvent = "startEvent", + UserApprovalTask = "userApprovalTask", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodeType.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodeType.ts new file mode 100644 index 000000000000..83d1fb42b7d0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodeType.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Type of the Node. + */ +export enum NodeType { + AutomatedTask = "automatedTask", + EndEvent = "endEvent", + StartEvent = "startEvent", + UserTask = "userTask", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.ts new file mode 100644 index 000000000000..6fc3f8a17838 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.ts @@ -0,0 +1,41 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Checks if an Entity attributes fit given rules. + */ +export interface CheckEntityAttributesTask { + config?: Config; + /** + * Description of the Node. + */ + description?: string; + /** + * Display Name that identifies this Node. + */ + displayName?: string; + input?: string[]; + /** + * Name that identifies this Node. + */ + name?: string; + output?: string[]; + subType?: string; + type?: string; + [property: string]: any; +} + +export interface Config { + rules?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.ts new file mode 100644 index 000000000000..1786e8c2d405 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.ts @@ -0,0 +1,47 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Sets the Entity Certification to the configured value. + */ +export interface SetEntityCertificationTask { + config?: CertificationConfiguration; + /** + * Description of the Node. + */ + description?: string; + /** + * Display Name that identifies this Node. + */ + displayName?: string; + input?: string[]; + /** + * Name that identifies this Node. + */ + name?: string; + subType?: string; + type?: string; + [property: string]: any; +} + +export interface CertificationConfiguration { + certification: CertificationEnum; +} + +export enum CertificationEnum { + CertificationBronze = "Certification.Bronze", + CertificationGold = "Certification.Gold", + CertificationSilver = "Certification.Silver", + Empty = "", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/endEvent/endEvent.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/endEvent/endEvent.ts new file mode 100644 index 000000000000..5a1351d7f972 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/endEvent/endEvent.ts @@ -0,0 +1,34 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * EndEvent. + */ +export interface EndEvent { + /** + * Description of the Node. + */ + description?: string; + /** + * Display Name that identifies this Node. + */ + displayName?: string; + /** + * Name that identifies this Node. + */ + name?: string; + subType?: string; + type?: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/startEvent/startEvent.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/startEvent/startEvent.ts new file mode 100644 index 000000000000..bce5b54dd3e1 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/startEvent/startEvent.ts @@ -0,0 +1,34 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * StartEvent. + */ +export interface StartEvent { + /** + * Description of the Node. + */ + description?: string; + /** + * Display Name that identifies this Node. + */ + displayName?: string; + /** + * Name that identifies this Node. + */ + name?: string; + subType?: string; + type?: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/userTask/userApprovalTask.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/userTask/userApprovalTask.ts new file mode 100644 index 000000000000..65f1ec22df53 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/nodes/userTask/userApprovalTask.ts @@ -0,0 +1,108 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Defines a Task for a given User to approve. + */ +export interface UserApprovalTask { + config?: Config; + /** + * Description of the Node. + */ + description?: string; + /** + * Display Name that identifies this Node. + */ + displayName?: string; + input?: string[]; + /** + * Name that identifies this Node. + */ + name?: string; + output?: string[]; + subType?: string; + type?: string; + [property: string]: any; +} + +export interface Config { + /** + * People/Teams assigned to the Task. + */ + assignees: Assignees; +} + +/** + * People/Teams assigned to the Task. + */ +export interface Assignees { + /** + * Add the Reviewers to the assignees List. + */ + addReviewers?: boolean; + /** + * Manually add Specific Assignees. + */ + extraAssignees?: EntityReference[]; + [property: string]: any; +} + +/** + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/triggers/eventBasedEntityTrigger.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/triggers/eventBasedEntityTrigger.ts new file mode 100644 index 000000000000..92985f420f89 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/triggers/eventBasedEntityTrigger.ts @@ -0,0 +1,45 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Event Based Entity Trigger. + */ +export interface EventBasedEntityTrigger { + config?: Config; + output?: string[]; + type?: string; +} + +/** + * Entity Event Trigger Configuration. + */ +export interface Config { + /** + * Entity Type for which it should be triggered. + */ + entityType: string; + events: Event[]; + /** + * Exclude events that only modify given attributes. + */ + exclude?: string[]; +} + +/** + * Event for which it should be triggered. + */ +export enum Event { + Created = "Created", + Updated = "Updated", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/triggers/periodicBatchEntityTrigger.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/triggers/periodicBatchEntityTrigger.ts new file mode 100644 index 000000000000..6ee038d64a22 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/elements/triggers/periodicBatchEntityTrigger.ts @@ -0,0 +1,64 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Periodic Batch Entity Trigger. + */ +export interface PeriodicBatchEntityTrigger { + config?: Config; + output?: string[]; + type?: string; +} + +/** + * Entity Event Trigger Configuration. + */ +export interface Config { + /** + * Number of Entities to process at once. + */ + batchSize?: number; + /** + * Entity Type for which it should be triggered. + */ + entityType: string; + /** + * Search Filters to filter down the entities fetched. + */ + filters: string; + /** + * Defines the schedule of the Periodic Trigger. + */ + schedule: any[] | boolean | AppScheduleClass | number | number | null | string; +} + +export interface AppScheduleClass { + /** + * Cron Expression in case of Custom scheduled Trigger + */ + cronExpression?: string; + scheduleTimeline: ScheduleTimeline; +} + +/** + * This schema defines the Application ScheduleTimeline Options + */ +export enum ScheduleTimeline { + Custom = "Custom", + Daily = " Daily", + Hourly = "Hourly", + Monthly = "Monthly", + None = "None", + Weekly = "Weekly", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowDefinition.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowDefinition.ts new file mode 100644 index 000000000000..4d57386c68a8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowDefinition.ts @@ -0,0 +1,201 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Defines a workflow, having all the different pieces and attributes. + */ +export interface WorkflowDefinition { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the workflow definition. + */ + description: string; + /** + * Display Name that identifies this workflow definition. + */ + displayName?: string; + /** + * List of edges that connect the workflow elements and guide its flow. + */ + edges?: EdgeDefinition[]; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this workflow definition. + */ + id?: string; + /** + * Name that identifies this workflow definition. + */ + name: string; + /** + * List of nodes used on the workflow. + */ + nodes?: any; + /** + * Owners of this workflow definition. + */ + owners?: EntityReference[]; + /** + * Workflow Trigger. + */ + trigger?: any; + type?: Type; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Governance Workflow Edge. + */ +export interface EdgeDefinition { + /** + * Defines if the edge will follow a path depending on the source node result. + */ + condition?: boolean; + /** + * Element from which the edge will start. + */ + from: string; + /** + * Element on which the edge will end. + */ + to: string; +} + +/** + * Owners of this workflow definition. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +export enum Type { + EventBasedEntityWorkflow = "eventBasedEntityWorkflow", + PeriodicBatchEntityWorkflow = "periodicBatchEntityWorkflow", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowInstance.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowInstance.ts new file mode 100644 index 000000000000..a4b3f6b1deda --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowInstance.ts @@ -0,0 +1,44 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Defines a workflow instance. + */ +export interface WorkflowInstance { + /** + * Timestamp on which the workflow instance ended. + */ + endedAt?: number; + /** + * If the Workflow Instance has errors, 'True'. Else, 'False'. + */ + exception?: boolean; + /** + * Unique identifier of this workflow instance state. + */ + id?: string; + /** + * Timestamp on which the workflow instance started. + */ + startedAt?: number; + /** + * Timestamp on which the workflow instance state was created. + */ + timestamp?: number; + variables?: { [key: string]: any }; + /** + * Workflow Definition Id. + */ + workflowDefinitionId?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowInstanceState.ts b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowInstanceState.ts new file mode 100644 index 000000000000..49a6aab435f5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/governance/workflows/workflowInstanceState.ts @@ -0,0 +1,59 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Defines a workflow instance. + */ +export interface WorkflowInstanceState { + /** + * If the Workflow Instance has errors, 'True'. Else, 'False'. + */ + exception?: boolean; + /** + * Unique identifier of this workflow instance state. + */ + id?: string; + stage?: Stage; + /** + * Timestamp on which the workflow instance state was created. + */ + timestamp?: number; + /** + * Workflow Definition Reference. + */ + workflowDefinitionId?: string; + /** + * One WorkflowInstance might execute a flow multiple times. This ID groups together the + * States of one of those flows. + */ + workflowInstanceExecutionId?: string; + /** + * Workflow Instance ID. + */ + workflowInstanceId?: string; +} + +export interface Stage { + /** + * Timestamp on which the workflow instance stage ended. + */ + endedAt?: number; + name?: string; + /** + * Timestamp on which the workflow instance stage started. + */ + startedAt?: number; + tasks?: string[]; + variables?: { [key: string]: any }; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/apiServiceMetadataPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/apiServiceMetadataPipeline.ts new file mode 100644 index 000000000000..8973947f8f72 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/apiServiceMetadataPipeline.ts @@ -0,0 +1,67 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * ApiService Metadata Pipeline Configuration. + */ +export interface APIServiceMetadataPipeline { + /** + * Regex to only fetch api collections with names matching the pattern. + */ + apiCollectionFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete api collections in OpenMetadata if the source + * collections are deleted. Also, if the collection is deleted, all the associated entities + * like endpoints, etc., with that collection will be deleted + */ + markDeletedApiCollections?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * Pipeline type + */ + type?: APIMetadataConfigType; +} + +/** + * Regex to only fetch api collections with names matching the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Pipeline type + * + * Api Source Config Metadata Pipeline type + */ +export enum APIMetadataConfigType { + APIMetadata = "ApiMetadata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/application.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/application.ts new file mode 100644 index 000000000000..ef91f77fb93c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/application.ts @@ -0,0 +1,822 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenMetadata Ingestion Framework definition for Applications, i.e., the YAML shape we + * require. + */ +export interface Application { + /** + * External Application configuration + */ + appConfig?: any[] | boolean | CollateAIAppConfig | number | null | string; + /** + * External Application Private configuration + */ + appPrivateConfig?: PrivateConfig; + /** + * Fully qualified name of ingestion pipeline, used to identify the current ingestion + * pipeline + */ + ingestionPipelineFQN?: string; + /** + * Unique identifier of pipeline run, used to identify the current pipeline run + */ + pipelineRunId?: string; + /** + * Source Python Class Name to run the application + */ + sourcePythonClass?: string; + /** + * General Workflow configuration, such as the OpenMetadata server connection and logging + * level + */ + workflowConfig: WorkflowConfig; +} + +/** + * Configuration for the CollateAI External Application. + * + * Configuration for the Automator External Application. + * + * No configuration needed to instantiate the Data Insights Pipeline. The logic is handled + * in the backend. + * + * Search Indexing App. + * + * This schema defines the Slack App Token Configuration + */ +export interface CollateAIAppConfig { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + filter?: string; + /** + * Patch the description if it is empty, instead of raising a suggestion + */ + patchIfEmpty?: boolean; + /** + * Application Type + */ + type?: Type; + /** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + */ + actions?: Action[]; + /** + * Entities selected to run the automation. + */ + resources?: Resource; + backfillConfiguration?: BackfillConfiguration; + /** + * Maximum number of events processed at a time (Default 100). + * + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Recreates the DataAssets index on DataInsights. Useful if you changed a Custom Property + * Type and are facing errors. Bear in mind that recreating the index will delete your + * DataAssets and a backfill will be needed. + */ + recreateDataAssetsIndex?: boolean; + sendToAdmins?: boolean; + sendToTeams?: boolean; + /** + * Number of threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Maximum number of events sent in a batch (Default 100). + */ + payLoadSize?: number; + /** + * Number of threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to user internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Bot Token + */ + botToken?: string; + /** + * User Token + */ + userToken?: string; +} + +/** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + * + * Apply Tags to the selected assets. + * + * Remove Tags Action Type + * + * Add an owner to the selected assets. + * + * Remove Owner Action Type + * + * Add owners to the selected assets. + * + * Propagate description, tags and glossary terms via lineage + * + * ML Tagging action configuration for external automator. + */ +export interface Action { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + * + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + * + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + * + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + * + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + * + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + * + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + * + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + * + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + * + * Tags to remove + */ + tags?: TagLabel[]; + /** + * Application Type + */ + type: ActionType; + /** + * Domain to apply + */ + domain?: EntityReference; + /** + * Description to apply + */ + description?: string; + /** + * tier to apply + */ + tier?: TagLabel; + /** + * Owners to apply + */ + owners?: EntityReference[]; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; +} + +/** + * Domain to apply + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners to apply + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + * + * tier to apply + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + * + * Remove Tags Action Type. + * + * Add Owner Action Type. + * + * Remove Domain Action Type + * + * Add Description Action Type. + * + * Remove Description Action Type + * + * Add Tier Action Type. + * + * Remove Tier Action Type + * + * Remove Owner Action Type + * + * Lineage propagation action type. + * + * ML PII Tagging action type. + */ +export enum ActionType { + AddDescriptionAction = "AddDescriptionAction", + AddDomainAction = "AddDomainAction", + AddOwnerAction = "AddOwnerAction", + AddTagsAction = "AddTagsAction", + AddTierAction = "AddTierAction", + LineagePropagationAction = "LineagePropagationAction", + MLTaggingAction = "MLTaggingAction", + RemoveDescriptionAction = "RemoveDescriptionAction", + RemoveDomainAction = "RemoveDomainAction", + RemoveOwnerAction = "RemoveOwnerAction", + RemoveTagsAction = "RemoveTagsAction", + RemoveTierAction = "RemoveTierAction", +} + +/** + * Backfill Configuration + */ +export interface BackfillConfiguration { + /** + * Enable Backfill for the configured dates + */ + enabled?: boolean; + /** + * Date for which the backfill will end + */ + endDate?: Date; + /** + * Date from which to start the backfill + */ + startDate?: Date; + [property: string]: any; +} + +/** + * Entities selected to run the automation. + */ +export interface Resource { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + queryFilter?: string; + /** + * Type of the entity. E.g., 'table', 'chart',... + */ + type?: string[]; + [property: string]: any; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Application Type + * + * Application type. + */ +export enum Type { + Automator = "Automator", + CollateAI = "CollateAI", + DataInsights = "DataInsights", + DataInsightsReport = "DataInsightsReport", + SearchIndexing = "SearchIndexing", +} + +/** + * External Application Private configuration + * + * PRivate Configuration for the CollateAI External Application. + */ +export interface PrivateConfig { + /** + * Collate Server public URL. WAII will use this information to interact with the server. + * E.g., https://sandbox.getcollate.io + */ + collateURL: string; + /** + * Limits for the CollateAI Application. + */ + limits: CollateAILimits; + /** + * WAII API Token + */ + token: string; + /** + * WAII API host URL + */ + waiiInstance: string; +} + +/** + * Limits for the CollateAI Application. + */ +export interface CollateAILimits { + /** + * Start of the billing cycle. + */ + billingCycleStart?: Date; + /** + * Maximum number of descriptions generated by the CollateAI + */ + descriptions?: number; + /** + * Maximum number of queries generated by CollateAI. + */ + queries?: number; + [property: string]: any; +} + +/** + * General Workflow configuration, such as the OpenMetadata server connection and logging + * level + * + * Configuration for the entire Ingestion Workflow. + */ +export interface WorkflowConfig { + config?: { [key: string]: any }; + loggerLevel?: LogLevels; + openMetadataServerConfig: OpenMetadataConnection; + /** + * The percentage of successfully processed records that must be achieved for the pipeline + * to be considered successful. Otherwise, the pipeline will be marked as failed. + */ + successThreshold?: number; +} + +/** + * Supported logging levels + */ +export enum LogLevels { + Debug = "DEBUG", + Error = "ERROR", + Info = "INFO", + Warn = "WARN", +} + +/** + * OpenMetadata Connection Config + */ +export interface OpenMetadataConnection { + /** + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + */ + hostPort: string; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: Config; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * Service Type + */ + type?: OpenmetadataType; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: VerifySSL; +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * SSL Configuration for OpenMetadata Server + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Service Type + * + * OpenMetadata service type + */ +export enum OpenmetadataType { + OpenMetadata = "OpenMetadata", +} + +/** + * Flag to verify SSL Certificate for OpenMetadata Server. + * + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/applicationPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/applicationPipeline.ts new file mode 100644 index 000000000000..a6dc98d5f91d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/applicationPipeline.ts @@ -0,0 +1,550 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Application Pipeline Configuration. + */ +export interface ApplicationPipeline { + /** + * Application configuration + */ + appConfig?: any[] | boolean | CollateAIAppConfig | number | null | string; + /** + * Application private configuration + */ + appPrivateConfig?: PrivateConfig; + /** + * Source Python Class Name to run the application + */ + sourcePythonClass?: string; + /** + * Pipeline type + */ + type?: ApplicationConfigType; +} + +/** + * Configuration for the CollateAI External Application. + * + * Configuration for the Automator External Application. + * + * No configuration needed to instantiate the Data Insights Pipeline. The logic is handled + * in the backend. + * + * Search Indexing App. + * + * This schema defines the Slack App Token Configuration + */ +export interface CollateAIAppConfig { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + filter?: string; + /** + * Patch the description if it is empty, instead of raising a suggestion + */ + patchIfEmpty?: boolean; + /** + * Application Type + */ + type?: Type; + /** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + */ + actions?: Action[]; + /** + * Entities selected to run the automation. + */ + resources?: Resource; + backfillConfiguration?: BackfillConfiguration; + /** + * Maximum number of events processed at a time (Default 100). + * + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Recreates the DataAssets index on DataInsights. Useful if you changed a Custom Property + * Type and are facing errors. Bear in mind that recreating the index will delete your + * DataAssets and a backfill will be needed. + */ + recreateDataAssetsIndex?: boolean; + sendToAdmins?: boolean; + sendToTeams?: boolean; + /** + * Number of threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Maximum number of events sent in a batch (Default 100). + */ + payLoadSize?: number; + /** + * Number of threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to user internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Bot Token + */ + botToken?: string; + /** + * User Token + */ + userToken?: string; +} + +/** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + * + * Apply Tags to the selected assets. + * + * Remove Tags Action Type + * + * Add an owner to the selected assets. + * + * Remove Owner Action Type + * + * Add owners to the selected assets. + * + * Propagate description, tags and glossary terms via lineage + * + * ML Tagging action configuration for external automator. + */ +export interface Action { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + * + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + * + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + * + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + * + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + * + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + * + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + * + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + * + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + * + * Tags to remove + */ + tags?: TagLabel[]; + /** + * Application Type + */ + type: ActionType; + /** + * Domain to apply + */ + domain?: EntityReference; + /** + * Description to apply + */ + description?: string; + /** + * tier to apply + */ + tier?: TagLabel; + /** + * Owners to apply + */ + owners?: EntityReference[]; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; +} + +/** + * Domain to apply + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners to apply + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + * + * tier to apply + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + * + * Remove Tags Action Type. + * + * Add Owner Action Type. + * + * Remove Domain Action Type + * + * Add Description Action Type. + * + * Remove Description Action Type + * + * Add Tier Action Type. + * + * Remove Tier Action Type + * + * Remove Owner Action Type + * + * Lineage propagation action type. + * + * ML PII Tagging action type. + */ +export enum ActionType { + AddDescriptionAction = "AddDescriptionAction", + AddDomainAction = "AddDomainAction", + AddOwnerAction = "AddOwnerAction", + AddTagsAction = "AddTagsAction", + AddTierAction = "AddTierAction", + LineagePropagationAction = "LineagePropagationAction", + MLTaggingAction = "MLTaggingAction", + RemoveDescriptionAction = "RemoveDescriptionAction", + RemoveDomainAction = "RemoveDomainAction", + RemoveOwnerAction = "RemoveOwnerAction", + RemoveTagsAction = "RemoveTagsAction", + RemoveTierAction = "RemoveTierAction", +} + +/** + * Backfill Configuration + */ +export interface BackfillConfiguration { + /** + * Enable Backfill for the configured dates + */ + enabled?: boolean; + /** + * Date for which the backfill will end + */ + endDate?: Date; + /** + * Date from which to start the backfill + */ + startDate?: Date; + [property: string]: any; +} + +/** + * Entities selected to run the automation. + */ +export interface Resource { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + queryFilter?: string; + /** + * Type of the entity. E.g., 'table', 'chart',... + */ + type?: string[]; + [property: string]: any; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Application Type + * + * Application type. + */ +export enum Type { + Automator = "Automator", + CollateAI = "CollateAI", + DataInsights = "DataInsights", + DataInsightsReport = "DataInsightsReport", + SearchIndexing = "SearchIndexing", +} + +/** + * Application private configuration + * + * PRivate Configuration for the CollateAI External Application. + */ +export interface PrivateConfig { + /** + * Collate Server public URL. WAII will use this information to interact with the server. + * E.g., https://sandbox.getcollate.io + */ + collateURL: string; + /** + * Limits for the CollateAI Application. + */ + limits: CollateAILimits; + /** + * WAII API Token + */ + token: string; + /** + * WAII API host URL + */ + waiiInstance: string; +} + +/** + * Limits for the CollateAI Application. + */ +export interface CollateAILimits { + /** + * Start of the billing cycle. + */ + billingCycleStart?: Date; + /** + * Maximum number of descriptions generated by the CollateAI + */ + descriptions?: number; + /** + * Maximum number of queries generated by CollateAI. + */ + queries?: number; + [property: string]: any; +} + +/** + * Pipeline type + * + * Pipeline Source Config For Application Pipeline type. Nothing is required. + */ +export enum ApplicationConfigType { + Application = "Application", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dashboardServiceMetadataPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dashboardServiceMetadataPipeline.ts new file mode 100644 index 000000000000..e43d3e870ae1 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dashboardServiceMetadataPipeline.ts @@ -0,0 +1,129 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DashboardService Metadata Pipeline Configuration. + */ +export interface DashboardServiceMetadataPipeline { + /** + * Regex exclude or include charts that matches the pattern. + */ + chartFilterPattern?: FilterPattern; + /** + * Regex to exclude or include dashboards that matches the pattern. + */ + dashboardFilterPattern?: FilterPattern; + /** + * Regex exclude or include data models that matches the pattern. + */ + dataModelFilterPattern?: FilterPattern; + /** + * Optional configuration to toggle the ingestion of data models. + */ + includeDataModels?: boolean; + /** + * Optional Configuration to include/exclude draft dashboards. By default it will include + * draft dashboards + */ + includeDraftDashboard?: boolean; + /** + * Enabling a flag will replace the current owner with a new owner from the source during + * metadata ingestion, if the current owner is null. It is recommended to keep the flag + * enabled to obtain the owner information during the first metadata ingestion. + */ + includeOwners?: boolean; + /** + * Optional configuration to toggle the tags ingestion. + */ + includeTags?: boolean; + /** + * Details required to generate Lineage + */ + lineageInformation?: LineageInformation; + /** + * Optional configuration to soft delete dashboards in OpenMetadata if the source dashboards + * are deleted. Also, if the dashboard is deleted, all the associated entities like lineage, + * etc., with that dashboard will be deleted + */ + markDeletedDashboards?: boolean; + /** + * Optional configuration to soft delete data models in OpenMetadata if the source data + * models are deleted. Also, if the data models is deleted, all the associated entities like + * lineage, etc., with that data models will be deleted + */ + markDeletedDataModels?: boolean; + /** + * Set the 'Override Lineage' toggle to control whether to override the existing lineage. + */ + overrideLineage?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * Regex to exclude or include projects that matches the pattern. + */ + projectFilterPattern?: FilterPattern; + /** + * Pipeline type + */ + type?: DashboardMetadataConfigType; +} + +/** + * Regex exclude or include charts that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + * + * Regex to exclude or include dashboards that matches the pattern. + * + * Regex exclude or include data models that matches the pattern. + * + * Regex to exclude or include projects that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Details required to generate Lineage + */ +export interface LineageInformation { + /** + * List of Database Service Names for creation of lineage + */ + dbServiceNames?: string[]; + [property: string]: any; +} + +/** + * Pipeline type + * + * Dashboard Source Config Metadata Pipeline type + */ +export enum DashboardMetadataConfigType { + DashboardMetadata = "DashboardMetadata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dataInsightPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dataInsightPipeline.ts new file mode 100644 index 000000000000..2f8c04fd35ae --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dataInsightPipeline.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Data Insight Pipeline Configuration. + */ +export interface DataInsightPipeline { + /** + * Pipeline type + */ + type: DataInsightConfigType; +} + +/** + * Pipeline type + * + * Pipeline Source Config Metadata Pipeline type + */ +export enum DataInsightConfigType { + DataInsight = "dataInsight", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceAutoClassificationPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceAutoClassificationPipeline.ts new file mode 100644 index 000000000000..c93d3b3ac102 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceAutoClassificationPipeline.ts @@ -0,0 +1,124 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DatabaseService AutoClassification & Auto Classification Pipeline Configuration. + */ +export interface DatabaseServiceAutoClassificationPipeline { + /** + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + */ + classificationFilterPattern?: FilterPattern; + /** + * Set the Confidence value for which you want the column to be tagged as PII. Confidence + * value ranges from 0 to 100. A higher number will yield less false positives but more + * false negatives. A lower number will yield more false positives but less false negatives. + */ + confidence?: number; + /** + * Regex to only fetch databases that matches the pattern. + */ + databaseFilterPattern?: FilterPattern; + /** + * Optional configuration to automatically tag columns that might contain sensitive + * information + */ + enableAutoClassification?: boolean; + /** + * Optional configuration to turn off fetching metadata for views. + */ + includeViews?: boolean; + /** + * Percentage of data or no. of rows used to compute the profiler metrics and run data + * quality tests + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * Number of sample rows to ingest when 'Generate Sample Data' is enabled + */ + sampleDataCount?: number; + samplingMethodType?: SamplingMethodType; + /** + * Regex to only fetch tables or databases that matches the pattern. + */ + schemaFilterPattern?: FilterPattern; + /** + * Option to turn on/off storing sample data. If enabled, we will ingest sample data for + * each table. + */ + storeSampleData?: boolean; + /** + * Regex exclude tables or databases that matches the pattern. + */ + tableFilterPattern?: FilterPattern; + /** + * Pipeline type + */ + type?: AutoClassificationConfigType; + /** + * Regex will be applied on fully qualified name (e.g + * service_name.db_name.schema_name.table_name) instead of raw name (e.g. table_name) + */ + useFqnForFiltering?: boolean; +} + +/** + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + * + * Regex to only fetch databases that matches the pattern. + * + * Regex to only fetch tables or databases that matches the pattern. + * + * Regex exclude tables or databases that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * Pipeline type + * + * Profiler Source Config Pipeline type + */ +export enum AutoClassificationConfigType { + AutoClassification = "AutoClassification", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceMetadataPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceMetadataPipeline.ts new file mode 100644 index 000000000000..9455924e60c4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceMetadataPipeline.ts @@ -0,0 +1,158 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DatabaseService Metadata Pipeline Configuration. + */ +export interface DatabaseServiceMetadataPipeline { + /** + * Regex to only fetch databases that matches the pattern. + */ + databaseFilterPattern?: FilterPattern; + /** + * Optional configuration to toggle the DDL Statements ingestion. + */ + includeDDL?: boolean; + /** + * Set the 'Include Owners' toggle to control whether to include owners to the ingested + * entity if the owner email matches with a user stored in the OM server as part of metadata + * ingestion. If the ingested entity already exists and has an owner, the owner will not be + * overwritten. + */ + includeOwners?: boolean; + /** + * Optional configuration to toggle the Stored Procedures ingestion. + */ + includeStoredProcedures?: boolean; + /** + * Optional configuration to turn off fetching metadata for tables. + */ + includeTables?: boolean; + /** + * Optional configuration to toggle the tags ingestion. + */ + includeTags?: boolean; + /** + * Optional configuration to turn off fetching metadata for views. + */ + includeViews?: boolean; + /** + * Use incremental Metadata extraction after the first execution. This is commonly done by + * getting the changes from Audit tables on the supporting databases. + */ + incremental?: IncrementalMetadataExtractionConfiguration; + /** + * Optional configuration to soft delete stored procedures in OpenMetadata if the source + * stored procedures are deleted. Also, if the stored procedures is deleted, all the + * associated entities like lineage, etc., with that stored procedures will be deleted + */ + markDeletedStoredProcedures?: boolean; + /** + * This is an optional configuration for enabling soft deletion of tables. When this option + * is enabled, only tables that have been deleted from the source will be soft deleted, and + * this will apply solely to the schema that is currently being ingested via the pipeline. + * Any related entities such as test suites or lineage information that were associated with + * those tables will also be deleted. + */ + markDeletedTables?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * Configuration to tune how far we want to look back in query logs to process Stored + * Procedures results. + */ + queryLogDuration?: number; + /** + * Configuration to set the timeout for parsing the query in seconds. + */ + queryParsingTimeoutLimit?: number; + /** + * Regex to only fetch tables or databases that matches the pattern. + */ + schemaFilterPattern?: FilterPattern; + /** + * Regex exclude tables or databases that matches the pattern. + */ + tableFilterPattern?: FilterPattern; + /** + * Number of Threads to use in order to parallelize Table ingestion. + */ + threads?: number; + /** + * Pipeline type + */ + type?: DatabaseMetadataConfigType; + /** + * Regex will be applied on fully qualified name (e.g + * service_name.db_name.schema_name.table_name) instead of raw name (e.g. table_name) + */ + useFqnForFiltering?: boolean; +} + +/** + * Regex to only fetch databases that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + * + * Regex to only fetch tables or databases that matches the pattern. + * + * Regex exclude tables or databases that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Use incremental Metadata extraction after the first execution. This is commonly done by + * getting the changes from Audit tables on the supporting databases. + */ +export interface IncrementalMetadataExtractionConfiguration { + /** + * If True, enables Metadata Extraction to be incremental + */ + enabled: boolean; + /** + * Number os days to search back for a successful pipeline run. The timestamp of the last + * found successful pipeline run will be used as a base to search for updated entities. + */ + lookbackDays?: number; + /** + * Number of days to add to the last successful pipeline run timestamp to search for updated + * entities. + */ + safetyMarginDays?: number; +} + +/** + * Pipeline type + * + * Database Source Config Metadata Pipeline type + */ +export enum DatabaseMetadataConfigType { + DatabaseMetadata = "DatabaseMetadata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceProfilerPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceProfilerPipeline.ts new file mode 100644 index 000000000000..9b376eee6e9b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceProfilerPipeline.ts @@ -0,0 +1,137 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DatabaseService Profiler Pipeline Configuration. + */ +export interface DatabaseServiceProfilerPipeline { + /** + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + */ + classificationFilterPattern?: FilterPattern; + /** + * Option to turn on/off column metric computation. If enabled, profiler will compute column + * level metrics. + */ + computeColumnMetrics?: boolean; + /** + * Option to turn on/off computing profiler metrics. + */ + computeMetrics?: boolean; + /** + * Option to turn on/off table metric computation. If enabled, profiler will compute table + * level metrics. + */ + computeTableMetrics?: boolean; + /** + * Regex to only fetch databases that matches the pattern. + */ + databaseFilterPattern?: FilterPattern; + /** + * Optional configuration to turn off fetching metadata for views. + */ + includeViews?: boolean; + /** + * Percentage of data or no. of rows used to compute the profiler metrics and run data + * quality tests + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * Number of sample rows to ingest when 'Generate Sample Data' is enabled + */ + sampleDataCount?: number; + samplingMethodType?: SamplingMethodType; + /** + * Regex to only fetch tables or databases that matches the pattern. + */ + schemaFilterPattern?: FilterPattern; + /** + * Regex exclude tables or databases that matches the pattern. + */ + tableFilterPattern?: FilterPattern; + /** + * Number of threads to use during metric computations + */ + threadCount?: number; + /** + * Profiler Timeout in Seconds + */ + timeoutSeconds?: number; + /** + * Pipeline type + */ + type?: ProfilerConfigType; + /** + * Regex will be applied on fully qualified name (e.g + * service_name.db_name.schema_name.table_name) instead of raw name (e.g. table_name) + */ + useFqnForFiltering?: boolean; + /** + * Use system tables to extract metrics. Metrics that cannot be gathered from system tables + * will use the default methods. Using system tables can be faster but requires gathering + * statistics before running (for example using the ANALYZE procedure). More information can + * be found in the documentation: https://docs.openmetadata.org/latest/profler + */ + useStatistics?: boolean; +} + +/** + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + * + * Regex to only fetch databases that matches the pattern. + * + * Regex to only fetch tables or databases that matches the pattern. + * + * Regex exclude tables or databases that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * Pipeline type + * + * Profiler Source Config Pipeline type + */ +export enum ProfilerConfigType { + Profiler = "Profiler", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceQueryLineagePipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceQueryLineagePipeline.ts new file mode 100644 index 000000000000..ab6d709b9f68 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceQueryLineagePipeline.ts @@ -0,0 +1,106 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DatabaseService Query Lineage Pipeline Configuration. + */ +export interface DatabaseServiceQueryLineagePipeline { + /** + * Regex to only fetch databases that matches the pattern. + */ + databaseFilterPattern?: FilterPattern; + /** + * Configuration the condition to filter the query history. + */ + filterCondition?: string; + /** + * Set the 'Override View Lineage' toggle to control whether to override the existing view + * lineage. + */ + overrideViewLineage?: boolean; + /** + * Configuration to set the timeout for parsing the query in seconds. + */ + parsingTimeoutLimit?: number; + /** + * Set the 'Process Query Lineage' toggle to control whether to process query lineage. + */ + processQueryLineage?: boolean; + /** + * Set the 'Process Stored ProcedureLog Lineage' toggle to control whether to process stored + * procedure lineage. + */ + processStoredProcedureLineage?: boolean; + /** + * Set the 'Process View Lineage' toggle to control whether to process view lineage. + */ + processViewLineage?: boolean; + /** + * Configuration to tune how far we want to look back in query logs to process lineage data. + */ + queryLogDuration?: number; + /** + * Configuration to set the file path for query logs + */ + queryLogFilePath?: string; + /** + * Configuration to set the limit for query logs + */ + resultLimit?: number; + /** + * Regex to only fetch tables or databases that matches the pattern. + */ + schemaFilterPattern?: FilterPattern; + /** + * Regex exclude tables or databases that matches the pattern. + */ + tableFilterPattern?: FilterPattern; + /** + * Number of Threads to use in order to parallelize lineage ingestion. + */ + threads?: number; + /** + * Pipeline type + */ + type?: DatabaseLineageConfigType; +} + +/** + * Regex to only fetch databases that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + * + * Regex to only fetch tables or databases that matches the pattern. + * + * Regex exclude tables or databases that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Pipeline type + * + * Database Source Config Usage Pipeline type + */ +export enum DatabaseLineageConfigType { + DatabaseLineage = "DatabaseLineage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceQueryUsagePipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceQueryUsagePipeline.ts new file mode 100644 index 000000000000..766085980b39 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/databaseServiceQueryUsagePipeline.ts @@ -0,0 +1,53 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DatabaseService Query Usage Pipeline Configuration. + */ +export interface DatabaseServiceQueryUsagePipeline { + /** + * Configuration the condition to filter the query history. + */ + filterCondition?: string; + /** + * Configuration to tune how far we want to look back in query logs to process usage data. + */ + queryLogDuration?: number; + /** + * Configuration to set the file path for query logs + */ + queryLogFilePath?: string; + /** + * Configuration to set the limit for query logs + */ + resultLimit?: number; + /** + * Temporary file name to store the query logs before processing. Absolute file path + * required. + */ + stageFileLocation?: string; + /** + * Pipeline type + */ + type?: DatabaseUsageConfigType; +} + +/** + * Pipeline type + * + * Database Source Config Usage Pipeline type + */ +export enum DatabaseUsageConfigType { + DatabaseUsage = "DatabaseUsage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtPipeline.ts new file mode 100644 index 000000000000..54eb630e1275 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtPipeline.ts @@ -0,0 +1,375 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DBT Pipeline Configuration. + */ +export interface DbtPipeline { + /** + * Regex to only fetch databases that matches the pattern. + */ + databaseFilterPattern?: FilterPattern; + /** + * Custom OpenMetadata Classification name for dbt tags. + */ + dbtClassificationName?: string; + /** + * Available sources to fetch DBT catalog and manifest files. + */ + dbtConfigSource: DBTConfigurationSource; + /** + * Optional configuration to update the description from DBT or not + */ + dbtUpdateDescriptions?: boolean; + /** + * Optional configuration to toggle the tags ingestion. + */ + includeTags?: boolean; + /** + * Configuration to set the timeout for parsing the query in seconds. + */ + parsingTimeoutLimit?: number; + /** + * Regex to only fetch tables or databases that matches the pattern. + */ + schemaFilterPattern?: FilterPattern; + /** + * Regex exclude tables or databases that matches the pattern. + */ + tableFilterPattern?: FilterPattern; + /** + * Pipeline type + */ + type?: TypeEnum; +} + +/** + * Regex to only fetch databases that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + * + * Regex to only fetch tables or databases that matches the pattern. + * + * Regex exclude tables or databases that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Available sources to fetch DBT catalog and manifest files. + * + * dbt Cloud configuration. + * + * DBT Catalog, Manifest and Run Results file path config. + * + * DBT Catalog, Manifest and Run Results HTTP path configuration. + * + * DBT Catalog, Manifest and Run Results files in S3 bucket. We will search for + * catalog.json, manifest.json and run_results.json. + * + * DBT Catalog, Manifest and Run Results files in GCS storage. We will search for + * catalog.json, manifest.json and run_results.json. + * + * DBT Catalog, Manifest and Run Results files in Azure bucket. We will search for + * catalog.json, manifest.json and run_results.json. + */ +export interface DBTConfigurationSource { + /** + * dbt cloud account Id + */ + dbtCloudAccountId?: string; + /** + * dbt cloud account authentication token + */ + dbtCloudAuthToken?: string; + /** + * dbt cloud job id. + */ + dbtCloudJobId?: string; + /** + * In case of multiple projects in a dbt cloud account, specify the project's id from which + * you want to extract the dbt run artifacts + */ + dbtCloudProjectId?: string; + /** + * URL to connect to your dbt cloud instance. E.g., https://cloud.getdbt.com or + * https://emea.dbt.com/ + */ + dbtCloudUrl?: string; + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigTypeEnum; + /** + * DBT catalog file path to extract dbt models with their column schemas. + */ + dbtCatalogFilePath?: string; + /** + * DBT manifest file path to extract dbt models and associate with tables. + */ + dbtManifestFilePath?: string; + /** + * DBT run results file path to extract the test results information. + */ + dbtRunResultsFilePath?: string; + /** + * DBT sources file path to extract the freshness test result. + */ + dbtSourcesFilePath?: string; + /** + * DBT catalog http file path to extract dbt models with their column schemas. + */ + dbtCatalogHttpPath?: string; + /** + * DBT manifest http file path to extract dbt models and associate with tables. + */ + dbtManifestHttpPath?: string; + /** + * DBT run results http file path to extract the test results information. + */ + dbtRunResultsHttpPath?: string; + /** + * DBT sources http file path to extract freshness test results information. + */ + dbtSourcesHttpPath?: string; + /** + * Details of the bucket where the dbt files are stored + */ + dbtPrefixConfig?: DBTPrefixConfig; + dbtSecurityConfig?: Credentials; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigTypeEnum { + Azure = "azure", + Cloud = "cloud", + Gcs = "gcs", + HTTP = "http", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the dbt files are stored + */ +export interface DBTPrefixConfig { + /** + * Name of the bucket where the dbt files are stored + */ + dbtBucketName?: string; + /** + * Path of the folder where the dbt files are stored + */ + dbtObjectPrefix?: string; +} + +/** + * AWS credentials configs. + * + * GCP credentials configs. + * + * Azure Cloud Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Pipeline type + * + * DBT Config Pipeline type + */ +export enum TypeEnum { + Dbt = "DBT", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtAzureConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtAzureConfig.ts new file mode 100644 index 000000000000..22101bf9dd34 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtAzureConfig.ts @@ -0,0 +1,80 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DBT Catalog, Manifest and Run Results files in Azure bucket. We will search for + * catalog.json, manifest.json and run_results.json. + */ +export interface DbtAzureConfig { + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigType; + /** + * Details of the bucket where the dbt files are stored + */ + dbtPrefixConfig?: DBTPrefixConfig; + dbtSecurityConfig: AzureCredentials; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigType { + Azure = "azure", +} + +/** + * Details of the bucket where the dbt files are stored + */ +export interface DBTPrefixConfig { + /** + * Name of the bucket where the dbt files are stored + */ + dbtBucketName?: string; + /** + * Path of the folder where the dbt files are stored + */ + dbtObjectPrefix?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtBucketDetails.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtBucketDetails.ts new file mode 100644 index 000000000000..1b6d5ab1e8e6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtBucketDetails.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Details of the bucket where the dbt files are stored + */ +export interface DbtBucketDetails { + /** + * Name of the bucket where the dbt files are stored + */ + dbtBucketName?: string; + /** + * Path of the folder where the dbt files are stored + */ + dbtObjectPrefix?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtCloudConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtCloudConfig.ts new file mode 100644 index 000000000000..e461f4a039cb --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtCloudConfig.ts @@ -0,0 +1,52 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * dbt Cloud configuration. + */ +export interface DbtCloudConfig { + /** + * dbt cloud account Id + */ + dbtCloudAccountId: string; + /** + * dbt cloud account authentication token + */ + dbtCloudAuthToken: string; + /** + * dbt cloud job id. + */ + dbtCloudJobId?: string; + /** + * In case of multiple projects in a dbt cloud account, specify the project's id from which + * you want to extract the dbt run artifacts + */ + dbtCloudProjectId?: string; + /** + * URL to connect to your dbt cloud instance. E.g., https://cloud.getdbt.com or + * https://emea.dbt.com/ + */ + dbtCloudUrl: string; + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigType; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigType { + Cloud = "cloud", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtGCSConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtGCSConfig.ts new file mode 100644 index 000000000000..994ca70a013a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtGCSConfig.ts @@ -0,0 +1,163 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DBT Catalog, Manifest and Run Results files in GCS storage. We will search for + * catalog.json, manifest.json and run_results.json. + */ +export interface DbtGCSConfig { + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigType; + /** + * Details of the bucket where the dbt files are stored + */ + dbtPrefixConfig?: DBTPrefixConfig; + dbtSecurityConfig: GCPCredentials; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigType { + Gcs = "gcs", +} + +/** + * Details of the bucket where the dbt files are stored + */ +export interface DBTPrefixConfig { + /** + * Name of the bucket where the dbt files are stored + */ + dbtBucketName?: string; + /** + * Path of the folder where the dbt files are stored + */ + dbtObjectPrefix?: string; +} + +/** + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtHttpConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtHttpConfig.ts new file mode 100644 index 000000000000..b82aed6cbf9a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtHttpConfig.ts @@ -0,0 +1,46 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DBT Catalog, Manifest and Run Results HTTP path configuration. + */ +export interface DbtHTTPConfig { + /** + * DBT catalog http file path to extract dbt models with their column schemas. + */ + dbtCatalogHttpPath?: string; + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigType; + /** + * DBT manifest http file path to extract dbt models and associate with tables. + */ + dbtManifestHttpPath: string; + /** + * DBT run results http file path to extract the test results information. + */ + dbtRunResultsHttpPath?: string; + /** + * DBT sources http file path to extract freshness test results information. + */ + dbtSourcesHttpPath?: string; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigType { + HTTP = "http", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtLocalConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtLocalConfig.ts new file mode 100644 index 000000000000..f3844e690970 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtLocalConfig.ts @@ -0,0 +1,46 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DBT Catalog, Manifest and Run Results file path config. + */ +export interface DbtLocalConfig { + /** + * DBT catalog file path to extract dbt models with their column schemas. + */ + dbtCatalogFilePath?: string; + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigType; + /** + * DBT manifest file path to extract dbt models and associate with tables. + */ + dbtManifestFilePath: string; + /** + * DBT run results file path to extract the test results information. + */ + dbtRunResultsFilePath?: string; + /** + * DBT sources file path to extract the freshness test result. + */ + dbtSourcesFilePath?: string; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigType { + Local = "local", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtS3Config.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtS3Config.ts new file mode 100644 index 000000000000..828ebdd78dcb --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/dbtconfig/dbtS3Config.ts @@ -0,0 +1,96 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * DBT Catalog, Manifest and Run Results files in S3 bucket. We will search for + * catalog.json, manifest.json and run_results.json. + */ +export interface DbtS3Config { + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigType; + /** + * Details of the bucket where the dbt files are stored + */ + dbtPrefixConfig?: DBTPrefixConfig; + dbtSecurityConfig: AWSCredentials; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigType { + S3 = "s3", +} + +/** + * Details of the bucket where the dbt files are stored + */ +export interface DBTPrefixConfig { + /** + * Name of the bucket where the dbt files are stored + */ + dbtBucketName?: string; + /** + * Path of the folder where the dbt files are stored + */ + dbtObjectPrefix?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/messagingServiceMetadataPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/messagingServiceMetadataPipeline.ts new file mode 100644 index 000000000000..fc9f039f7d45 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/messagingServiceMetadataPipeline.ts @@ -0,0 +1,71 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * MessagingService Metadata Pipeline Configuration. + */ +export interface MessagingServiceMetadataPipeline { + /** + * Option to turn on/off generating sample data during metadata extraction. + */ + generateSampleData?: boolean; + /** + * Optional configuration to soft delete topics in OpenMetadata if the source topics are + * deleted. Also, if the topic is deleted, all the associated entities like sample data, + * lineage, etc., with that topic will be deleted + */ + markDeletedTopics?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * Regex to only fetch topics that matches the pattern. + */ + topicFilterPattern?: FilterPattern; + /** + * Pipeline type + */ + type?: MessagingMetadataConfigType; +} + +/** + * Regex to only fetch topics that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Pipeline type + * + * Messaging Source Config Metadata Pipeline type + */ +export enum MessagingMetadataConfigType { + MessagingMetadata = "MessagingMetadata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/metadataToElasticSearchPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/metadataToElasticSearchPipeline.ts new file mode 100644 index 000000000000..080196cb7b4a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/metadataToElasticSearchPipeline.ts @@ -0,0 +1,80 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Data Insight Pipeline Configuration. + */ +export interface MetadataToElasticSearchPipeline { + /** + * Maximum number of events entities in a batch (Default 1000). + */ + batchSize?: number; + /** + * Certificate path to be added in configuration. The path should be local in the Ingestion + * Container. + */ + caCerts?: string; + recreateIndex?: boolean; + /** + * Region name. Required when using AWS Credentials. + */ + regionName?: string; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Connection Timeout + */ + timeout?: number; + /** + * Pipeline type + */ + type: MetadataToESConfigType; + /** + * Indicates whether to use aws credentials when connecting to OpenSearch in AWS. + */ + useAwsCredentials?: boolean; + /** + * Indicates whether to use SSL when connecting to ElasticSearch. By default, we will ignore + * SSL settings. + */ + useSSL?: boolean; + /** + * Indicates whether to verify certificates when using SSL connection to ElasticSearch. + * Ignored by default. Is set to true, make sure to send the certificates in the property + * `CA Certificates`. + */ + verifyCerts?: boolean; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Pipeline type + * + * Pipeline Source Config Metadata Pipeline type + */ +export enum MetadataToESConfigType { + MetadataToElasticSearch = "MetadataToElasticSearch", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/mlmodelServiceMetadataPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/mlmodelServiceMetadataPipeline.ts new file mode 100644 index 000000000000..f1ea9d764cfe --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/mlmodelServiceMetadataPipeline.ts @@ -0,0 +1,67 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * MlModelService Metadata Pipeline Configuration. + */ +export interface MlmodelServiceMetadataPipeline { + /** + * Optional configuration to soft delete MlModels in OpenMetadata if the source MlModels are + * deleted. Also, if the MlModel is deleted, all the associated entities like lineage, etc., + * with that MlModels will be deleted + */ + markDeletedMlModels?: boolean; + /** + * Regex to only fetch MlModels with names matching the pattern. + */ + mlModelFilterPattern?: FilterPattern; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * Pipeline type + */ + type?: MlModelMetadataConfigType; +} + +/** + * Regex to only fetch MlModels with names matching the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Pipeline type + * + * MlModel Source Config Metadata Pipeline type + */ +export enum MlModelMetadataConfigType { + MlModelMetadata = "MlModelMetadata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/pipelineServiceMetadataPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/pipelineServiceMetadataPipeline.ts new file mode 100644 index 000000000000..3852a39044a8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/pipelineServiceMetadataPipeline.ts @@ -0,0 +1,110 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * PipelineService Metadata Pipeline Configuration. + */ +export interface PipelineServiceMetadataPipeline { + /** + * Optional configuration to turn off fetching lineage from pipelines. + */ + includeLineage?: boolean; + /** + * Set the 'Include Owners' toggle to control whether to include owners to the ingested + * entity if the owner email matches with a user stored in the OM server as part of metadata + * ingestion. If the ingested entity already exists and has an owner, the owner will not be + * overwritten. + */ + includeOwners?: boolean; + /** + * Optional configuration to toggle the tags ingestion. + */ + includeTags?: boolean; + /** + * Optional configuration to toggle whether the un-deployed pipelines should be ingested or + * not. If set to false, only deployed pipelines will be ingested. + */ + includeUnDeployedPipelines?: boolean; + /** + * Details required to generate Lineage + */ + lineageInformation?: LineageInformation; + /** + * Optional configuration to soft delete Pipelines in OpenMetadata if the source Pipelines + * are deleted. Also, if the Pipeline is deleted, all the associated entities like lineage, + * etc., with that Pipeline will be deleted + */ + markDeletedPipelines?: boolean; + /** + * Set the 'Override Lineage' toggle to control whether to override the existing lineage. + */ + overrideLineage?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * Regex exclude pipelines. + */ + pipelineFilterPattern?: FilterPattern; + /** + * Pipeline type + */ + type?: PipelineMetadataConfigType; +} + +/** + * Details required to generate Lineage + */ +export interface LineageInformation { + /** + * List of Database Service Names for creation of lineage + */ + dbServiceNames?: string[]; + /** + * List of Storage Service Names for creation of lineage + */ + storageServiceNames?: string[]; + [property: string]: any; +} + +/** + * Regex exclude pipelines. + * + * Regex to only fetch dashboards or charts that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Pipeline type + * + * Pipeline Source Config Metadata Pipeline type + */ +export enum PipelineMetadataConfigType { + PipelineMetadata = "PipelineMetadata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/searchServiceMetadataPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/searchServiceMetadataPipeline.ts new file mode 100644 index 000000000000..93743d5d1179 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/searchServiceMetadataPipeline.ts @@ -0,0 +1,79 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SearchService Metadata Pipeline Configuration. + */ +export interface SearchServiceMetadataPipeline { + /** + * Enable the 'Include Index Template' toggle to manage the ingestion of index template data. + */ + includeIndexTemplate?: boolean; + /** + * Optional configuration to turn off fetching sample data for search index. + */ + includeSampleData?: boolean; + /** + * Optional configuration to soft delete search indexes in OpenMetadata if the source search + * indexes are deleted. Also, if the search index is deleted, all the associated entities + * like lineage, etc., with that search index will be deleted + */ + markDeletedSearchIndexes?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * No. of records of sample data we want to ingest. + */ + sampleSize?: number; + /** + * Regex to only fetch search indexes that matches the pattern. + */ + searchIndexFilterPattern?: FilterPattern; + /** + * Pipeline type + */ + type?: SearchMetadataConfigType; +} + +/** + * Regex to only fetch search indexes that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Pipeline type + * + * Search Source Config Metadata Pipeline type + */ +export enum SearchMetadataConfigType { + SearchMetadata = "SearchMetadata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/containerMetadataConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/containerMetadataConfig.ts new file mode 100644 index 000000000000..086c6376d51b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/containerMetadataConfig.ts @@ -0,0 +1,565 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Definition of the properties contained by an object store container template config file + */ +export interface ContainerMetadataConfig { + /** + * List of metadata entries for the bucket containing information about where data resides + * and its structure + */ + entries: MetadataEntry[]; +} + +/** + * Config properties for a container found in a user-supplied metadata config + */ +export interface MetadataEntry { + /** + * The path where the data resides in the container, excluding the bucket name + */ + dataPath: string; + /** + * Flag indicating whether the container's data is partitioned + */ + isPartitioned?: boolean; + /** + * What are the partition columns in case the container's data is partitioned + */ + partitionColumns?: Column[]; + /** + * For delimited files such as CSV, what is the separator being used? + */ + separator?: string; + /** + * What's the schema format for the container, eg. avro, parquet, csv. + */ + structureFormat?: string; + /** + * What the unstructured formats you want to ingest, eg. png, pdf, jpg. + */ + unstructuredFormats?: string[]; + [property: string]: any; +} + +/** + * This schema defines the type for a column in a table. + */ +export interface Column { + /** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + */ + arrayDataType?: DataType; + /** + * Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`. + */ + children?: Column[]; + /** + * Column level constraint. + */ + constraint?: Constraint; + /** + * List of Custom Metrics registered for a table. + */ + customMetrics?: CustomMetric[]; + /** + * Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, + * `varchar(20)` has dataType as `varchar` and dataLength as `20`. + */ + dataLength?: number; + /** + * Data type of the column (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + fullyQualifiedName?: string; + /** + * Json schema only if the dataType is JSON else null. + */ + jsonSchema?: string; + name: string; + /** + * Ordinal position of the column. + */ + ordinalPosition?: number; + /** + * The precision of a numeric is the total count of significant digits in the whole number, + * that is, the number of digits to both sides of the decimal point. Precision is applicable + * Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric + * types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + precision?: number; + /** + * Latest Data profile for a Column. + */ + profile?: ColumnProfile; + /** + * The scale of a numeric is the count of decimal digits in the fractional part, to the + * right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non + * Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + scale?: number; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + * + * This enum defines the type of data stored in a column. + * + * Data type of the column (int, date etc.). + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * Column level constraint. + * + * This enum defines the type for column constraint. + */ +export enum Constraint { + NotNull = "NOT_NULL", + Null = "NULL", + PrimaryKey = "PRIMARY_KEY", + Unique = "UNIQUE", +} + +/** + * Custom Metric definition that we will associate with a column. + */ +export interface CustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the Metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Unique identifier of this Custom Metric instance. + */ + id?: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Custom Metric. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Owners of this Custom Metric. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Latest Data profile for a Column. + * + * This schema defines the type to capture the table's column profile. + */ +export interface ColumnProfile { + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Number of values that contain distinct values. + */ + distinctCount?: number; + /** + * Proportion of distinct values in a column. + */ + distinctProportion?: number; + /** + * No.of Rows that contain duplicates in a column. + */ + duplicateCount?: number; + /** + * First quartile of a column. + */ + firstQuartile?: number; + /** + * Histogram of a column. + */ + histogram?: any[] | boolean | HistogramClass | number | number | null | string; + /** + * Inter quartile range of a column. + */ + interQuartileRange?: number; + /** + * Maximum value in a column. + */ + max?: number | string; + /** + * Maximum string length in a column. + */ + maxLength?: number; + /** + * Avg value in a column. + */ + mean?: number; + /** + * Median of a column. + */ + median?: number; + /** + * Minimum value in a column. + */ + min?: number | string; + /** + * Minimum string length in a column. + */ + minLength?: number; + /** + * Missing count is calculated by subtracting valuesCount - validCount. + */ + missingCount?: number; + /** + * Missing Percentage is calculated by taking percentage of validCount/valuesCount. + */ + missingPercentage?: number; + /** + * Column Name. + */ + name: string; + /** + * Non parametric skew of a column. + */ + nonParametricSkew?: number; + /** + * No.of null values in a column. + */ + nullCount?: number; + /** + * No.of null value proportion in columns. + */ + nullProportion?: number; + /** + * Standard deviation of a column. + */ + stddev?: number; + /** + * Median value in a column. + */ + sum?: number; + /** + * First quartile of a column. + */ + thirdQuartile?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; + /** + * No. of unique values in the column. + */ + uniqueCount?: number; + /** + * Proportion of number of unique values in a column. + */ + uniqueProportion?: number; + /** + * Total count of valid values in this column. + */ + validCount?: number; + /** + * Total count of the values in this column. + */ + valuesCount?: number; + /** + * Percentage of values in this column with respect to row count. + */ + valuesPercentage?: number; + /** + * Variance of a column. + */ + variance?: number; +} + +/** + * Profiling results of a Custom Metric. + */ +export interface CustomMetricProfile { + /** + * Custom metric name. + */ + name?: string; + /** + * Profiling results for the metric. + */ + value?: number; +} + +export interface HistogramClass { + /** + * Boundaries of Histogram. + */ + boundaries?: any[]; + /** + * Frequencies of Histogram. + */ + frequencies?: any[]; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/manifestMetadataConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/manifestMetadataConfig.ts new file mode 100644 index 000000000000..71caa73d0740 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/manifestMetadataConfig.ts @@ -0,0 +1,562 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + export interface ManifestMetadataConfigClass { + /** + * List of metadata entries for the bucket containing information about where data resides + * and its structure + */ + entries: ManifestMetadataEntry[]; +} + +/** + * Config properties for a container found in a user-supplied metadata config + */ +export interface ManifestMetadataEntry { + /** + * The top-level container name containing the data path to be ingested + */ + containerName: string; + /** + * The path where the data resides in the container, excluding the bucket name + */ + dataPath: string; + /** + * Flag indicating whether the container's data is partitioned + */ + isPartitioned?: boolean; + /** + * What are the partition columns in case the container's data is partitioned + */ + partitionColumns?: Column[]; + /** + * For delimited files such as CSV, what is the separator being used? + */ + separator?: string; + /** + * What's the schema format for the container, eg. avro, parquet, csv. + */ + structureFormat?: string; + [property: string]: any; +} + +/** + * This schema defines the type for a column in a table. + */ +export interface Column { + /** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + */ + arrayDataType?: DataType; + /** + * Child columns if dataType or arrayDataType is `map`, `struct`, or `union` else `null`. + */ + children?: Column[]; + /** + * Column level constraint. + */ + constraint?: Constraint; + /** + * List of Custom Metrics registered for a table. + */ + customMetrics?: CustomMetric[]; + /** + * Length of `char`, `varchar`, `binary`, `varbinary` `dataTypes`, else null. For example, + * `varchar(20)` has dataType as `varchar` and dataLength as `20`. + */ + dataLength?: number; + /** + * Data type of the column (int, date etc.). + */ + dataType: DataType; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this column name. + */ + displayName?: string; + fullyQualifiedName?: string; + /** + * Json schema only if the dataType is JSON else null. + */ + jsonSchema?: string; + name: string; + /** + * Ordinal position of the column. + */ + ordinalPosition?: number; + /** + * The precision of a numeric is the total count of significant digits in the whole number, + * that is, the number of digits to both sides of the decimal point. Precision is applicable + * Integer types, such as `INT`, `SMALLINT`, `BIGINT`, etc. It also applies to other Numeric + * types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + precision?: number; + /** + * Latest Data profile for a Column. + */ + profile?: ColumnProfile; + /** + * The scale of a numeric is the count of decimal digits in the fractional part, to the + * right of the decimal point. For Integer types, the scale is `0`. It mainly applies to non + * Integer Numeric types, such as `NUMBER`, `DECIMAL`, `DOUBLE`, `FLOAT`, etc. + */ + scale?: number; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type used array in dataType. For example, `array` has dataType as `array` and + * arrayDataType as `int`. + * + * This enum defines the type of data stored in a column. + * + * Data type of the column (int, date etc.). + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * Column level constraint. + * + * This enum defines the type for column constraint. + */ +export enum Constraint { + NotNull = "NOT_NULL", + Null = "NULL", + PrimaryKey = "PRIMARY_KEY", + Unique = "UNIQUE", +} + +/** + * Custom Metric definition that we will associate with a column. + */ +export interface CustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the Metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Unique identifier of this Custom Metric instance. + */ + id?: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Custom Metric. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Owners of this Custom Metric. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Latest Data profile for a Column. + * + * This schema defines the type to capture the table's column profile. + */ +export interface ColumnProfile { + /** + * Custom Metrics profile list bound to a column. + */ + customMetrics?: CustomMetricProfile[]; + /** + * Number of values that contain distinct values. + */ + distinctCount?: number; + /** + * Proportion of distinct values in a column. + */ + distinctProportion?: number; + /** + * No.of Rows that contain duplicates in a column. + */ + duplicateCount?: number; + /** + * First quartile of a column. + */ + firstQuartile?: number; + /** + * Histogram of a column. + */ + histogram?: any[] | boolean | HistogramClass | number | number | null | string; + /** + * Inter quartile range of a column. + */ + interQuartileRange?: number; + /** + * Maximum value in a column. + */ + max?: number | string; + /** + * Maximum string length in a column. + */ + maxLength?: number; + /** + * Avg value in a column. + */ + mean?: number; + /** + * Median of a column. + */ + median?: number; + /** + * Minimum value in a column. + */ + min?: number | string; + /** + * Minimum string length in a column. + */ + minLength?: number; + /** + * Missing count is calculated by subtracting valuesCount - validCount. + */ + missingCount?: number; + /** + * Missing Percentage is calculated by taking percentage of validCount/valuesCount. + */ + missingPercentage?: number; + /** + * Column Name. + */ + name: string; + /** + * Non parametric skew of a column. + */ + nonParametricSkew?: number; + /** + * No.of null values in a column. + */ + nullCount?: number; + /** + * No.of null value proportion in columns. + */ + nullProportion?: number; + /** + * Standard deviation of a column. + */ + stddev?: number; + /** + * Median value in a column. + */ + sum?: number; + /** + * First quartile of a column. + */ + thirdQuartile?: number; + /** + * Timestamp on which profile is taken. + */ + timestamp: number; + /** + * No. of unique values in the column. + */ + uniqueCount?: number; + /** + * Proportion of number of unique values in a column. + */ + uniqueProportion?: number; + /** + * Total count of valid values in this column. + */ + validCount?: number; + /** + * Total count of the values in this column. + */ + valuesCount?: number; + /** + * Percentage of values in this column with respect to row count. + */ + valuesPercentage?: number; + /** + * Variance of a column. + */ + variance?: number; +} + +/** + * Profiling results of a Custom Metric. + */ +export interface CustomMetricProfile { + /** + * Custom metric name. + */ + name?: string; + /** + * Profiling results for the metric. + */ + value?: number; +} + +export interface HistogramClass { + /** + * Boundaries of Histogram. + */ + boundaries?: any[]; + /** + * Frequencies of Histogram. + */ + frequencies?: any[]; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageBucketDetails.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageBucketDetails.ts new file mode 100644 index 000000000000..c6c153f01f01 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageBucketDetails.ts @@ -0,0 +1,28 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Details of the bucket where the storage metadata manifest file is stored + */ +export interface StorageBucketDetails { + /** + * Name of the top level container where the storage metadata file is stored + */ + containerName: string; + /** + * Path of the folder where the storage metadata file is stored. If the file is at the root, + * you can keep it empty. + */ + objectPrefix?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataADLSConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataADLSConfig.ts new file mode 100644 index 000000000000..42f4458102c3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataADLSConfig.ts @@ -0,0 +1,66 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Storage Metadata Manifest file ADLS path config. + */ +export interface StorageMetadataADLSConfig { + prefixConfig: StorageMetadataBucketDetails; + securityConfig?: AzureCredentials; +} + +/** + * Details of the bucket where the storage metadata manifest file is stored + */ +export interface StorageMetadataBucketDetails { + /** + * Name of the top level container where the storage metadata file is stored + */ + containerName: string; + /** + * Path of the folder where the storage metadata file is stored. If the file is at the root, + * you can keep it empty. + */ + objectPrefix?: string; +} + +/** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataGCSConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataGCSConfig.ts new file mode 100644 index 000000000000..70bc80b90f08 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataGCSConfig.ts @@ -0,0 +1,149 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Storage Metadata Manifest file GCS path config. + */ +export interface StorageMetadataGCSConfig { + prefixConfig: StorageMetadataBucketDetails; + securityConfig?: GCPCredentials; +} + +/** + * Details of the bucket where the storage metadata manifest file is stored + */ +export interface StorageMetadataBucketDetails { + /** + * Name of the top level container where the storage metadata file is stored + */ + containerName: string; + /** + * Path of the folder where the storage metadata file is stored. If the file is at the root, + * you can keep it empty. + */ + objectPrefix?: string; +} + +/** + * GCP credentials configs. + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataHttpConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataHttpConfig.ts new file mode 100644 index 000000000000..7f4d9a739136 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataHttpConfig.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Storage Metadata Manifest file HTTP path config. + */ +export interface StorageMetadataHTTPConfig { + /** + * Storage Metadata manifest http file path to extract locations to ingest from. + */ + manifestHttpPath: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataLocalConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataLocalConfig.ts new file mode 100644 index 000000000000..cf71a01e4399 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataLocalConfig.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Storage Metadata Manifest file path config. + */ +export interface StorageMetadataLocalConfig { + /** + * Storage Metadata manifest file path to extract locations to ingest from. + */ + manifestFilePath: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataS3Config.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataS3Config.ts new file mode 100644 index 000000000000..155549458127 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storage/storageMetadataS3Config.ts @@ -0,0 +1,82 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Storage Metadata Manifest file S3 path config. + */ +export interface StorageMetadataS3Config { + prefixConfig: StorageMetadataBucketDetails; + securityConfig?: AWSCredentials; +} + +/** + * Details of the bucket where the storage metadata manifest file is stored + */ +export interface StorageMetadataBucketDetails { + /** + * Name of the top level container where the storage metadata file is stored + */ + containerName: string; + /** + * Path of the folder where the storage metadata file is stored. If the file is at the root, + * you can keep it empty. + */ + objectPrefix?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storageServiceMetadataPipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storageServiceMetadataPipeline.ts new file mode 100644 index 000000000000..8bd844a71572 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/storageServiceMetadataPipeline.ts @@ -0,0 +1,294 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * StorageService Metadata Pipeline Configuration. + */ +export interface StorageServiceMetadataPipeline { + /** + * Regex to only fetch containers that matches the pattern. + */ + containerFilterPattern?: FilterPattern; + /** + * Optional configuration to toggle the tags ingestion. + */ + includeTags?: boolean; + /** + * Optional configuration to soft delete containers in OpenMetadata if the source containers + * are deleted. Also, if the topic is deleted, all the associated entities with that + * containers will be deleted + */ + markDeletedContainers?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + storageMetadataConfigSource?: StorageMetadataConfigurationSource; + /** + * Pipeline type + */ + type?: StorageMetadataConfigType; +} + +/** + * Regex to only fetch containers that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * No manifest file available. Ingestion would look for bucket-level metadata file instead + * + * Storage Metadata Manifest file path config. + * + * Storage Metadata Manifest file HTTP path config. + * + * Storage Metadata Manifest file S3 path config. + * + * Storage Metadata Manifest file ADLS path config. + * + * Storage Metadata Manifest file GCS path config. + */ +export interface StorageMetadataConfigurationSource { + /** + * Storage Metadata manifest file path to extract locations to ingest from. + */ + manifestFilePath?: string; + /** + * Storage Metadata manifest http file path to extract locations to ingest from. + */ + manifestHttpPath?: string; + prefixConfig?: StorageMetadataBucketDetails; + securityConfig?: Credentials; +} + +/** + * Details of the bucket where the storage metadata manifest file is stored + */ +export interface StorageMetadataBucketDetails { + /** + * Name of the top level container where the storage metadata file is stored + */ + containerName: string; + /** + * Path of the folder where the storage metadata file is stored. If the file is at the root, + * you can keep it empty. + */ + objectPrefix?: string; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + * + * GCP credentials configs. + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Pipeline type + * + * Object Store Source Config Metadata Pipeline type + */ +export enum StorageMetadataConfigType { + StorageMetadata = "StorageMetadata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/testSuitePipeline.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/testSuitePipeline.ts new file mode 100644 index 000000000000..8f066b4555f0 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/testSuitePipeline.ts @@ -0,0 +1,62 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * TestSuite Pipeline Configuration. + */ +export interface TestSuitePipeline { + /** + * Fully qualified name of the entity to be tested. + */ + entityFullyQualifiedName: string; + /** + * Percentage of data or no. of rows we want to execute the profiler and tests on + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + samplingMethodType?: SamplingMethodType; + /** + * List of test cases to be executed on the entity. If null, all test cases will be executed. + */ + testCases?: string[]; + /** + * Pipeline type + */ + type: TestSuiteConfigType; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * Pipeline type + * + * Pipeline Source Config Metadata Pipeline type + */ +export enum TestSuiteConfigType { + TestSuite = "TestSuite", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts new file mode 100644 index 000000000000..7c9e7c386d4c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/metadataIngestion/workflow.ts @@ -0,0 +1,4856 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenMetadata Ingestion Framework definition. + */ +export interface Workflow { + /** + * Unique identifier that identifies this pipeline. + */ + id?: string; + /** + * Name that identifies this pipeline instance uniquely. + */ + name: string; + /** + * OpenMetadata Ingestion Workflow Config. + */ + openMetadataWorkflowConfig: OpenMetadataWorkflowConfig; +} + +/** + * OpenMetadata Ingestion Workflow Config. + */ +export interface OpenMetadataWorkflowConfig { + bulkSink?: BulkSink; + /** + * Fully qualified name of ingestion pipeline, used to identify the current ingestion + * pipeline + */ + ingestionPipelineFQN?: string; + /** + * Unique identifier of pipeline run, used to identify the current pipeline run + */ + pipelineRunId?: string; + processor?: Processor; + sink?: Sink; + source: Source; + stage?: Stage; + workflowConfig: WorkflowConfig; +} + +/** + * Configuration for BulkSink Component in the OpenMetadata Ingestion Framework. + */ +export interface BulkSink { + config?: { [key: string]: any }; + /** + * Type of BulkSink component ex: metadata-usage + */ + type: string; +} + +/** + * Configuration for Processor Component in the OpenMetadata Ingestion Framework. + */ +export interface Processor { + config?: { [key: string]: any }; + /** + * Type of processor component ex: pii-processor + */ + type: string; +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface Sink { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Configuration for Source component in OpenMetadata Ingestion Framework. + */ +export interface Source { + /** + * Connection configuration for the source. ex: mysql , tableau connection. + */ + serviceConnection?: ServiceConnection; + /** + * Type of the source connector ex: mysql, snowflake, tableau etc.. + */ + serviceName?: string; + sourceConfig: SourceConfig; + /** + * Type of the source connector ex: mysql, snowflake, tableau etc.. + */ + type: string; +} + +/** + * Connection configuration for the source. ex: mysql , tableau connection. + * + * Supported services + * + * API Service Connection. + * + * Dashboard Connection. + * + * Database Connection. + * + * Metadata Service Connection. + * + * Pipeline Connection. + * + * MlModel Connection. + * + * Storage Connection. + * + * search Connection. + */ +export interface ServiceConnection { + config?: ConfigClass; +} + +/** + * REST Connection Config + * + * Looker Connection Config + * + * Metabase Connection Config + * + * PowerBI Connection Config + * + * PowerBIReportServer Connection Config + * + * Redash Connection Config + * + * Superset Connection Config + * + * Tableau Connection Config + * + * Mode Connection Config + * + * Custom Dashboard Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Domo Dashboard Connection Config + * + * QuickSight Connection Config + * + * Qlik Sense Connection Config + * + * Lightdash Connection Config + * + * MicroStrategy Connection Config + * + * Qlik Cloud Connection Config + * + * Sigma Connection Config + * + * Google BigQuery Connection Config + * + * Google BigTable Connection Config + * + * AWS Athena Connection Config + * + * Azure SQL Connection Config + * + * Clickhouse Connection Config + * + * Databricks Connection Config + * + * Db2 Connection Config + * + * DeltaLake Database Connection Config + * + * Druid Connection Config + * + * DynamoDB Connection Config + * + * Glue Connection Config + * + * Hive SQL Connection Config + * + * Impala SQL Connection Config + * + * MariaDB Database Connection Config + * + * Mssql Database Connection Config + * + * Mysql Database Connection Config + * + * SQLite Database Connection Config + * + * Oracle Database Connection Config + * + * Postgres Database Connection Config + * + * Presto Database Connection Config + * + * Redshift Connection Config + * + * Salesforce Connection Config + * + * SingleStore Database Connection Config + * + * Snowflake Connection Config + * + * Trino Connection Config + * + * Vertica Connection Config + * + * PinotDB Database Connection Config + * + * Datalake Connection Config + * + * Domo Database Connection Config + * + * Custom Database Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Sap Hana Database Connection Config + * + * MongoDB Connection Config + * + * Couchbase Connection Config + * + * Greenplum Database Connection Config + * + * Doris Database Connection Config + * + * UnityCatalog Connection Config + * + * SAS Connection Config + * + * Iceberg Catalog Connection Config + * + * Teradata Database Connection Config + * + * Sap ERP Database Connection Config + * + * Synapse Database Connection Config + * + * Exasol Database Connection Config + * + * Kafka Connection Config + * + * Redpanda Connection Config + * + * Kinesis Connection Config + * + * Custom Messaging Service Connection to build a source that is not supported by + * OpenMetadata yet. + * + * Amundsen Connection Config + * + * Metadata to ElasticSearch Connection Config + * + * OpenMetadata Connection Config + * + * Atlas Connection Config + * + * Alation Connection Config + * + * Alation Sink Connection Config + * + * Airflow Metadata Database Connection Config + * + * Glue Pipeline Connection Config + * + * Airbyte Metadata Database Connection Config + * + * Fivetran Metadata Database Connection Config + * + * Flink Metadata Connection Config + * + * Dagster Metadata Database Connection Config + * + * Nifi Metadata Pipeline Connection Config + * + * Domo Pipeline Connection Config + * + * Custom Pipeline Service connection to build a source that is not supported by + * OpenMetadata yet. + * + * Spline Metadata Database Connection Config + * + * Spark Metadata Pipeline Connection Config + * + * OpenLineage Connection Config + * + * KafkaConnect Connection Config + * + * DBTCloud Connection Config + * + * Matillion Connection + * + * Azure Data Factory Connection Config + * + * Stitch Connection + * + * MlFlow Connection Config + * + * Sklearn Connection Config + * + * Custom MlModel Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * SageMaker Connection Config + * + * Google VertexAI Connection Config + * + * S3 Connection. + * + * ADLS Connection. + * + * GCS Connection. + * + * Custom Storage Service connection to build a source that is not supported by OpenMetadata + * yet. + * + * ElasticSearch Connection. + * + * OpenSearch Connection. + * + * Custom Search Service connection to build a source that is not supported by OpenMetadata + * yet. + */ +export interface ConfigClass { + /** + * Open API Schema URL. + */ + openAPISchemaURL?: string; + /** + * Supports Metadata Extraction. + */ + supportsMetadataExtraction?: boolean; + /** + * Generated Token to connect to OpenAPI Schema. + * + * token to connect to Qlik Cloud. + * + * Generated Token to connect to Databricks. + * + * To Connect to Dagster Cloud + * + * Generated Token to connect to DBTCloud. + * + * Token to connect to Stitch api doc + */ + token?: string; + /** + * REST API Type + * + * Service Type + * + * Custom dashboard service type + * + * Custom database service type + * + * Custom messaging service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * Custom search service type + */ + type?: RESTType; + /** + * User's Client ID. This user should have privileges to read all the metadata in Looker. + * + * client_id for PowerBI. + * + * Client ID for DOMO + * + * client_id for Sigma. + */ + clientId?: string; + /** + * User's Client Secret. + * + * clientSecret for PowerBI. + * + * clientSecret for Sigma. + */ + clientSecret?: string; + /** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + */ + gitCredentials?: GitHubCredentials; + /** + * URL to the Looker instance. + * + * Host and Port of the Metabase instance. + * + * Dashboard URL for PowerBI service. + * + * Dashboard URL for PowerBI Report Server. + * + * URL for the Redash instance + * + * URL for the superset instance. + * + * Tableau Server. + * + * URL for the mode instance. + * + * URL for the Qlik instance. + * + * Address for your running Lightdash instance + * + * Host and Port of the MicroStrategy instance. + * + * Host and Port of the Qlik Cloud instance. + * + * Sigma API url. + * + * BigQuery APIs URL. + * + * Host and port of the AzureSQL service. + * + * Host and port of the Clickhouse service. + * + * Host and port of the Databricks service. + * + * Host and port of the DB2 service. + * + * Host and port of the Druid service. + * + * Host and port of the Hive service. + * + * Host and port of the Impala service. + * + * Host and port of the MariaDB service. + * + * Host and port of the MSSQL service. + * + * Host and port of the MySQL service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Host and port of the Oracle service. + * + * Host and port of the source service. + * + * Host and port of the Presto service. + * + * Host and port of the Redshift service. + * + * Host and port of the SingleStore service. + * + * Host and port of the Trino service. + * + * Host and port of the Vertica service. + * + * Host and port of the PinotDB Broker service. + * + * Host and port of the MongoDB service when using the `mongodb` connection scheme. Only + * host when using the `mongodb+srv` scheme. + * + * Host and port of the Doris service. + * + * Host and port of the Teradata service. + * + * Host and Port of the SAP ERP instance. + * + * Host and port of the Azure Synapse service. + * + * Host and port of the Amundsen Neo4j Connection. This expect a URI format like: + * bolt://localhost:7687. + * + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + * + * Host and port of the Atlas service. + * + * Host and port of the Alation service. + * + * Pipeline Service Management/UI URI. + * + * Pipeline Service Management/UI URL. + * + * Spline REST Server Host & Port. + * + * KafkaConnect Service Management/UI URI. + * + * Host and port of the Stitch API host + * + * Host and port of the ElasticSearch service. + * + * Host and port of the OpenSearch service. + */ + hostPort?: string; + /** + * Password to connect to Metabase. + * + * Password to connect to PowerBI report server. + * + * Password to connect to MicroStrategy. + * + * Password to connect to AzureSQL. + * + * Password to connect to Clickhouse. + * + * Password to connect to DB2. + * + * Password to connect to Druid. + * + * Password to connect to Hive. + * + * Password to connect to Impala. + * + * Password to connect to MariaDB. + * + * Password to connect to MSSQL. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to Oracle. + * + * Password to connect to Presto. + * + * Password to connect to Redshift. + * + * Password to connect to the Salesforce. + * + * Password to connect to SingleStore. + * + * Password to connect to Snowflake. + * + * Password to connect to Vertica. + * + * password to connect to the PinotDB. + * + * Password to connect to MongoDB. + * + * Password to connect to Couchbase. + * + * Password to connect to Doris. + * + * Password to connect to SAS Viya + * + * Password to connect to Teradata. + * + * Password to connect to Azure Synapse. + * + * Password to connect to Exasol. + * + * password to connect to the Amundsen Neo4j Connection. + * + * password to connect to the Atlas. + * + * Password to connect to Airbyte. + * + * OpenSearch Password for Login + */ + password?: string; + /** + * Username to connect to Metabase. This user should have privileges to read all the + * metadata in Metabase. + * + * Username to connect to PowerBI report server. + * + * Username for Redash + * + * Username to connect to MicroStrategy. This user should have privileges to read all the + * metadata in MicroStrategy. + * + * Username to connect to AzureSQL. This user should have privileges to read the metadata. + * + * Username to connect to Clickhouse. This user should have privileges to read all the + * metadata in Clickhouse. + * + * Username to connect to DB2. This user should have privileges to read all the metadata in + * DB2. + * + * Username to connect to Druid. This user should have privileges to read all the metadata + * in Druid. + * + * Username to connect to Hive. This user should have privileges to read all the metadata in + * Hive. + * + * Username to connect to Impala. This user should have privileges to read all the metadata + * in Impala. + * + * Username to connect to MariaDB. This user should have privileges to read all the metadata + * in MariaDB. + * + * Username to connect to MSSQL. This user should have privileges to read all the metadata + * in MsSQL. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to Oracle. This user should have privileges to read all the metadata + * in Oracle. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to Presto. This user should have privileges to read all the metadata + * in Postgres. + * + * Username to connect to Redshift. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to the Salesforce. This user should have privileges to read all the + * metadata in Redshift. + * + * Username to connect to SingleStore. This user should have privileges to read all the + * metadata in MySQL. + * + * Username to connect to Snowflake. This user should have privileges to read all the + * metadata in Snowflake. + * + * Username to connect to Trino. This user should have privileges to read all the metadata + * in Trino. + * + * Username to connect to Vertica. This user should have privileges to read all the metadata + * in Vertica. + * + * username to connect to the PinotDB. This user should have privileges to read all the + * metadata in PinotDB. + * + * Username to connect to MongoDB. This user should have privileges to read all the metadata + * in MongoDB. + * + * Username to connect to Couchbase. This user should have privileges to read all the + * metadata in Couchbase. + * + * Username to connect to Greenplum. This user should have privileges to read all the + * metadata in Greenplum. + * + * Username to connect to Doris. This user should have privileges to read all the metadata + * in Doris. + * + * Username to connect to SAS Viya. + * + * Username to connect to Teradata. This user should have privileges to read all the + * metadata in Teradata. + * + * Username to connect to Azure Synapse. This user should have privileges to read all the + * metadata in Azure Synapse. + * + * Username to connect to Exasol. This user should have privileges to read all the metadata + * in Exasol. + * + * username to connect to the Amundsen Neo4j Connection. + * + * username to connect to the Atlas. This user should have privileges to read all the + * metadata in Atlas. + * + * Username to connect to Airbyte. + * + * OpenSearch Username for Login + */ + username?: string; + /** + * Authority URI for the PowerBI service. + */ + authorityURI?: string; + /** + * Entity Limit set here will be used to paginate the PowerBi APIs + */ + pagination_entity_per_page?: number; + /** + * Source to get the .pbit files to extract lineage information + */ + pbitFilesSource?: PowerBIPbitFilesSource; + /** + * PowerBI secrets. + */ + scope?: string[]; + /** + * Tenant ID for PowerBI. + */ + tenantId?: string; + /** + * Fetch the PowerBI metadata using admin APIs + */ + useAdminApis?: boolean; + /** + * Web Portal Virtual Directory Name. + */ + webPortalVirtualDirectory?: string; + /** + * API key of the redash instance to access. + * + * The personal access token you can generate in the Lightdash app under the user settings + * + * API key to authenticate with the SAP ERP APIs. + * + * Fivetran API Secret. + */ + apiKey?: string; + /** + * Version of the Redash instance + */ + redashVersion?: string; + /** + * Choose between API or database connection fetch metadata from superset. + * + * Choose between Database connection or HDB User Store connection. + * + * Choose between mysql and postgres connection for alation database + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Matillion Auth Configuration + */ + connection?: ConnectionObject; + /** + * Tableau API version. + * + * Sigma API version. + * + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * Types of methods used to authenticate to the tableau instance + * + * Choose Auth Config Type. + * + * Types of methods used to authenticate to the alation instance + */ + authType?: AuthenticationTypeForTableau | NoConfigAuthenticationTypes; + /** + * Tableau Environment Name. + */ + env?: string; + /** + * Pagination limit used while querying the tableau metadata API for getting data sources + * + * Pagination limit used while querying the SAP ERP API for fetching the entities + * + * Pagination limit used for Alation APIs pagination + */ + paginationLimit?: number; + /** + * Tableau Site Name. + */ + siteName?: string; + /** + * Tableau Site Url. + */ + siteUrl?: string; + /** + * SSL Configuration details. + * + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: SSLConfigObject; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + * + * Boolean marking if we need to verify the SSL certs for KafkaConnect REST API. True by + * default. + */ + verifySSL?: boolean | VerifySSL; + /** + * Access Token for Mode Dashboard + * + * Access token to connect to DOMO + */ + accessToken?: string; + /** + * Access Token Password for Mode Dashboard + */ + accessTokenPassword?: string; + /** + * Filter query parameter for some of the Mode API calls + */ + filterQueryParam?: string; + /** + * Mode Workspace Name + */ + workspaceName?: string; + connectionOptions?: { [key: string]: string }; + /** + * Source Python Class Name to instantiated by the ingestion workflow + */ + sourcePythonClass?: string; + /** + * API Host to connect to DOMO instance + */ + apiHost?: string; + /** + * URL of your Domo instance, e.g., https://openmetadata.domo.com + */ + instanceDomain?: string; + /** + * Secret Token to connect DOMO + * + * Secret token to connect to DOMO + */ + secretToken?: string; + /** + * AWS Account ID + */ + awsAccountId?: string; + awsConfig?: AWSCredentials; + /** + * The authentication method that the user uses to sign in. + */ + identityType?: IdentityType; + /** + * The Amazon QuickSight namespace that contains the dashboard IDs in this request ( To be + * provided when identityType is `ANONYMOUS` ) + */ + namespace?: string; + certificates?: QlikCertificatesBy; + /** + * Qlik Sense Base URL, used for genrating dashboard & chat url + */ + displayUrl?: string; + /** + * User Directory. + */ + userDirectory?: string; + /** + * User ID. + */ + userId?: string; + /** + * Validate Host Name + */ + validateHostName?: boolean; + /** + * The Project UUID for your Lightdash instance + */ + projectUUID?: string; + /** + * Use if your Lightdash instance is behind a proxy like (Cloud IAP) + */ + proxyAuthentication?: string; + /** + * The Space UUID for your Lightdash instance + */ + spaceUUID?: string; + /** + * Login Mode for Microstrategy's REST API connection. You can authenticate with one of the + * following authentication modes: `Standard (1)`, `Anonymous (8)`. Default will be + * `Standard (1)`. If you're using demo account for Microstrategy, it will be needed to + * authenticate through loginMode `8`. + */ + loginMode?: string; + /** + * MicroStrategy Project Name + * + * Project name to create the refreshToken. Can be anything + */ + projectName?: string; + /** + * If using Metastore, Key-Value pairs that will be used to add configs to the SparkSession. + */ + connectionArguments?: { [key: string]: any }; + /** + * GCP Credentials + * + * Azure Credentials + */ + credentials?: GCPCredentials; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + * + * Mongo connection scheme options. + * + * Couchbase driver scheme options. + * + * Http/Https connection scheme + */ + scheme?: string; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + /** + * Supports Lineage Extraction. + */ + supportsLineageExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsSystemProfile?: boolean; + /** + * Supports Usage Extraction. + */ + supportsUsageExtraction?: boolean; + /** + * Taxonomy location used to fetch policy tags + */ + taxonomyLocation?: string; + /** + * Project IDs used to fetch policy tags + */ + taxonomyProjectID?: string[]; + /** + * Location used to query INFORMATION_SCHEMA.JOBS_BY_PROJECT to fetch usage data. You can + * pass multi-regions, such as `us` or `eu`, or you specific region. Australia and Asia + * multi-regions are not yet in GA. + */ + usageLocation?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * S3 Staging Directory. Example: s3://postgres/input/ + */ + s3StagingDir?: string; + /** + * Athena workgroup. + */ + workgroup?: string; + /** + * This parameter determines the mode of authentication for connecting to AzureSQL using + * ODBC. If 'Active Directory Password' is selected, you need to provide the password. If + * 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with AzureSQL. + * + * This parameter determines the mode of authentication for connecting to Azure Synapse + * using ODBC. If 'Active Directory Password' is selected, you need to provide the password. + * If 'Active Directory Integrated' is selected, password is not required as it uses the + * logged-in user's credentials. This mode is useful for establishing secure and seamless + * connections with Azure Synapse. + */ + authenticationMode?: any[] | boolean | number | null | AuthenticationModeObject | string; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + * + * Database of the data source. + * + * Initial Redshift database to connect to. If you want to ingest all databases, set + * ingestAllDatabases to true. + */ + database?: string; + /** + * SQLAlchemy driver for AzureSQL. + * + * ODBC driver version in case of pyodbc connection. + */ + driver?: string; + /** + * Ingest data from all databases in Azuresql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Mssql. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Redshift. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Greenplum. You can use databaseFilterPattern on top of + * this. + * + * Ingest data from all databases in Azure Synapse. You can use databaseFilterPattern on top + * of this. + */ + ingestAllDatabases?: boolean; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + * + * Optional name to give to the schema in OpenMetadata. If left blank, we will use default + * as the schema name + */ + databaseSchema?: string; + /** + * Clickhouse SQL connection duration. + */ + duration?: number; + /** + * Use HTTPS Protocol for connection with clickhouse + */ + https?: boolean; + /** + * Path to key file for establishing secure connection + */ + keyfile?: string; + /** + * Establish secure connection with clickhouse + */ + secure?: boolean; + /** + * Catalog of the data source(Example: hive_metastore). This is optional parameter, if you + * would like to restrict the metadata reading to a single catalog. When left blank, + * OpenMetadata Ingestion attempts to scan all the catalog. + * + * Presto catalog + * + * Catalog of the data source. + */ + catalog?: IcebergCatalog | string; + /** + * The maximum amount of time (in seconds) to wait for a successful connection to the data + * source. If the connection attempt takes longer than this timeout period, an error will be + * returned. + */ + connectionTimeout?: number; + /** + * Databricks compute resources URL. + */ + httpPath?: string; + supportsViewLineageExtraction?: boolean; + /** + * Available sources to fetch the metadata. + * + * Available sources to fetch files. + * + * Available sources to fetch metadata. + */ + configSource?: DeltaLakeConfigurationSource; + /** + * Authentication mode to connect to hive. + */ + auth?: AuthEnum; + /** + * Authentication options to pass to Hive connector. These options are based on SQLAlchemy. + * + * Authentication options to pass to Impala connector. These options are based on SQLAlchemy. + */ + authOptions?: string; + /** + * If authenticating with Kerberos specify the Kerberos service name + */ + kerberosServiceName?: string; + /** + * Hive Metastore Connection Details + */ + metastoreConnection?: HiveMetastoreConnectionDetails; + /** + * Authentication mode to connect to Impala. + */ + authMechanism?: AuthMechanismEnum; + /** + * Establish secure connection with Impala + */ + useSSL?: boolean; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + /** + * This directory will be used to set the LD_LIBRARY_PATH env variable. It is required if + * you need to enable thick connection mode. By default, we bring instant client 19 and + * point to /instantclient. + */ + instantClientDirectory?: string; + /** + * Connect with oracle by either passing service name or database schema name. + */ + oracleConnectionType?: OracleConnectionType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + sslMode?: SSLMode; + /** + * Protocol ( Connection Argument ) to connect to Presto. + */ + protocol?: string; + /** + * Verify ( Connection Argument for SSL ) to connect to Presto. + * + * Verify ( Connection Argument for SSL ) to connect to Trino. + */ + verify?: string; + /** + * Salesforce Organization ID is the unique identifier for your Salesforce identity + */ + organizationId?: string; + /** + * API version of the Salesforce instance + */ + salesforceApiVersion?: string; + /** + * Domain of Salesforce instance + */ + salesforceDomain?: string; + /** + * Salesforce Security Token. + */ + securityToken?: string; + /** + * Salesforce Object Name. + */ + sobjectName?: string; + /** + * If the Snowflake URL is https://xyz1234.us-east-1.gcp.snowflakecomputing.com, then the + * account is xyz1234.us-east-1.gcp + * + * Specifies an account string to override the default account string defined for the + * database user. Accounts are used by the database for workload management and resource + * usage monitoring. + */ + account?: string; + /** + * Optional configuration for ingestion to keep the client session active in case the + * ingestion process runs for longer durations. + */ + clientSessionKeepAlive?: boolean; + /** + * Optional configuration for ingestion of TRANSIENT tables, By default, it will skip the + * TRANSIENT tables. + */ + includeTransientTables?: boolean; + /** + * Connection to Snowflake instance via Private Key + */ + privateKey?: string; + /** + * Session query tag used to monitor usage on snowflake. To use a query tag snowflake user + * should have enough privileges to alter the session. + */ + queryTag?: string; + /** + * Snowflake Role. + */ + role?: string; + /** + * Snowflake Passphrase Key used with Private Key + */ + snowflakePrivatekeyPassphrase?: string; + /** + * Snowflake warehouse. + */ + warehouse?: string; + /** + * Proxies for the connection to Trino data source + */ + proxies?: { [key: string]: string }; + /** + * Pinot Controller Host and Port of the data source. + */ + pinotControllerHost?: string; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + /** + * Couchbase connection Bucket options. + */ + bucket?: string; + /** + * Hostname of the Couchbase service. + */ + hostport?: string; + /** + * Enable dataflow for ingestion + */ + dataflows?: boolean; + /** + * Custom filter for dataflows + */ + dataflowsCustomFilter?: { [key: string]: any } | string; + /** + * Enable datatables for ingestion + */ + datatables?: boolean; + /** + * Custom filter for datatables + */ + dataTablesCustomFilter?: { [key: string]: any } | string; + /** + * Enable report for ingestion + */ + reports?: boolean; + /** + * Custom filter for reports + */ + reportsCustomFilter?: { [key: string]: any } | string; + /** + * Hostname of SAS Viya deployment. + */ + serverHost?: string; + /** + * Table property to look for the Owner. + */ + ownershipProperty?: string; + /** + * Specifies additional data needed by a logon mechanism, such as a secure token, + * Distinguished Name, or a domain/realm name. LOGDATA values are specific to each logon + * mechanism. + */ + logdata?: string; + /** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ + logmech?: Logmech; + /** + * Specifies the transaction mode for the connection + */ + tmode?: TransactionMode; + /** + * Client SSL/TLS settings. + */ + tls?: SSLTLSSettings; + /** + * basic.auth.user.info schema registry config property, Client HTTP credentials in the form + * of username:password. + */ + basicAuthUserInfo?: string; + /** + * Kafka bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + * + * Redpanda bootstrap servers. add them in comma separated values ex: host1:9092,host2:9092 + */ + bootstrapServers?: string; + /** + * Confluent Kafka Consumer Config. From + * https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md + * + * Confluent Redpanda Consumer Config + */ + consumerConfig?: { [key: string]: any }; + /** + * sasl.mechanism Consumer Config property + */ + saslMechanism?: SaslMechanismType; + /** + * sasl.password consumer config property + */ + saslPassword?: string; + /** + * sasl.username consumer config property + */ + saslUsername?: string; + /** + * Confluent Kafka Schema Registry Config. From + * https://docs.confluent.io/5.5.1/clients/confluent-kafka-python/index.html#confluent_kafka.schema_registry.SchemaRegistryClient + * + * Confluent Redpanda Schema Registry Config. + */ + schemaRegistryConfig?: { [key: string]: any }; + /** + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + */ + schemaRegistrySSL?: SchemaRegistrySSLClass; + /** + * Schema Registry Topic Suffix Name. The suffix to be appended to the topic name to get + * topic schema from registry. + */ + schemaRegistryTopicSuffixName?: string; + /** + * Confluent Kafka Schema Registry URL. + * + * Confluent Redpanda Schema Registry URL. + */ + schemaRegistryURL?: string; + /** + * security.protocol consumer config property + * + * Kafka security protocol config + */ + securityProtocol?: KafkaSecurityProtocol; + /** + * Enable encryption for the Amundsen Neo4j Connection. + */ + encrypted?: boolean; + /** + * Maximum connection lifetime for the Amundsen Neo4j Connection. + */ + maxConnectionLifeTime?: number; + /** + * Enable SSL validation for the Amundsen Neo4j Connection. + */ + validateSSL?: boolean; + /** + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * List of entities that you need to reindex + */ + entities?: string[]; + recreateIndex?: boolean; + runMode?: RunMode; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: ConfigElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * service type of the data source. + */ + databaseServiceName?: string[]; + /** + * Name of the Entity Type available in Atlas. + */ + entity_type?: string; + /** + * service type of the messaging source + * + * Name of the Kafka Messaging Service associated with this KafkaConnect Pipeline Service. + * e.g. local_kafka + */ + messagingServiceName?: string[] | string; + /** + * Custom OpenMetadata Classification name for alation tags. + */ + alationTagClassificationName?: string; + /** + * Specifies if hidden datasources should be included while ingesting. + */ + includeHiddenDatasources?: boolean; + /** + * Specifies if undeployed datasources should be included while ingesting. + */ + includeUndeployedDatasources?: boolean; + /** + * Specifies if Dashboards are to be ingested while running the ingestion job. + */ + ingestDashboards?: boolean; + /** + * Specifies if Datasources are to be ingested while running the ingestion job. + */ + ingestDatasources?: boolean; + /** + * Specifies if Domains are to be ingested while running the ingestion job. + */ + ingestDomains?: boolean; + /** + * Specifies if Knowledge Articles are to be ingested while running the ingestion job. + */ + ingestKnowledgeArticles?: boolean; + /** + * Specifies if Users and Groups are to be ingested while running the ingestion job. + */ + ingestUsersAndGroups?: boolean; + datasourceLinks?: { [key: string]: string }; + /** + * Pipeline Service Number Of Status + */ + numberOfStatus?: number; + /** + * Fivetran API Secret. + */ + apiSecret?: string; + /** + * Fivetran API Limit For Pagination. + */ + limit?: number; + /** + * URL to the Dagster instance + * + * DBT cloud Access URL. + */ + host?: string; + /** + * Connection Time Limit Between OM and Dagster Graphql API in second + */ + timeout?: number; + /** + * We support username/password or client certificate authentication + */ + nifiConfig?: NifiCredentialsConfiguration; + /** + * Spline UI Host & Port. + */ + uiHostPort?: string; + /** + * service type of the messaging source + */ + brokersUrl?: string; + /** + * consumer group name + */ + consumerGroupName?: string; + /** + * initial Kafka consumer offset + */ + consumerOffsets?: InitialConsumerOffsets; + /** + * max allowed wait time + */ + poolTimeout?: number; + /** + * SASL Configuration details. + */ + saslConfig?: SASLClientConfig; + /** + * max allowed inactivity time + */ + sessionTimeout?: number; + /** + * topic from where Open lineage events will be pulled + */ + topicName?: string; + /** + * We support username/password or No Authentication + */ + KafkaConnectConfig?: UsernamePasswordAuthentication; + /** + * ID of your DBT cloud account + */ + accountId?: string; + /** + * DBT cloud Metadata API URL. + */ + discoveryAPI?: string; + /** + * List of IDs of your DBT cloud jobs seperated by comma `,` + */ + jobIds?: string[]; + /** + * List of IDs of your DBT cloud projects seperated by comma `,` + */ + projectIds?: string[]; + /** + * The name of your azure data factory. + */ + factory_name?: string; + /** + * The name of your resource group the data factory is associated with. + */ + resource_group_name?: string; + /** + * Number of days in the past to filter pipeline runs. + */ + run_filter_days?: number; + /** + * The azure subscription identifier. + */ + subscription_id?: string; + /** + * Mlflow Model registry backend. E.g., + * mysql+pymysql://mlflow:password@localhost:3307/experiments + */ + registryUri?: string; + /** + * Mlflow Experiment tracking URI. E.g., http://localhost:5000 + */ + trackingUri?: string; + /** + * location/region of google cloud project + */ + location?: string; + /** + * Bucket Names of the data source. + */ + bucketNames?: string[]; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs?: number; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; +} + +/** + * We support username/password or No Authentication + * + * username/password auth + */ +export interface UsernamePasswordAuthentication { + /** + * KafkaConnect password to authenticate to the API. + */ + password?: string; + /** + * KafkaConnect user to authenticate to the API. + */ + username?: string; +} + +/** + * Authentication mode to connect to hive. + */ +export enum AuthEnum { + Basic = "BASIC", + Custom = "CUSTOM", + Gssapi = "GSSAPI", + Jwt = "JWT", + Kerberos = "KERBEROS", + LDAP = "LDAP", + None = "NONE", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * Authentication mode to connect to Impala. + */ +export enum AuthMechanismEnum { + Gssapi = "GSSAPI", + Jwt = "JWT", + LDAP = "LDAP", + Nosasl = "NOSASL", + Plain = "PLAIN", +} + +/** + * OpenMetadata Server Authentication Provider. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Types of methods used to authenticate to the tableau instance + * + * Basic Auth Credentials + * + * Access Token Auth Credentials + * + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + * + * Types of methods used to authenticate to the alation instance + * + * API Access Token Auth Credentials + * + * Basic Auth Configuration for ElasticSearch + * + * SSL Certificates By Path + */ +export interface AuthenticationTypeForTableau { + /** + * Password to access the service. + * + * Password to connect to source. + * + * Elastic Search Password for Login + */ + password?: string; + /** + * Username to access the service. + * + * Elastic Search Username for Login + */ + username?: string; + /** + * Personal Access Token Name. + */ + personalAccessTokenName?: string; + /** + * Personal Access Token Secret. + */ + personalAccessTokenSecret?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; + /** + * JWT to connect to source. + */ + jwt?: string; + /** + * Access Token for the API + */ + accessToken?: string; + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * AWS credentials configs. + */ +export interface AWSCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Database Authentication types not requiring config. + */ +export enum NoConfigAuthenticationTypes { + OAuth2 = "OAuth2", +} + +export interface AuthenticationModeObject { + /** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ + authentication?: Authentication; + /** + * Connection Timeout from Connection String for AzureSQL. + * + * Connection Timeout from Connection String for Azure Synapse. + */ + connectionTimeout?: number; + /** + * Encrypt from Connection String for AzureSQL. + * + * Encrypt from Connection String for Azure Synapse. + */ + encrypt?: boolean; + /** + * Trust Server Certificate from Connection String for AzureSQL. + * + * Trust Server Certificate from Connection String for Azure Synapse. + */ + trustServerCertificate?: boolean; + [property: string]: any; +} + +/** + * Authentication from Connection String for AzureSQL. + * + * Authentication from Connection String for Azure Synapse. + */ +export enum Authentication { + ActiveDirectoryIntegrated = "ActiveDirectoryIntegrated", + ActiveDirectoryPassword = "ActiveDirectoryPassword", +} + +/** + * Iceberg Catalog configuration. + */ +export interface IcebergCatalog { + /** + * Catalog connection configuration, depending on your catalog type. + */ + connection: Connection; + /** + * Custom Database Name for your Iceberg Service. If not set it will be 'default'. + */ + databaseName?: string; + /** + * Catalog Name. + */ + name: string; + /** + * Warehouse Location. Used to specify a custom warehouse location if needed. + */ + warehouseLocation?: string; +} + +/** + * Catalog connection configuration, depending on your catalog type. + * + * Iceberg Hive Catalog configuration. + * + * Iceberg REST Catalog configuration. + * + * Iceberg Glue Catalog configuration. + * + * Iceberg DynamoDB Catalog configuration. + */ +export interface Connection { + fileSystem?: IcebergFileSystem; + /** + * Uri to the Hive Metastore. Example: 'thrift://localhost:9083' + * + * Uri to the REST catalog. Example: 'http://rest-catalog/ws/' + */ + uri?: string; + /** + * OAuth2 credential to use when initializing the catalog. + */ + credential?: OAuth2Credential; + /** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ + sigv4?: Sigv4; + /** + * SSL Configuration details. + */ + ssl?: SSLCertificatesByPath; + /** + * Berarer token to use for the 'Authorization' header. + */ + token?: string; + awsConfig?: AWSCredentials; + /** + * DynamoDB table name. + */ + tableName?: string; +} + +/** + * OAuth2 credential to use when initializing the catalog. + */ +export interface OAuth2Credential { + /** + * OAuth2 Client ID. + */ + clientId?: string; + /** + * OAuth2 Client Secret + */ + clientSecret?: string; +} + +/** + * Iceberg File System configuration, based on where the Iceberg Warehouse is located. + */ +export interface IcebergFileSystem { + type?: Credentials | null; +} + +/** + * AWS credentials configs. + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface Credentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Sign requests to the REST Server using AWS SigV4 protocol. + */ +export interface Sigv4 { + /** + * The service signing name to use when SigV4 signs a request. + */ + signingName?: string; + /** + * AWS Region to use when SigV4 signs a request. + */ + signingRegion?: string; + [property: string]: any; +} + +/** + * SSL Configuration details. + * + * SSL Certificates By Path + */ +export interface SSLCertificatesByPath { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; +} + +/** + * Qlik Authentication Certificate By Values + * + * Qlik Authentication Certificate File Path + */ +export interface QlikCertificatesBy { + sslConfig?: SchemaRegistrySSLClass; + /** + * Client Certificate + */ + clientCertificate?: string; + /** + * Client Key Certificate. + */ + clientKeyCertificate?: string; + /** + * Root Certificate. + */ + rootCertificate?: string; + [property: string]: any; +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface SchemaRegistrySSLClass { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * Available sources to fetch the metadata. + * + * Deltalake Metastore configuration. + * + * DeltaLake Storage Connection Config + * + * Available sources to fetch files. + * + * Local config source where no extra information needs to be sent. + * + * Azure Datalake Storage will ingest files in container + * + * DataLake GCS storage will ingest metadata of files + * + * DataLake S3 bucket will ingest metadata of files in bucket + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface DeltaLakeConfigurationSource { + /** + * pySpark App Name. + */ + appName?: string; + /** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + */ + connection?: ConnectionClass; + /** + * Bucket Name of the data source. + */ + bucketName?: string; + /** + * Prefix of the data source. + */ + prefix?: string; + securityConfig?: SecurityConfigClass; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Metastore connection configuration, depending on your metastore type. + * + * Available sources to fetch files. + * + * DataLake S3 bucket will ingest metadata of files in bucket + */ +export interface ConnectionClass { + /** + * Thrift connection to the metastore service. E.g., localhost:9083 + */ + metastoreHostPort?: string; + /** + * Driver class name for JDBC metastore. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionDriverName sparks property. E.g., + * org.mariadb.jdbc.Driver + */ + driverName?: string; + /** + * Class path to JDBC driver required for JDBC connection. The value will be mapped as + * spark.driver.extraClassPath sparks property. + */ + jdbcDriverClassPath?: string; + /** + * JDBC connection to the metastore database. E.g., jdbc:mysql://localhost:3306/demo_hive + */ + metastoreDb?: string; + /** + * Password to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionPassword sparks property. + */ + password?: string; + /** + * Username to use against metastore database. The value will be mapped as + * spark.hadoop.javax.jdo.option.ConnectionUserName sparks property. + */ + username?: string; + /** + * Local path for the local file with metastore data. E.g., /tmp/metastore.db + */ + metastoreFilePath?: string; + securityConfig?: AWSCredentials; +} + +/** + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + * + * GCP credentials configs. + * + * GCP Credentials + * + * AWS credentials configs. + */ +export interface SecurityConfigClass { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} + +/** + * Choose between API or database connection fetch metadata from superset. + * + * Superset API Connection Config + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + * + * Choose between Database connection or HDB User Store connection. + * + * Sap Hana Database SQL Connection Config + * + * Sap Hana Database HDB User Store Connection Config + * + * Choose between mysql and postgres connection for alation database + * + * Underlying database connection. See + * https://airflow.apache.org/docs/apache-airflow/stable/howto/set-up-database.html for + * supported backends. + * + * Lineage Backend Connection Config + * + * SQLite Database Connection Config + * + * Matillion Auth Configuration + * + * Matillion ETL Auth Config + */ +export interface ConnectionObject { + /** + * Password for Superset. + * + * Password to connect to Hana. + * + * Password to connect to SQLite. Blank for in-memory database. + * + * Password to connect to the Matillion. + */ + password?: string; + /** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ + provider?: Provider; + /** + * SSL Configuration details. + */ + sslConfig?: ConnectionSSLConfig; + /** + * Username for Superset. + * + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + * + * Username to connect to Hana. This user should have privileges to read all the metadata. + * + * Username to connect to SQLite. Blank for in-memory database. + * + * Username to connect to the Matillion. This user should have privileges to read all the + * metadata in Matillion. + */ + username?: string; + verifySSL?: VerifySSL; + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + * + * Database of the data source. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + * + * Host and port of the Hana service. + * + * Host and port of the SQLite service. Blank for in-memory database. + * + * Matillion Host + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: ConnectionScheme; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: ConnectionType; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + * + * Database Schema of the data source. This is an optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; + /** + * HDB Store User Key generated from the command `hdbuserstore SET + * ` + */ + userKey?: string; + /** + * How to run the SQLite database. :memory: by default. + */ + databaseMode?: string; + supportsViewLineageExtraction?: boolean; + [property: string]: any; +} + +/** + * Choose Auth Config Type. + * + * Common Database Connection Config + * + * IAM Auth Database Connection Config + * + * Azure Database Connection Config + */ +export interface AuthConfigurationType { + /** + * Password to connect to source. + */ + password?: string; + awsConfig?: AWSCredentials; + azureConfig?: AzureCredentials; +} + +/** + * Authentication provider for the Superset service. For basic user/password authentication, + * the default value `db` can be used. This parameter is used internally to connect to + * Superset's REST API. + */ +export enum Provider { + DB = "db", + LDAP = "ldap", +} + +/** + * Storage config to store sample data + */ +export interface SampleDataStorageConfig { + config?: DataStorageConfig; +} + +/** + * Storage config to store sample data + */ +export interface DataStorageConfig { + /** + * Bucket Name + */ + bucketName?: string; + /** + * Provide the pattern of the path where the generated sample data file needs to be stored. + */ + filePathPattern?: string; + /** + * When this field enabled a single parquet file will be created to store sample data, + * otherwise we will create a new file per day + */ + overwriteData?: boolean; + /** + * Prefix of the data source. + */ + prefix?: string; + storageConfig?: AwsCredentials; + [property: string]: any; +} + +/** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion?: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum ConnectionScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", + SqlitePysqlite = "sqlite+pysqlite", +} + +/** + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + */ +export interface ConnectionSSLConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +/** + * SSL Mode to connect to database. + */ +export enum SSLMode { + Allow = "allow", + Disable = "disable", + Prefer = "prefer", + Require = "require", + VerifyCA = "verify-ca", + VerifyFull = "verify-full", +} + +/** + * Service Type + * + * Service type. + */ +export enum ConnectionType { + Backend = "Backend", + MatillionETL = "MatillionETL", + Mysql = "Mysql", + Postgres = "Postgres", + SQLite = "SQLite", +} + +/** + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + * + * Flag to verify SSL Certificate for OpenMetadata Server. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} + +/** + * initial Kafka consumer offset + */ +export enum InitialConsumerOffsets { + Earliest = "earliest", + Latest = "latest", +} + +/** + * GCP credentials configs. + * + * GCP Credentials + * + * Azure Cloud Credentials + * + * Available sources to fetch metadata. + * + * Azure Credentials + */ +export interface GCPCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig?: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface ConfigElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Credentials to extract the .lkml files from a repository. This is required to get all the + * lineage and definitions. + * + * Do not set any credentials. Note that credentials are required to extract .lkml views and + * their lineage. + * + * Credentials for a GitHub repository + * + * Credentials for a BitBucket repository + * + * Credentials for a Gitlab repository + */ +export interface GitHubCredentials { + repositoryName?: string; + repositoryOwner?: string; + token?: string; + /** + * Credentials Type + */ + type?: GitHubCredentialsType; + /** + * Main production branch of the repository. E.g., `main` + */ + branch?: string; +} + +/** + * Credentials Type + * + * GitHub Credentials type + * + * BitBucket Credentials type + * + * Gitlab Credentials type + */ +export enum GitHubCredentialsType { + BitBucket = "BitBucket", + GitHub = "GitHub", + Gitlab = "Gitlab", +} + +/** + * The authentication method that the user uses to sign in. + */ +export enum IdentityType { + Anonymous = "ANONYMOUS", + Iam = "IAM", + Quicksight = "QUICKSIGHT", +} + +/** + * Specifies the logon authentication method. Possible values are TD2 (the default), JWT, + * LDAP, KRB5 for Kerberos, or TDNEGO + */ +export enum Logmech { + Custom = "CUSTOM", + Jwt = "JWT", + Krb5 = "KRB5", + LDAP = "LDAP", + Td2 = "TD2", + Tdnego = "TDNEGO", +} + +/** + * Hive Metastore Connection Details + * + * Postgres Database Connection Config + * + * Mysql Database Connection Config + */ +export interface HiveMetastoreConnectionDetails { + /** + * Choose Auth Config Type. + */ + authType?: AuthConfigurationType; + /** + * Custom OpenMetadata Classification name for Postgres policy tags. + */ + classificationName?: string; + connectionArguments?: { [key: string]: any }; + connectionOptions?: { [key: string]: string }; + /** + * Database of the data source. This is optional parameter, if you would like to restrict + * the metadata reading to a single database. When left blank, OpenMetadata Ingestion + * attempts to scan all the databases. + */ + database?: string; + /** + * Host and port of the source service. + * + * Host and port of the MySQL service. + */ + hostPort?: string; + /** + * Ingest data from all databases in Postgres. You can use databaseFilterPattern on top of + * this. + */ + ingestAllDatabases?: boolean; + sampleDataStorageConfig?: SampleDataStorageConfig; + /** + * SQLAlchemy driver scheme options. + */ + scheme?: HiveMetastoreConnectionDetailsScheme; + /** + * SSL Configuration details. + */ + sslConfig?: SchemaRegistrySSLClass; + sslMode?: SSLMode; + supportsDatabase?: boolean; + supportsDataDiff?: boolean; + supportsDBTExtraction?: boolean; + supportsLineageExtraction?: boolean; + supportsMetadataExtraction?: boolean; + supportsProfiler?: boolean; + supportsQueryComment?: boolean; + supportsUsageExtraction?: boolean; + /** + * Service Type + */ + type?: HiveMetastoreConnectionDetailsType; + /** + * Username to connect to Postgres. This user should have privileges to read all the + * metadata in Postgres. + * + * Username to connect to MySQL. This user should have privileges to read all the metadata + * in Mysql. + */ + username?: string; + /** + * Optional name to give to the database in OpenMetadata. If left blank, we will use default + * as the database name. + */ + databaseName?: string; + /** + * Database Schema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single schema. When left blank, OpenMetadata Ingestion + * attempts to scan all the schemas. + */ + databaseSchema?: string; +} + +/** + * SQLAlchemy driver scheme options. + */ +export enum HiveMetastoreConnectionDetailsScheme { + MysqlPymysql = "mysql+pymysql", + PgspiderPsycopg2 = "pgspider+psycopg2", + PostgresqlPsycopg2 = "postgresql+psycopg2", +} + +/** + * Service Type + * + * Service type. + */ +export enum HiveMetastoreConnectionDetailsType { + Mysql = "Mysql", + Postgres = "Postgres", +} + +/** + * We support username/password or client certificate authentication + * + * username/password auth + * + * client certificate auth + */ +export interface NifiCredentialsConfiguration { + /** + * Nifi password to authenticate to the API. + */ + password?: string; + /** + * Nifi user to authenticate to the API. + */ + username?: string; + /** + * Boolean marking if we need to verify the SSL certs for Nifi. False by default. + */ + verifySSL?: boolean; + /** + * Path to the root CA certificate + */ + certificateAuthorityPath?: string; + /** + * Path to the client certificate + */ + clientCertificatePath?: string; + /** + * Path to the client key + */ + clientkeyPath?: string; +} + +/** + * Connect with oracle by either passing service name or database schema name. + */ +export interface OracleConnectionType { + /** + * databaseSchema of the data source. This is optional parameter, if you would like to + * restrict the metadata reading to a single databaseSchema. When left blank, OpenMetadata + * Ingestion attempts to scan all the databaseSchema. + */ + databaseSchema?: string; + /** + * The Oracle Service name is the TNS alias that you give when you remotely connect to your + * database. + */ + oracleServiceName?: string; + /** + * Pass the full constructed TNS string, e.g., + * (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1530)))(CONNECT_DATA=(SID=MYSERVICENAME))). + */ + oracleTNSConnection?: string; + [property: string]: any; +} + +/** + * Source to get the .pbit files to extract lineage information + * + * Local config source where no extra information needs to be sent. + * + * Azure storage config for pbit files + * + * GCS storage config for pbit files + * + * S3 storage config for pbit files + */ +export interface PowerBIPbitFilesSource { + /** + * Directory path for the pbit files + */ + path?: string; + /** + * pbit File Configuration type + */ + pbitFileConfigType?: PbitFileConfigType; + /** + * Path of the folder where the .pbit files will be unzipped and datamodel schema will be + * extracted + */ + pbitFilesExtractDir?: string; + prefixConfig?: BucketDetails; + securityConfig?: SecurityConfigClass; +} + +/** + * pbit File Configuration type + */ +export enum PbitFileConfigType { + Azure = "azure", + Gcs = "gcs", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the .pbit files are stored + */ +export interface BucketDetails { + /** + * Name of the bucket where the .pbit files are stored + */ + bucketName?: string; + /** + * Path of the folder where the .pbit files are stored + */ + objectPrefix?: string; +} + +/** + * This schema publisher run modes. + */ +export enum RunMode { + Batch = "batch", + Stream = "stream", +} + +/** + * SASL Configuration details. + * + * SASL client configuration. + */ +export interface SASLClientConfig { + /** + * SASL security mechanism + */ + saslMechanism?: SaslMechanismType; + /** + * The SASL authentication password. + */ + saslPassword?: string; + /** + * The SASL authentication username. + */ + saslUsername?: string; +} + +/** + * sasl.mechanism Consumer Config property + * + * SASL Mechanism consumer config property + * + * SASL security mechanism + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * Secrets Manager Loader for the Pipeline Service Client. + * + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * Secrets Manager Provider for OpenMetadata Server. + * + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} + +/** + * OpenMetadata Client security configuration. + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * security.protocol consumer config property + * + * Kafka security protocol config + */ +export enum KafkaSecurityProtocol { + Plaintext = "PLAINTEXT", + SSL = "SSL", + SaslPlaintext = "SASL_PLAINTEXT", + SaslSSL = "SASL_SSL", +} + +/** + * Client SSL configuration + * + * SSL Configuration details. + * + * Schema Registry SSL Config. Configuration for enabling SSL for the Schema Registry + * connection. + * + * SSL Configuration for OpenMetadata Server + * + * OpenMetadata Client configured to validate SSL certificates. + * + * SSL Config + */ +export interface SSLConfigObject { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; + /** + * SSL Certificates + */ + certificates?: SSLCertificates; + [property: string]: any; +} + +/** + * SSL Certificates + * + * SSL Configuration details. + * + * SSL Certificates By Path + * + * SSL Certificates By Values + */ +export interface SSLCertificates { + /** + * CA Certificate Path + */ + caCertPath?: string; + /** + * Client Certificate Path + */ + clientCertPath?: string; + /** + * Private Key Path + */ + privateKeyPath?: string; + /** + * CA Certificate Value + */ + caCertValue?: string; + /** + * Client Certificate Value + */ + clientCertValue?: string; + /** + * Private Key Value + */ + privateKeyValue?: string; + /** + * Staging Directory Path + */ + stagingDir?: string; +} + +/** + * Client SSL/TLS settings. + */ +export enum SSLTLSSettings { + DisableTLS = "disable-tls", + IgnoreCertificate = "ignore-certificate", + ValidateCertificate = "validate-certificate", +} + +/** + * Specifies the transaction mode for the connection + */ +export enum TransactionMode { + ANSI = "ANSI", + Default = "DEFAULT", + Tera = "TERA", +} + +/** + * REST API Type + * + * REST API type + * + * Service Type + * + * Looker service type + * + * Metabase service type + * + * PowerBI service type + * + * PowerBIReportServer service type + * + * Redash service type + * + * Superset service type + * + * Tableau service type + * + * Mode service type + * + * Custom dashboard service type + * + * service type + * + * QuickSight service type + * + * Qlik sense service type + * + * Lightdash service type + * + * MicroStrategy service type + * + * Qlik Cloud service type + * + * Sigma service type + * + * Service type. + * + * Custom database service type + * + * Kafka service type + * + * Redpanda service type + * + * Custom messaging service type + * + * Amundsen service type + * + * Metadata to Elastic Search type + * + * OpenMetadata service type + * + * Custom pipeline service type + * + * Custom Ml model service type + * + * S3 service type + * + * ADLS service type + * + * Gcs service type + * + * Custom storage service type + * + * ElasticSearch Type + * + * ElasticSearch service type + * + * OpenSearch service type + * + * Custom search service type + */ +export enum RESTType { + Adls = "ADLS", + Airbyte = "Airbyte", + Airflow = "Airflow", + Alation = "Alation", + AlationSink = "AlationSink", + Amundsen = "Amundsen", + Athena = "Athena", + Atlas = "Atlas", + AzureSQL = "AzureSQL", + BigQuery = "BigQuery", + BigTable = "BigTable", + Clickhouse = "Clickhouse", + Couchbase = "Couchbase", + CustomDashboard = "CustomDashboard", + CustomDatabase = "CustomDatabase", + CustomMessaging = "CustomMessaging", + CustomMlModel = "CustomMlModel", + CustomPipeline = "CustomPipeline", + CustomSearch = "CustomSearch", + CustomStorage = "CustomStorage", + DBTCloud = "DBTCloud", + Dagster = "Dagster", + DataFactory = "DataFactory", + Databricks = "Databricks", + DatabricksPipeline = "DatabricksPipeline", + Datalake = "Datalake", + Db2 = "Db2", + DeltaLake = "DeltaLake", + DomoDashboard = "DomoDashboard", + DomoDatabase = "DomoDatabase", + DomoPipeline = "DomoPipeline", + Doris = "Doris", + Druid = "Druid", + DynamoDB = "DynamoDB", + ElasticSearch = "ElasticSearch", + Exasol = "Exasol", + Fivetran = "Fivetran", + Flink = "Flink", + Gcs = "GCS", + Glue = "Glue", + GluePipeline = "GluePipeline", + Greenplum = "Greenplum", + Hive = "Hive", + Iceberg = "Iceberg", + Impala = "Impala", + Kafka = "Kafka", + KafkaConnect = "KafkaConnect", + Kinesis = "Kinesis", + Lightdash = "Lightdash", + Looker = "Looker", + MariaDB = "MariaDB", + Matillion = "Matillion", + Metabase = "Metabase", + MetadataES = "MetadataES", + MicroStrategy = "MicroStrategy", + Mlflow = "Mlflow", + Mode = "Mode", + MongoDB = "MongoDB", + Mssql = "Mssql", + Mysql = "Mysql", + Nifi = "Nifi", + OpenLineage = "OpenLineage", + OpenMetadata = "OpenMetadata", + OpenSearch = "OpenSearch", + Oracle = "Oracle", + PinotDB = "PinotDB", + Postgres = "Postgres", + PowerBI = "PowerBI", + PowerBIReportServer = "PowerBIReportServer", + Presto = "Presto", + QlikCloud = "QlikCloud", + QlikSense = "QlikSense", + QuickSight = "QuickSight", + REST = "Rest", + Redash = "Redash", + Redpanda = "Redpanda", + Redshift = "Redshift", + S3 = "S3", + SAS = "SAS", + SQLite = "SQLite", + SageMaker = "SageMaker", + Salesforce = "Salesforce", + SapERP = "SapErp", + SapHana = "SapHana", + Sigma = "Sigma", + SingleStore = "SingleStore", + Sklearn = "Sklearn", + Snowflake = "Snowflake", + Spark = "Spark", + Spline = "Spline", + Stitch = "Stitch", + Superset = "Superset", + Synapse = "Synapse", + Tableau = "Tableau", + Teradata = "Teradata", + Trino = "Trino", + UnityCatalog = "UnityCatalog", + VertexAI = "VertexAI", + Vertica = "Vertica", +} + +/** + * Additional connection configuration. + */ +export interface SourceConfig { + config?: Pipeline; +} + +/** + * DatabaseService Metadata Pipeline Configuration. + * + * DatabaseService Query Usage Pipeline Configuration. + * + * DatabaseService Query Lineage Pipeline Configuration. + * + * DashboardService Metadata Pipeline Configuration. + * + * MessagingService Metadata Pipeline Configuration. + * + * DatabaseService Profiler Pipeline Configuration. + * + * DatabaseService AutoClassification & Auto Classification Pipeline Configuration. + * + * PipelineService Metadata Pipeline Configuration. + * + * MlModelService Metadata Pipeline Configuration. + * + * StorageService Metadata Pipeline Configuration. + * + * SearchService Metadata Pipeline Configuration. + * + * TestSuite Pipeline Configuration. + * + * Data Insight Pipeline Configuration. + * + * DBT Pipeline Configuration. + * + * Application Pipeline Configuration. + * + * ApiService Metadata Pipeline Configuration. + */ +export interface Pipeline { + /** + * Regex to only fetch databases that matches the pattern. + */ + databaseFilterPattern?: FilterPattern; + /** + * Optional configuration to toggle the DDL Statements ingestion. + */ + includeDDL?: boolean; + /** + * Set the 'Include Owners' toggle to control whether to include owners to the ingested + * entity if the owner email matches with a user stored in the OM server as part of metadata + * ingestion. If the ingested entity already exists and has an owner, the owner will not be + * overwritten. + * + * Enabling a flag will replace the current owner with a new owner from the source during + * metadata ingestion, if the current owner is null. It is recommended to keep the flag + * enabled to obtain the owner information during the first metadata ingestion. + */ + includeOwners?: boolean; + /** + * Optional configuration to toggle the Stored Procedures ingestion. + */ + includeStoredProcedures?: boolean; + /** + * Optional configuration to turn off fetching metadata for tables. + */ + includeTables?: boolean; + /** + * Optional configuration to toggle the tags ingestion. + */ + includeTags?: boolean; + /** + * Optional configuration to turn off fetching metadata for views. + */ + includeViews?: boolean; + /** + * Use incremental Metadata extraction after the first execution. This is commonly done by + * getting the changes from Audit tables on the supporting databases. + */ + incremental?: IncrementalMetadataExtractionConfiguration; + /** + * Optional configuration to soft delete stored procedures in OpenMetadata if the source + * stored procedures are deleted. Also, if the stored procedures is deleted, all the + * associated entities like lineage, etc., with that stored procedures will be deleted + */ + markDeletedStoredProcedures?: boolean; + /** + * This is an optional configuration for enabling soft deletion of tables. When this option + * is enabled, only tables that have been deleted from the source will be soft deleted, and + * this will apply solely to the schema that is currently being ingested via the pipeline. + * Any related entities such as test suites or lineage information that were associated with + * those tables will also be deleted. + */ + markDeletedTables?: boolean; + /** + * Set the 'Override Metadata' toggle to control whether to override the existing metadata + * in the OpenMetadata server with the metadata fetched from the source. If the toggle is + * set to true, the metadata fetched from the source will override the existing metadata in + * the OpenMetadata server. If the toggle is set to false, the metadata fetched from the + * source will not override the existing metadata in the OpenMetadata server. This is + * applicable for fields like description, tags, owner and displayName + */ + overrideMetadata?: boolean; + /** + * Configuration to tune how far we want to look back in query logs to process Stored + * Procedures results. + * + * Configuration to tune how far we want to look back in query logs to process usage data. + * + * Configuration to tune how far we want to look back in query logs to process lineage data. + */ + queryLogDuration?: number; + /** + * Configuration to set the timeout for parsing the query in seconds. + */ + queryParsingTimeoutLimit?: number; + /** + * Regex to only fetch tables or databases that matches the pattern. + */ + schemaFilterPattern?: FilterPattern; + /** + * Regex exclude tables or databases that matches the pattern. + */ + tableFilterPattern?: FilterPattern; + /** + * Number of Threads to use in order to parallelize Table ingestion. + * + * Number of Threads to use in order to parallelize lineage ingestion. + */ + threads?: number; + /** + * Pipeline type + */ + type?: ConfigType; + /** + * Regex will be applied on fully qualified name (e.g + * service_name.db_name.schema_name.table_name) instead of raw name (e.g. table_name) + */ + useFqnForFiltering?: boolean; + /** + * Configuration the condition to filter the query history. + */ + filterCondition?: string; + /** + * Configuration to set the file path for query logs + */ + queryLogFilePath?: string; + /** + * Configuration to set the limit for query logs + */ + resultLimit?: number; + /** + * Temporary file name to store the query logs before processing. Absolute file path + * required. + */ + stageFileLocation?: string; + /** + * Set the 'Override View Lineage' toggle to control whether to override the existing view + * lineage. + */ + overrideViewLineage?: boolean; + /** + * Configuration to set the timeout for parsing the query in seconds. + */ + parsingTimeoutLimit?: number; + /** + * Set the 'Process Query Lineage' toggle to control whether to process query lineage. + */ + processQueryLineage?: boolean; + /** + * Set the 'Process Stored ProcedureLog Lineage' toggle to control whether to process stored + * procedure lineage. + */ + processStoredProcedureLineage?: boolean; + /** + * Set the 'Process View Lineage' toggle to control whether to process view lineage. + */ + processViewLineage?: boolean; + /** + * Regex exclude or include charts that matches the pattern. + */ + chartFilterPattern?: FilterPattern; + /** + * Regex to exclude or include dashboards that matches the pattern. + */ + dashboardFilterPattern?: FilterPattern; + /** + * Regex exclude or include data models that matches the pattern. + */ + dataModelFilterPattern?: FilterPattern; + /** + * Optional configuration to toggle the ingestion of data models. + */ + includeDataModels?: boolean; + /** + * Optional Configuration to include/exclude draft dashboards. By default it will include + * draft dashboards + */ + includeDraftDashboard?: boolean; + /** + * Details required to generate Lineage + */ + lineageInformation?: LineageInformation; + /** + * Optional configuration to soft delete dashboards in OpenMetadata if the source dashboards + * are deleted. Also, if the dashboard is deleted, all the associated entities like lineage, + * etc., with that dashboard will be deleted + */ + markDeletedDashboards?: boolean; + /** + * Optional configuration to soft delete data models in OpenMetadata if the source data + * models are deleted. Also, if the data models is deleted, all the associated entities like + * lineage, etc., with that data models will be deleted + */ + markDeletedDataModels?: boolean; + /** + * Set the 'Override Lineage' toggle to control whether to override the existing lineage. + */ + overrideLineage?: boolean; + /** + * Regex to exclude or include projects that matches the pattern. + */ + projectFilterPattern?: FilterPattern; + /** + * Option to turn on/off generating sample data during metadata extraction. + */ + generateSampleData?: boolean; + /** + * Optional configuration to soft delete topics in OpenMetadata if the source topics are + * deleted. Also, if the topic is deleted, all the associated entities like sample data, + * lineage, etc., with that topic will be deleted + */ + markDeletedTopics?: boolean; + /** + * Regex to only fetch topics that matches the pattern. + */ + topicFilterPattern?: FilterPattern; + /** + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + */ + classificationFilterPattern?: FilterPattern; + /** + * Option to turn on/off column metric computation. If enabled, profiler will compute column + * level metrics. + */ + computeColumnMetrics?: boolean; + /** + * Option to turn on/off computing profiler metrics. + */ + computeMetrics?: boolean; + /** + * Option to turn on/off table metric computation. If enabled, profiler will compute table + * level metrics. + */ + computeTableMetrics?: boolean; + /** + * Percentage of data or no. of rows used to compute the profiler metrics and run data + * quality tests + * + * Percentage of data or no. of rows we want to execute the profiler and tests on + */ + profileSample?: number; + profileSampleType?: ProfileSampleType; + /** + * Number of sample rows to ingest when 'Generate Sample Data' is enabled + */ + sampleDataCount?: number; + samplingMethodType?: SamplingMethodType; + /** + * Number of threads to use during metric computations + */ + threadCount?: number; + /** + * Profiler Timeout in Seconds + */ + timeoutSeconds?: number; + /** + * Use system tables to extract metrics. Metrics that cannot be gathered from system tables + * will use the default methods. Using system tables can be faster but requires gathering + * statistics before running (for example using the ANALYZE procedure). More information can + * be found in the documentation: https://docs.openmetadata.org/latest/profler + */ + useStatistics?: boolean; + /** + * Set the Confidence value for which you want the column to be tagged as PII. Confidence + * value ranges from 0 to 100. A higher number will yield less false positives but more + * false negatives. A lower number will yield more false positives but less false negatives. + */ + confidence?: number; + /** + * Optional configuration to automatically tag columns that might contain sensitive + * information + */ + enableAutoClassification?: boolean; + /** + * Option to turn on/off storing sample data. If enabled, we will ingest sample data for + * each table. + */ + storeSampleData?: boolean; + /** + * Optional configuration to turn off fetching lineage from pipelines. + */ + includeLineage?: boolean; + /** + * Optional configuration to toggle whether the un-deployed pipelines should be ingested or + * not. If set to false, only deployed pipelines will be ingested. + */ + includeUnDeployedPipelines?: boolean; + /** + * Optional configuration to soft delete Pipelines in OpenMetadata if the source Pipelines + * are deleted. Also, if the Pipeline is deleted, all the associated entities like lineage, + * etc., with that Pipeline will be deleted + */ + markDeletedPipelines?: boolean; + /** + * Regex exclude pipelines. + */ + pipelineFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete MlModels in OpenMetadata if the source MlModels are + * deleted. Also, if the MlModel is deleted, all the associated entities like lineage, etc., + * with that MlModels will be deleted + */ + markDeletedMlModels?: boolean; + /** + * Regex to only fetch MlModels with names matching the pattern. + */ + mlModelFilterPattern?: FilterPattern; + /** + * Regex to only fetch containers that matches the pattern. + */ + containerFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete containers in OpenMetadata if the source containers + * are deleted. Also, if the topic is deleted, all the associated entities with that + * containers will be deleted + */ + markDeletedContainers?: boolean; + storageMetadataConfigSource?: StorageMetadataConfigurationSource; + /** + * Enable the 'Include Index Template' toggle to manage the ingestion of index template data. + */ + includeIndexTemplate?: boolean; + /** + * Optional configuration to turn off fetching sample data for search index. + */ + includeSampleData?: boolean; + /** + * Optional configuration to soft delete search indexes in OpenMetadata if the source search + * indexes are deleted. Also, if the search index is deleted, all the associated entities + * like lineage, etc., with that search index will be deleted + */ + markDeletedSearchIndexes?: boolean; + /** + * No. of records of sample data we want to ingest. + */ + sampleSize?: number; + /** + * Regex to only fetch search indexes that matches the pattern. + */ + searchIndexFilterPattern?: FilterPattern; + /** + * Fully qualified name of the entity to be tested. + */ + entityFullyQualifiedName?: string; + /** + * List of test cases to be executed on the entity. If null, all test cases will be executed. + */ + testCases?: string[]; + /** + * Maximum number of events entities in a batch (Default 1000). + */ + batchSize?: number; + /** + * Certificate path to be added in configuration. The path should be local in the Ingestion + * Container. + */ + caCerts?: string; + recreateIndex?: boolean; + /** + * Region name. Required when using AWS Credentials. + */ + regionName?: string; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Connection Timeout + */ + timeout?: number; + /** + * Indicates whether to use aws credentials when connecting to OpenSearch in AWS. + */ + useAwsCredentials?: boolean; + /** + * Indicates whether to use SSL when connecting to ElasticSearch. By default, we will ignore + * SSL settings. + */ + useSSL?: boolean; + /** + * Indicates whether to verify certificates when using SSL connection to ElasticSearch. + * Ignored by default. Is set to true, make sure to send the certificates in the property + * `CA Certificates`. + */ + verifyCerts?: boolean; + /** + * Custom OpenMetadata Classification name for dbt tags. + */ + dbtClassificationName?: string; + /** + * Available sources to fetch DBT catalog and manifest files. + */ + dbtConfigSource?: DBTConfigurationSource; + /** + * Optional configuration to update the description from DBT or not + */ + dbtUpdateDescriptions?: boolean; + /** + * Application configuration + */ + appConfig?: any[] | boolean | CollateAIAppConfig | number | null | string; + /** + * Application private configuration + */ + appPrivateConfig?: PrivateConfig; + /** + * Source Python Class Name to run the application + */ + sourcePythonClass?: string; + /** + * Regex to only fetch api collections with names matching the pattern. + */ + apiCollectionFilterPattern?: FilterPattern; + /** + * Optional configuration to soft delete api collections in OpenMetadata if the source + * collections are deleted. Also, if the collection is deleted, all the associated entities + * like endpoints, etc., with that collection will be deleted + */ + markDeletedApiCollections?: boolean; +} + +/** + * Regex to only fetch databases that matches the pattern. + * + * Regex to only fetch dashboards or charts that matches the pattern. + * + * Regex to only fetch tables or databases that matches the pattern. + * + * Regex exclude tables or databases that matches the pattern. + * + * Regex exclude or include charts that matches the pattern. + * + * Regex to exclude or include dashboards that matches the pattern. + * + * Regex exclude or include data models that matches the pattern. + * + * Regex to exclude or include projects that matches the pattern. + * + * Regex to only fetch topics that matches the pattern. + * + * Regex to only compute metrics for table that matches the given tag, tiers, gloassary + * pattern. + * + * Regex exclude pipelines. + * + * Regex to only fetch MlModels with names matching the pattern. + * + * Regex to only fetch containers that matches the pattern. + * + * Regex to only fetch search indexes that matches the pattern. + * + * Regex to only fetch api collections with names matching the pattern. + */ +export interface FilterPattern { + /** + * List of strings/regex patterns to match and exclude only database entities that match. + */ + excludes?: string[]; + /** + * List of strings/regex patterns to match and include only database entities that match. + */ + includes?: string[]; +} + +/** + * Configuration for the CollateAI External Application. + * + * Configuration for the Automator External Application. + * + * No configuration needed to instantiate the Data Insights Pipeline. The logic is handled + * in the backend. + * + * Search Indexing App. + * + * This schema defines the Slack App Token Configuration + */ +export interface CollateAIAppConfig { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + filter?: string; + /** + * Patch the description if it is empty, instead of raising a suggestion + */ + patchIfEmpty?: boolean; + /** + * Application Type + */ + type?: CollateAIAppConfigType; + /** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + */ + actions?: Action[]; + /** + * Entities selected to run the automation. + */ + resources?: Resource; + backfillConfiguration?: BackfillConfiguration; + /** + * Maximum number of events processed at a time (Default 100). + * + * Maximum number of events sent in a batch (Default 100). + */ + batchSize?: number; + /** + * Recreates the DataAssets index on DataInsights. Useful if you changed a Custom Property + * Type and are facing errors. Bear in mind that recreating the index will delete your + * DataAssets and a backfill will be needed. + */ + recreateDataAssetsIndex?: boolean; + sendToAdmins?: boolean; + sendToTeams?: boolean; + /** + * Number of threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Maximum number of events sent in a batch (Default 100). + */ + payLoadSize?: number; + /** + * Number of threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to user internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * Bot Token + */ + botToken?: string; + /** + * User Token + */ + userToken?: string; +} + +/** + * Action to take on those entities. E.g., propagate description through lineage, auto + * tagging, etc. + * + * Apply Tags to the selected assets. + * + * Remove Tags Action Type + * + * Add an owner to the selected assets. + * + * Remove Owner Action Type + * + * Add owners to the selected assets. + * + * Propagate description, tags and glossary terms via lineage + * + * ML Tagging action configuration for external automator. + */ +export interface Action { + /** + * Apply tags to the children of the selected assets that match the criteria. E.g., columns, + * tasks, topic fields,... + * + * Remove tags from all the children of the selected assets. E.g., columns, tasks, topic + * fields,... + * + * Apply the description to the children of the selected assets that match the criteria. + * E.g., columns, tasks, topic fields,... + * + * Remove descriptions from all children of the selected assets. E.g., columns, tasks, topic + * fields,... + */ + applyToChildren?: string[]; + /** + * Update tags even if they are already defined in the asset. By default, incoming tags are + * merged with the existing ones. + * + * Update the domain even if it is defined in the asset. By default, we will only apply the + * domain to assets without domain. + * + * Update the description even if they are already defined in the asset. By default, we'll + * only add the descriptions to assets without the description set. + * + * Update the tier even if it is defined in the asset. By default, we will only apply the + * tier to assets without tier. + * + * Update the owners even if it is defined in the asset. By default, we will only apply the + * owners to assets without owner. + * + * Update descriptions, tags and Glossary Terms via lineage even if they are already defined + * in the asset. By default, descriptions are only updated if they are not already defined + * in the asset, and incoming tags are merged with the existing ones. + */ + overwriteMetadata?: boolean; + /** + * Tags to apply + * + * Tags to remove + */ + tags?: TagLabel[]; + /** + * Application Type + */ + type: ActionType; + /** + * Domain to apply + */ + domain?: EntityReference; + /** + * Description to apply + */ + description?: string; + /** + * tier to apply + */ + tier?: TagLabel; + /** + * Owners to apply + */ + owners?: EntityReference[]; + /** + * Propagate the metadata to columns via column-level lineage. + */ + propagateColumnLevel?: boolean; + /** + * Propagate description through lineage + */ + propagateDescription?: boolean; + /** + * Propagate glossary terms through lineage + */ + propagateGlossaryTerms?: boolean; + /** + * Propagate owner from the parent + */ + propagateOwner?: boolean; + /** + * Propagate the metadata to the parents (e.g., tables) via lineage. + */ + propagateParent?: boolean; + /** + * Propagate tags through lineage + */ + propagateTags?: boolean; + /** + * Propagate tier from the parent + */ + propagateTier?: boolean; +} + +/** + * Domain to apply + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners to apply + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + * + * tier to apply + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Application Type + * + * Add Tags action type. + * + * Remove Tags Action Type. + * + * Add Owner Action Type. + * + * Remove Domain Action Type + * + * Add Description Action Type. + * + * Remove Description Action Type + * + * Add Tier Action Type. + * + * Remove Tier Action Type + * + * Remove Owner Action Type + * + * Lineage propagation action type. + * + * ML PII Tagging action type. + */ +export enum ActionType { + AddDescriptionAction = "AddDescriptionAction", + AddDomainAction = "AddDomainAction", + AddOwnerAction = "AddOwnerAction", + AddTagsAction = "AddTagsAction", + AddTierAction = "AddTierAction", + LineagePropagationAction = "LineagePropagationAction", + MLTaggingAction = "MLTaggingAction", + RemoveDescriptionAction = "RemoveDescriptionAction", + RemoveDomainAction = "RemoveDomainAction", + RemoveOwnerAction = "RemoveOwnerAction", + RemoveTagsAction = "RemoveTagsAction", + RemoveTierAction = "RemoveTierAction", +} + +/** + * Backfill Configuration + */ +export interface BackfillConfiguration { + /** + * Enable Backfill for the configured dates + */ + enabled?: boolean; + /** + * Date for which the backfill will end + */ + endDate?: Date; + /** + * Date from which to start the backfill + */ + startDate?: Date; + [property: string]: any; +} + +/** + * Entities selected to run the automation. + */ +export interface Resource { + /** + * Query filter to be passed to ES. E.g., + * `{"query":{"bool":{"must":[{"bool":{"should":[{"term":{"domain.displayName.keyword":"DG + * Anim"}}]}}]}}}`. This is the same payload as in the Explore page. + */ + queryFilter?: string; + /** + * Type of the entity. E.g., 'table', 'chart',... + */ + type?: string[]; + [property: string]: any; +} + +/** + * Application Type + * + * Application type. + */ +export enum CollateAIAppConfigType { + Automator = "Automator", + CollateAI = "CollateAI", + DataInsights = "DataInsights", + DataInsightsReport = "DataInsightsReport", + SearchIndexing = "SearchIndexing", +} + +/** + * Application private configuration + * + * PRivate Configuration for the CollateAI External Application. + */ +export interface PrivateConfig { + /** + * Collate Server public URL. WAII will use this information to interact with the server. + * E.g., https://sandbox.getcollate.io + */ + collateURL: string; + /** + * Limits for the CollateAI Application. + */ + limits: CollateAILimits; + /** + * WAII API Token + */ + token: string; + /** + * WAII API host URL + */ + waiiInstance: string; +} + +/** + * Limits for the CollateAI Application. + */ +export interface CollateAILimits { + /** + * Start of the billing cycle. + */ + billingCycleStart?: Date; + /** + * Maximum number of descriptions generated by the CollateAI + */ + descriptions?: number; + /** + * Maximum number of queries generated by CollateAI. + */ + queries?: number; + [property: string]: any; +} + +/** + * Available sources to fetch DBT catalog and manifest files. + * + * dbt Cloud configuration. + * + * DBT Catalog, Manifest and Run Results file path config. + * + * DBT Catalog, Manifest and Run Results HTTP path configuration. + * + * DBT Catalog, Manifest and Run Results files in S3 bucket. We will search for + * catalog.json, manifest.json and run_results.json. + * + * DBT Catalog, Manifest and Run Results files in GCS storage. We will search for + * catalog.json, manifest.json and run_results.json. + * + * DBT Catalog, Manifest and Run Results files in Azure bucket. We will search for + * catalog.json, manifest.json and run_results.json. + */ +export interface DBTConfigurationSource { + /** + * dbt cloud account Id + */ + dbtCloudAccountId?: string; + /** + * dbt cloud account authentication token + */ + dbtCloudAuthToken?: string; + /** + * dbt cloud job id. + */ + dbtCloudJobId?: string; + /** + * In case of multiple projects in a dbt cloud account, specify the project's id from which + * you want to extract the dbt run artifacts + */ + dbtCloudProjectId?: string; + /** + * URL to connect to your dbt cloud instance. E.g., https://cloud.getdbt.com or + * https://emea.dbt.com/ + */ + dbtCloudUrl?: string; + /** + * dbt Configuration type + */ + dbtConfigType: DbtConfigType; + /** + * DBT catalog file path to extract dbt models with their column schemas. + */ + dbtCatalogFilePath?: string; + /** + * DBT manifest file path to extract dbt models and associate with tables. + */ + dbtManifestFilePath?: string; + /** + * DBT run results file path to extract the test results information. + */ + dbtRunResultsFilePath?: string; + /** + * DBT sources file path to extract the freshness test result. + */ + dbtSourcesFilePath?: string; + /** + * DBT catalog http file path to extract dbt models with their column schemas. + */ + dbtCatalogHttpPath?: string; + /** + * DBT manifest http file path to extract dbt models and associate with tables. + */ + dbtManifestHttpPath?: string; + /** + * DBT run results http file path to extract the test results information. + */ + dbtRunResultsHttpPath?: string; + /** + * DBT sources http file path to extract freshness test results information. + */ + dbtSourcesHttpPath?: string; + /** + * Details of the bucket where the dbt files are stored + */ + dbtPrefixConfig?: DBTPrefixConfig; + dbtSecurityConfig?: SecurityConfigClass; +} + +/** + * dbt Configuration type + */ +export enum DbtConfigType { + Azure = "azure", + Cloud = "cloud", + Gcs = "gcs", + HTTP = "http", + Local = "local", + S3 = "s3", +} + +/** + * Details of the bucket where the dbt files are stored + */ +export interface DBTPrefixConfig { + /** + * Name of the bucket where the dbt files are stored + */ + dbtBucketName?: string; + /** + * Path of the folder where the dbt files are stored + */ + dbtObjectPrefix?: string; +} + +/** + * Use incremental Metadata extraction after the first execution. This is commonly done by + * getting the changes from Audit tables on the supporting databases. + */ +export interface IncrementalMetadataExtractionConfiguration { + /** + * If True, enables Metadata Extraction to be incremental + */ + enabled: boolean; + /** + * Number os days to search back for a successful pipeline run. The timestamp of the last + * found successful pipeline run will be used as a base to search for updated entities. + */ + lookbackDays?: number; + /** + * Number of days to add to the last successful pipeline run timestamp to search for updated + * entities. + */ + safetyMarginDays?: number; +} + +/** + * Details required to generate Lineage + */ +export interface LineageInformation { + /** + * List of Database Service Names for creation of lineage + */ + dbServiceNames?: string[]; + /** + * List of Storage Service Names for creation of lineage + */ + storageServiceNames?: string[]; + [property: string]: any; +} + +/** + * Type of Profile Sample (percentage or rows) + */ +export enum ProfileSampleType { + Percentage = "PERCENTAGE", + Rows = "ROWS", +} + +/** + * Type of Sampling Method (BERNOULLI or SYSTEM) + */ +export enum SamplingMethodType { + Bernoulli = "BERNOULLI", + System = "SYSTEM", +} + +/** + * No manifest file available. Ingestion would look for bucket-level metadata file instead + * + * Storage Metadata Manifest file path config. + * + * Storage Metadata Manifest file HTTP path config. + * + * Storage Metadata Manifest file S3 path config. + * + * Storage Metadata Manifest file ADLS path config. + * + * Storage Metadata Manifest file GCS path config. + */ +export interface StorageMetadataConfigurationSource { + /** + * Storage Metadata manifest file path to extract locations to ingest from. + */ + manifestFilePath?: string; + /** + * Storage Metadata manifest http file path to extract locations to ingest from. + */ + manifestHttpPath?: string; + prefixConfig?: StorageMetadataBucketDetails; + securityConfig?: SecurityConfigClass; +} + +/** + * Details of the bucket where the storage metadata manifest file is stored + */ +export interface StorageMetadataBucketDetails { + /** + * Name of the top level container where the storage metadata file is stored + */ + containerName: string; + /** + * Path of the folder where the storage metadata file is stored. If the file is at the root, + * you can keep it empty. + */ + objectPrefix?: string; +} + +/** + * Pipeline type + * + * Database Source Config Metadata Pipeline type + * + * Database Source Config Usage Pipeline type + * + * Dashboard Source Config Metadata Pipeline type + * + * Messaging Source Config Metadata Pipeline type + * + * Profiler Source Config Pipeline type + * + * Pipeline Source Config Metadata Pipeline type + * + * MlModel Source Config Metadata Pipeline type + * + * Object Store Source Config Metadata Pipeline type + * + * Search Source Config Metadata Pipeline type + * + * DBT Config Pipeline type + * + * Pipeline Source Config For Application Pipeline type. Nothing is required. + * + * Api Source Config Metadata Pipeline type + */ +export enum ConfigType { + APIMetadata = "ApiMetadata", + Application = "Application", + AutoClassification = "AutoClassification", + DashboardMetadata = "DashboardMetadata", + DataInsight = "dataInsight", + DatabaseLineage = "DatabaseLineage", + DatabaseMetadata = "DatabaseMetadata", + DatabaseUsage = "DatabaseUsage", + Dbt = "DBT", + MessagingMetadata = "MessagingMetadata", + MetadataToElasticSearch = "MetadataToElasticSearch", + MlModelMetadata = "MlModelMetadata", + PipelineMetadata = "PipelineMetadata", + Profiler = "Profiler", + SearchMetadata = "SearchMetadata", + StorageMetadata = "StorageMetadata", + TestSuite = "TestSuite", +} + +/** + * Configuration for Stage Component in the OpenMetadata Ingestion Framework. + */ +export interface Stage { + config?: { [key: string]: any }; + /** + * Type of stage component ex: table-usage + */ + type: string; +} + +/** + * Configuration for the entire Ingestion Workflow. + */ +export interface WorkflowConfig { + config?: { [key: string]: any }; + loggerLevel?: LogLevels; + openMetadataServerConfig: OpenMetadataConnection; + /** + * The percentage of successfully processed records that must be achieved for the pipeline + * to be considered successful. Otherwise, the pipeline will be marked as failed. + */ + successThreshold?: number; +} + +/** + * Supported logging levels + */ +export enum LogLevels { + Debug = "DEBUG", + Error = "ERROR", + Info = "INFO", + Warn = "WARN", +} + +/** + * OpenMetadata Connection Config + */ +export interface OpenMetadataConnection { + /** + * OpenMetadata server API version to use. + */ + apiVersion?: string; + /** + * OpenMetadata Server Authentication Provider. + */ + authProvider?: AuthProvider; + /** + * Cluster name to differentiate OpenMetadata Server instance + */ + clusterName?: string; + /** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ + elasticsSearch?: OpenMetadataServerConfigElasticsSearch; + /** + * Validate Openmetadata Server & Client Version. + */ + enableVersionValidation?: boolean; + extraHeaders?: { [key: string]: string }; + /** + * Force the overwriting of any entity during the ingestion. + */ + forceEntityOverwriting?: boolean; + /** + * OpenMetadata Server Config. Must include API end point ex: http://localhost:8585/api + */ + hostPort: string; + /** + * Include Dashboards for Indexing + */ + includeDashboards?: boolean; + /** + * Include Database Services for Indexing + */ + includeDatabaseServices?: boolean; + /** + * Include Glossary Terms for Indexing + */ + includeGlossaryTerms?: boolean; + /** + * Include Messaging Services for Indexing + */ + includeMessagingServices?: boolean; + /** + * Include MlModels for Indexing + */ + includeMlModels?: boolean; + /** + * Include Pipelines for Indexing + */ + includePipelines?: boolean; + /** + * Include Pipeline Services for Indexing + */ + includePipelineServices?: boolean; + /** + * Include Tags for Policy + */ + includePolicy?: boolean; + /** + * Include Tables for Indexing + */ + includeTables?: boolean; + /** + * Include Tags for Indexing + */ + includeTags?: boolean; + /** + * Include Teams for Indexing + */ + includeTeams?: boolean; + /** + * Include Topics for Indexing + */ + includeTopics?: boolean; + /** + * Include Users for Indexing + */ + includeUsers?: boolean; + /** + * Limit the number of records for Indexing. + */ + limitRecords?: number; + /** + * Secrets Manager Loader for the Pipeline Service Client. + */ + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * Secrets Manager Provider for OpenMetadata Server. + */ + secretsManagerProvider?: SecretsManagerProvider; + /** + * OpenMetadata Client security configuration. + */ + securityConfig?: OpenMetadataJWTClientConfig; + /** + * SSL Configuration for OpenMetadata Server + */ + sslConfig?: SchemaRegistrySSLClass; + /** + * If set to true, when creating a service during the ingestion we will store its Service + * Connection. Otherwise, the ingestion will create a bare service without connection + * details. + */ + storeServiceConnection?: boolean; + /** + * Flag to enable Data Insight Extraction + */ + supportsDataInsightExtraction?: boolean; + /** + * Flag to enable ElasticSearch Reindexing Extraction + */ + supportsElasticSearchReindexingExtraction?: boolean; + /** + * Service Type + */ + type?: OpenmetadataType; + /** + * Flag to verify SSL Certificate for OpenMetadata Server. + */ + verifySSL?: VerifySSL; +} + +/** + * Configuration for Sink Component in the OpenMetadata Ingestion Framework. + */ +export interface OpenMetadataServerConfigElasticsSearch { + config?: { [key: string]: any }; + /** + * Type of sink component ex: metadata + */ + type: string; +} + +/** + * Service Type + * + * OpenMetadata service type + */ +export enum OpenmetadataType { + OpenMetadata = "OpenMetadata", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/monitoring/eventMonitorProvider.ts b/openmetadata-ui/src/main/resources/ui/src/generated/monitoring/eventMonitorProvider.ts new file mode 100644 index 000000000000..1d693bb0cdb6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/monitoring/eventMonitorProvider.ts @@ -0,0 +1,21 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenMetadata Event Monitor Provider. + */ +export enum EventMonitorProvider { + Cloudwatch = "cloudwatch", + Prometheus = "prometheus", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/client/auth0SSOClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/auth0SSOClientConfig.ts new file mode 100644 index 000000000000..074b84e31f3e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/auth0SSOClientConfig.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Auth0 SSO client security configs. + */ +export interface Auth0SSOClientConfig { + /** + * Auth0 Client ID. + */ + clientId: string; + /** + * Auth0 Domain. + */ + domain: string; + /** + * Auth0 Client Secret Key. + */ + secretKey: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/client/azureSSOClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/azureSSOClientConfig.ts new file mode 100644 index 000000000000..6cf658ee2ee9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/azureSSOClientConfig.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Azure SSO Client security config to connect to OpenMetadata. + */ +export interface AzureSSOClientConfig { + /** + * Azure SSO Authority + */ + authority: string; + /** + * Azure Client ID. + */ + clientId: string; + /** + * Azure SSO client secret key + */ + clientSecret: string; + /** + * Azure Client ID. + */ + scopes: string[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/client/customOidcSSOClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/customOidcSSOClientConfig.ts new file mode 100644 index 000000000000..422dc5f90cbf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/customOidcSSOClientConfig.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom OIDC SSO client security configs. + */ +export interface CustomOidcSSOClientConfig { + /** + * Custom OIDC Client ID. + */ + clientId: string; + /** + * Custom OIDC Client Secret Key. + */ + secretKey: string; + /** + * Custom OIDC token endpoint. + */ + tokenEndpoint: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/client/googleSSOClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/googleSSOClientConfig.ts new file mode 100644 index 000000000000..c92cc05e9436 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/googleSSOClientConfig.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Google SSO client security configs. + */ +export interface GoogleSSOClientConfig { + /** + * Google SSO audience URL + */ + audience?: string; + /** + * Google SSO client secret key path or contents. + */ + secretKey: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/client/oidcClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/oidcClientConfig.ts new file mode 100644 index 000000000000..aa5182da0ebd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/oidcClientConfig.ts @@ -0,0 +1,93 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Oidc client security configs. + */ +export interface OidcClientConfig { + /** + * Callback Url. + */ + callbackUrl?: string; + /** + * Client Authentication Method. + */ + clientAuthenticationMethod?: ClientAuthenticationMethod; + /** + * Custom Params. + */ + customParams?: { [key: string]: any }; + /** + * Disable PKCE. + */ + disablePkce?: boolean; + /** + * Discovery Uri for the Client. + */ + discoveryUri?: string; + /** + * Client ID. + */ + id?: string; + /** + * Max Clock Skew + */ + maxClockSkew?: string; + /** + * Preferred Jws Algorithm. + */ + preferredJwsAlgorithm?: string; + /** + * Auth0 Client Secret Key. + */ + responseType?: string; + /** + * Oidc Request Scopes. + */ + scope?: string; + /** + * Client Secret. + */ + secret?: string; + /** + * Server Url. + */ + serverUrl?: string; + /** + * Tenant in case of Azure. + */ + tenant?: string; + /** + * Validity for the JWT Token created from SAML Response + */ + tokenValidity?: number; + /** + * IDP type (Example Google,Azure). + */ + type?: string; + /** + * Use Nonce. + */ + useNonce?: string; +} + +/** + * Client Authentication Method. + */ +export enum ClientAuthenticationMethod { + ClientSecretBasic = "client_secret_basic", + ClientSecretJwt = "client_secret_jwt", + ClientSecretPost = "client_secret_post", + PrivateKeyJwt = "private_key_jwt", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/client/oktaSSOClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/oktaSSOClientConfig.ts new file mode 100644 index 000000000000..eccc7c556a29 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/oktaSSOClientConfig.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Okta SSO client security configs. + */ +export interface OktaSSOClientConfig { + /** + * Okta Client ID. + */ + clientId: string; + /** + * Okta Service account Email. + */ + email: string; + /** + * Okta org url. + */ + orgURL: string; + /** + * Okta Private Key. + */ + privateKey: string; + /** + * Okta client scopes. + */ + scopes?: string[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/client/openMetadataJWTClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/openMetadataJWTClientConfig.ts new file mode 100644 index 000000000000..68f4ec9de398 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/openMetadataJWTClientConfig.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/client/samlSSOClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/samlSSOClientConfig.ts new file mode 100644 index 000000000000..aa071f158d3f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/client/samlSSOClientConfig.ts @@ -0,0 +1,132 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SAML SSO client security configs. + */ +export interface SamlSSOClientConfig { + /** + * Get logs from the Library in debug mode + */ + debugMode?: boolean; + idp: Idp; + security?: Security; + sp: SP; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface Idp { + /** + * Authority URL to redirect the users on Sign In page + */ + authorityUrl?: string; + /** + * Identity Provider Entity ID usually same as the SSO login URL. + */ + entityId: string; + /** + * X509 Certificate + */ + idpX509Certificate?: string; + /** + * Authority URL to redirect the users on Sign In page + */ + nameId?: string; + /** + * SSO Login URL. + */ + ssoLoginUrl: string; +} + +/** + * This schema defines defines the security config for SAML. + */ +export interface Security { + /** + * KeyStore Alias + */ + keyStoreAlias?: string; + /** + * KeyStore File Path + */ + keyStoreFilePath?: string; + /** + * KeyStore Password + */ + keyStorePassword?: string; + /** + * Encrypt Name Id while sending requests from SP. + */ + sendEncryptedNameId?: boolean; + /** + * Sign the Authn Request while sending. + */ + sendSignedAuthRequest?: boolean; + /** + * Want the Metadata of this SP to be signed. + */ + signSpMetadata?: boolean; + /** + * Only accept valid signed and encrypted assertions if the relevant flags are set + */ + strictMode?: boolean; + /** + * Validity for the JWT Token created from SAML Response + */ + tokenValidity?: number; + /** + * In case of strict mode whether to validate XML format. + */ + validateXml?: boolean; + /** + * SP requires the assertion received to be encrypted. + */ + wantAssertionEncrypted?: boolean; + /** + * SP requires the assertions received to be signed. + */ + wantAssertionsSigned?: boolean; + /** + * SP requires the messages received to be signed. + */ + wantMessagesSigned?: boolean; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface SP { + /** + * Assertion Consumer URL. + */ + acs: string; + /** + * Service Provider Entity ID usually same as the SSO login URL. + */ + callback: string; + /** + * Service Provider Entity ID. + */ + entityId: string; + /** + * Sp Private Key for Signing and Encryption Only + */ + spPrivateKey?: string; + /** + * X509 Certificate + */ + spX509Certificate?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/accessTokenAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/accessTokenAuth.ts new file mode 100644 index 000000000000..6febd10cedc2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/accessTokenAuth.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Access Token Auth Credentials + */ +export interface AccessTokenAuth { + /** + * Personal Access Token Name. + */ + personalAccessTokenName: string; + /** + * Personal Access Token Secret. + */ + personalAccessTokenSecret: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/apiAccessTokenAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/apiAccessTokenAuth.ts new file mode 100644 index 000000000000..5af8764155d2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/apiAccessTokenAuth.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * API Access Token Auth Credentials + */ +export interface APIAccessTokenAuth { + /** + * Access Token for the API + */ + accessToken: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/awsCredentials.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/awsCredentials.ts new file mode 100644 index 000000000000..840348652541 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/awsCredentials.ts @@ -0,0 +1,59 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * AWS credentials configs. + */ +export interface AwsCredentials { + /** + * The Amazon Resource Name (ARN) of the role to assume. Required Field in case of Assume + * Role + */ + assumeRoleArn?: string; + /** + * An identifier for the assumed role session. Use the role session name to uniquely + * identify a session when the same role is assumed by different principals or for different + * reasons. Required Field in case of Assume Role + */ + assumeRoleSessionName?: string; + /** + * The Amazon Resource Name (ARN) of the role to assume. Optional Field in case of Assume + * Role + */ + assumeRoleSourceIdentity?: string; + /** + * AWS Access key ID. + */ + awsAccessKeyId?: string; + /** + * AWS Region + */ + awsRegion: string; + /** + * AWS Secret Access Key. + */ + awsSecretAccessKey?: string; + /** + * AWS Session Token. + */ + awsSessionToken?: string; + /** + * EndPoint URL for the AWS + */ + endPointURL?: string; + /** + * The name of a profile to use with the boto session. + */ + profileName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/azureCredentials.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/azureCredentials.ts new file mode 100644 index 000000000000..30994b5cf992 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/azureCredentials.ts @@ -0,0 +1,43 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Azure Cloud Credentials + */ +export interface AzureCredentials { + /** + * Account Name of your storage account + */ + accountName?: string; + /** + * Your Service Principal App ID (Client ID) + */ + clientId?: string; + /** + * Your Service Principal Password (Client Secret) + */ + clientSecret?: string; + /** + * Scopes to get access token, for e.g. api://6dfX33ab-XXXX-49df-XXXX-3459eX817d3e/.default + */ + scopes?: string; + /** + * Tenant ID of your Azure Subscription + */ + tenantId?: string; + /** + * Key Vault Name + */ + vaultName?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/basicAuth.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/basicAuth.ts new file mode 100644 index 000000000000..c606769edcf9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/basicAuth.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Basic Auth Credentials + */ +export interface BasicAuth { + /** + * Password to access the service. + */ + password: string; + /** + * Username to access the service. + */ + username: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/bitbucketCredentials.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/bitbucketCredentials.ts new file mode 100644 index 000000000000..9e561653e0df --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/bitbucketCredentials.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Credentials for a BitBucket repository + */ +export interface BitbucketCredentials { + /** + * Main production branch of the repository. E.g., `main` + */ + branch: string; + repositoryName: string; + repositoryOwner: string; + token?: string; + /** + * Credentials Type + */ + type?: BitbucketType; +} + +/** + * Credentials Type + * + * BitBucket Credentials type + */ +export enum BitbucketType { + BitBucket = "BitBucket", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpCredentials.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpCredentials.ts new file mode 100644 index 000000000000..b7d06bcc5508 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpCredentials.ts @@ -0,0 +1,126 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * GCP credentials configs. + */ +export interface GcpCredentials { + /** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + */ + gcpConfig: GCPCredentialsConfiguration; + /** + * we enable the authenticated service account to impersonate another service account + */ + gcpImpersonateServiceAccount?: GCPImpersonateServiceAccountValues; +} + +/** + * We support two ways of authenticating to GCP i.e via GCP Credentials Values or GCP + * Credentials Path + * + * Pass the raw credential values provided by GCP + * + * Pass the path of file containing the GCP credentials info + */ +export interface GCPCredentialsConfiguration { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + * + * GCP Project ID to parse metadata from + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; + /** + * Path of the file containing the GCP credentials info + */ + path?: string; + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + [property: string]: any; +} + +/** + * we enable the authenticated service account to impersonate another service account + * + * Pass the values to impersonate a service account of Google Cloud + */ +export interface GCPImpersonateServiceAccountValues { + /** + * The impersonated service account email + */ + impersonateServiceAccount?: string; + /** + * Number of seconds the delegated credential should be valid + */ + lifetime?: number; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpExternalAccount.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpExternalAccount.ts new file mode 100644 index 000000000000..bcebc76656e5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpExternalAccount.ts @@ -0,0 +1,46 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Pass the raw credential values provided by GCP + */ +export interface GcpExternalAccount { + /** + * Google Security Token Service audience which contains the resource name for the workload + * identity pool and the provider identifier in that pool. + */ + audience?: string; + /** + * This object defines the mechanism used to retrieve the external credential from the local + * environment so that it can be exchanged for a GCP access token via the STS endpoint + */ + credentialSource?: { [key: string]: string }; + /** + * Google Cloud Platform account type. + */ + externalType?: string; + /** + * Google Security Token Service subject token type based on the OAuth 2.0 token exchange + * spec. + */ + subjectTokenType?: string; + /** + * Google Security Token Service token exchange endpoint. + */ + tokenURL?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpValues.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpValues.ts new file mode 100644 index 000000000000..b19554e397c3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gcpValues.ts @@ -0,0 +1,59 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Pass the raw credential values provided by GCP + */ +export interface GcpValues { + /** + * Google Cloud auth provider certificate. + */ + authProviderX509CertUrl?: string; + /** + * Google Cloud auth uri. + */ + authUri?: string; + /** + * Google Cloud email. + */ + clientEmail?: string; + /** + * Google Cloud Client ID. + */ + clientId?: string; + /** + * Google Cloud client certificate uri. + */ + clientX509CertUrl?: string; + /** + * Google Cloud private key. + */ + privateKey?: string; + /** + * Google Cloud private key id. + */ + privateKeyId?: string; + /** + * Project ID + */ + projectId?: string[] | string; + /** + * Google Cloud token uri. + */ + tokenUri?: string; + /** + * Google Cloud Platform account type. + */ + type?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/githubCredentials.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/githubCredentials.ts new file mode 100644 index 000000000000..08d2ec72079f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/githubCredentials.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Credentials for a GitHub repository + */ +export interface GithubCredentials { + repositoryName: string; + repositoryOwner: string; + token?: string; + /** + * Credentials Type + */ + type?: GithubType; +} + +/** + * Credentials Type + * + * GitHub Credentials type + */ +export enum GithubType { + GitHub = "GitHub", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gitlabCredentials.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gitlabCredentials.ts new file mode 100644 index 000000000000..88a33a856416 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/credentials/gitlabCredentials.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Credentials for a Gitlab repository + */ +export interface GitlabCredentials { + repositoryName: string; + repositoryOwner: string; + token?: string; + /** + * Credentials Type + */ + type?: GitlabType; +} + +/** + * Credentials Type + * + * Gitlab Credentials type + */ +export enum GitlabType { + Gitlab = "Gitlab", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/sasl/saslClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/sasl/saslClientConfig.ts new file mode 100644 index 000000000000..f403961cbdd6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/sasl/saslClientConfig.ts @@ -0,0 +1,44 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * SASL client configuration. + */ +export interface SaslClientConfig { + /** + * SASL security mechanism + */ + saslMechanism?: SaslMechanismType; + /** + * The SASL authentication password. + */ + saslPassword?: string; + /** + * The SASL authentication username. + */ + saslUsername?: string; +} + +/** + * SASL security mechanism + * + * SASL Mechanism consumer config property + */ +export enum SaslMechanismType { + Gssapi = "GSSAPI", + Oauthbearer = "OAUTHBEARER", + Plain = "PLAIN", + ScramSHA256 = "SCRAM-SHA-256", + ScramSHA512 = "SCRAM-SHA-512", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerClientLoader.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerClientLoader.ts new file mode 100644 index 000000000000..27117bbeb5a6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerClientLoader.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerConfiguration.ts new file mode 100644 index 000000000000..70b7de8c9898 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerConfiguration.ts @@ -0,0 +1,52 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenMetadata server configuration for the Secrets Manager feature. + */ +export interface SecretsManagerConfiguration { + /** + * Extra parameters used by the Secrets Manager implementation. + */ + parameters?: { [key: string]: any }; + /** + * Prefix to be added to the secret key ID: `///` + */ + prefix?: string; + /** + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ + secretsManager?: SecretsManagerProvider; + /** + * Add tags to the created resource, e.g., in AWS. Format is `[key1:value1,key2:value2,...]` + */ + tags?: string[]; +} + +/** + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerProvider.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerProvider.ts new file mode 100644 index 000000000000..d1888273fa3b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/secrets/secretsManagerProvider.ts @@ -0,0 +1,29 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenMetadata Secrets Manager Provider. Make sure to configure the same secrets manager + * providers as the ones configured on the OpenMetadata server. + */ +export enum SecretsManagerProvider { + Aws = "aws", + AwsSsm = "aws-ssm", + AzureKv = "azure-kv", + DB = "db", + Gcp = "gcp", + InMemory = "in-memory", + ManagedAws = "managed-aws", + ManagedAwsSsm = "managed-aws-ssm", + ManagedAzureKv = "managed-azure-kv", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/securityConfiguration.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/securityConfiguration.ts new file mode 100644 index 000000000000..14fc03d1d673 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/securityConfiguration.ts @@ -0,0 +1,24 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Security configuration for the OpenMetadata server. + */ +export interface SecurityConfiguration { + /** + * If enabled, it will mask all the password fields in the responses sent from the API + * except for the bots + */ + maskPasswordsAPI?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/ssl/validateSSLClientConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/ssl/validateSSLClientConfig.ts new file mode 100644 index 000000000000..56ccdb996c40 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/ssl/validateSSLClientConfig.ts @@ -0,0 +1,31 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface ValidateSSLClientConfig { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/security/ssl/verifySSLConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/security/ssl/verifySSLConfig.ts new file mode 100644 index 000000000000..37f1b06f966c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/security/ssl/verifySSLConfig.ts @@ -0,0 +1,16 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + export interface VerifySSLConfigClass { +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/settings/settings.ts b/openmetadata-ui/src/main/resources/ui/src/generated/settings/settings.ts new file mode 100644 index 000000000000..ea4bce1ad74b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/settings/settings.ts @@ -0,0 +1,1191 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Settings. A Settings represents a generic Setting. + */ +export interface Settings { + /** + * Unique identifier that identifies an entity instance. + */ + config_type: SettingType; + config_value?: PipelineServiceClientConfiguration; + [property: string]: any; +} + +/** + * Unique identifier that identifies an entity instance. + * + * This schema defines all possible filters enum in OpenMetadata. + */ +export enum SettingType { + AirflowConfiguration = "airflowConfiguration", + AssetCertificationSettings = "assetCertificationSettings", + AuthenticationConfiguration = "authenticationConfiguration", + AuthorizerConfiguration = "authorizerConfiguration", + CustomUIThemePreference = "customUiThemePreference", + Elasticsearch = "elasticsearch", + EmailConfiguration = "emailConfiguration", + EventHandlerConfiguration = "eventHandlerConfiguration", + FernetConfiguration = "fernetConfiguration", + JwtTokenConfiguration = "jwtTokenConfiguration", + LineageSettings = "lineageSettings", + LoginConfiguration = "loginConfiguration", + ProfilerConfiguration = "profilerConfiguration", + SandboxModeEnabled = "sandboxModeEnabled", + SearchSettings = "searchSettings", + SecretsManagerConfiguration = "secretsManagerConfiguration", + SlackAppConfiguration = "slackAppConfiguration", + SlackBot = "slackBot", + SlackChat = "slackChat", + SlackEventPublishers = "slackEventPublishers", + SlackInstaller = "slackInstaller", + SlackState = "slackState", +} + +/** + * This schema defines the Pipeline Service Client Configuration + * + * This schema defines the Authentication Configuration. + * + * This schema defines the Authorization Configuration. + * + * This schema defines the Elastic Search Configuration. + * + * This schema defines the Event Handler Configuration. + * + * This schema defines the Fernet Configuration. + * + * This schema defines the JWT Configuration. + * + * This schema defines the SSL Config. + * + * This schema defines the SMTP Settings for sending Email + * + * This schema defines the Slack App Information + * + * This schema defines the profiler configuration. It is used to configure globally the + * metrics to compute for specific data types. + * + * This schema defines the Rbac Search Configuration. + * + * This schema defines the Asset Certification Settings. + * + * This schema defines the Lineage Settings. + */ +export interface PipelineServiceClientConfiguration { + /** + * External API root to interact with the Pipeline Service Client + */ + apiEndpoint?: string; + /** + * Auth Provider Configuration. + */ + authConfig?: AuthConfiguration; + /** + * Auth Provider with which OpenMetadata service configured with. + */ + authProvider?: AuthProvider; + /** + * Class Name for the Pipeline Service Client. + * + * Class Name for authorizer. + */ + className?: string; + /** + * Flags if the ingestion from the OpenMetadata UI is enabled. If ingesting externally, we + * can set this value to false to not check the Pipeline Service Client component health. + * + * Is Task Notification Enabled? + */ + enabled?: boolean; + /** + * Interval in seconds that the server will use to check the /status of the + * pipelineServiceClient and flag any errors in a Prometheus metric + * `pipelineServiceClientStatus.counter`. + */ + healthCheckInterval?: number; + /** + * Pipeline Service Client host IP that will be used to connect to the sources. + */ + hostIp?: string; + /** + * Enable or disable the API that fetches the public IP running the ingestion process. + */ + ingestionIpInfoEnabled?: boolean; + /** + * Metadata api endpoint, e.g., `http://localhost:8585/api` + */ + metadataApiEndpoint?: string; + /** + * Additional parameters to initialize the PipelineServiceClient. + */ + parameters?: { [key: string]: any }; + secretsManagerLoader?: SecretsManagerClientLoader; + /** + * OpenMetadata Client SSL configuration. This SSL information is about the OpenMetadata + * server. It will be picked up from the pipelineServiceClient to use/ignore SSL when + * connecting to the OpenMetadata server. + */ + sslConfig?: Config; + /** + * Client SSL verification policy when connecting to the OpenMetadata server: no-ssl, + * ignore, validate. + */ + verifySSL?: VerifySSL; + /** + * Authentication Authority + */ + authority?: string; + /** + * Callback URL + */ + callbackUrl?: string; + /** + * Client ID + * + * Client Id of the Application + */ + clientId?: string; + /** + * Client Type + */ + clientType?: ClientType; + /** + * Enable Self Sign Up + */ + enableSelfSignup?: boolean; + /** + * Jwt Principal Claim + */ + jwtPrincipalClaims?: string[]; + /** + * Jwt Principal Claim Mapping + */ + jwtPrincipalClaimsMapping?: string[]; + /** + * LDAP Configuration in case the Provider is LDAP + */ + ldapConfiguration?: LDAPConfiguration; + /** + * Oidc Configuration for Confidential Client Type + */ + oidcConfiguration?: OidcClientConfig; + provider?: AuthProvider; + /** + * Custom OIDC Authentication Provider Name + */ + providerName?: string; + /** + * List of Public Key URLs + */ + publicKeyUrls?: string[]; + /** + * This is used by auth provider provide response as either id_token or code. + */ + responseType?: ResponseType; + /** + * Saml Configuration that is applicable only when the provider is Saml + */ + samlConfiguration?: SamlSSOClientConfig; + /** + * List of unique admin principals. + */ + adminPrincipals?: string[]; + /** + * List of unique email domains that are allowed to signup on the platforms + */ + allowedEmailRegistrationDomains?: string[]; + /** + * **@Deprecated** List of unique bot principals + */ + botPrincipals?: string[]; + /** + * Filter for the request authorization. + */ + containerRequestFilter?: string; + /** + * Enable Secure Socket Connection. + */ + enableSecureSocketConnection?: boolean; + /** + * Enable Enforce Principal Domain + */ + enforcePrincipalDomain?: boolean; + /** + * Principal Domain + */ + principalDomain?: string; + /** + * List of unique principals used as test users. **NOTE THIS IS ONLY FOR TEST SETUP AND NOT + * TO BE USED IN PRODUCTION SETUP** + */ + testPrincipals?: string[]; + /** + * Use Roles from Provider + */ + useRolesFromProvider?: boolean; + /** + * Batch Size for Requests + */ + batchSize?: number; + /** + * Alias for search indexes to provide segregation of indexes. + */ + clusterAlias?: string; + /** + * Connection Timeout in Seconds + */ + connectionTimeoutSecs?: number; + /** + * Elastic Search Host + */ + host?: string; + /** + * Keep Alive Timeout in Seconds + */ + keepAliveTimeoutSecs?: number; + /** + * Elastic Search Password for Login + * + * Smtp Server Password + */ + password?: string; + /** + * Payload size in bytes depending on elasticsearch config + */ + payLoadSize?: number; + /** + * Elastic Search port + */ + port?: number; + /** + * Http/Https connection scheme + */ + scheme?: string; + /** + * Index factory name + */ + searchIndexFactoryClassName?: string; + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + /** + * This enum defines the search Type elastic/open search. + */ + searchType?: SearchType; + /** + * Socket Timeout in Seconds + */ + socketTimeoutSecs?: number; + /** + * Truststore Password + */ + truststorePassword?: string; + /** + * Truststore Path + */ + truststorePath?: string; + /** + * Elastic Search Username for Login + * + * Smtp Server Username + */ + username?: string; + /** + * Event Handler Class Names + */ + eventHandlerClassNames?: string[]; + /** + * Fernet Key + */ + fernetKey?: string; + /** + * JWT Issuer + */ + jwtissuer?: string; + /** + * Key ID + */ + keyId?: string; + /** + * RSA Private Key File Path + */ + rsaprivateKeyFilePath?: string; + /** + * RSA Public Key File Path + */ + rsapublicKeyFilePath?: string; + /** + * Emailing Entity + */ + emailingEntity?: string; + /** + * If this is enable password will details will be shared on mail + */ + enableSmtpServer?: boolean; + /** + * Openmetadata Server Endpoint + */ + openMetadataUrl?: string; + /** + * Mail of the sender + */ + senderMail?: string; + /** + * Smtp Server Endpoint + */ + serverEndpoint?: string; + /** + * Smtp Server Port + */ + serverPort?: number; + /** + * Support Url + */ + supportUrl?: string; + templatePath?: string; + templates?: Templates; + transportationStrategy?: TransportationStrategy; + /** + * Client Secret of the Application. + */ + clientSecret?: string; + /** + * Signing Secret of the Application. Confirm that each request comes from Slack by + * verifying its unique signature. + */ + signingSecret?: string; + metricConfiguration?: MetricConfigurationDefinition[]; + /** + * Flag to enable or disable the RBAC Search Configuration. + */ + enableAccessControl?: boolean; + /** + * Classification that can be used for certifications. + */ + allowedClassification?: string; + /** + * ISO 8601 duration for the validity period. + */ + validityPeriod?: string; + /** + * DownStream Depth for Lineage. + */ + downstreamDepth?: number; + /** + * Lineage Layer. + */ + lineageLayer?: LineageLayer; + /** + * Upstream Depth for Lineage. + */ + upstreamDepth?: number; +} + +/** + * Auth Provider Configuration. + * + * This schema defines the Auth Config. + */ +export interface AuthConfiguration { + /** + * Auth0 SSO Configuration + */ + auth0?: Auth0SSOClientConfig; + /** + * Azure SSO Configuration + */ + azure?: AzureSSOClientConfig; + /** + * Custom OIDC SSO Configuration + */ + customOidc?: CustomOIDCSSOClientConfig; + /** + * Google SSO Configuration + */ + google?: GoogleSSOClientConfig; + /** + * Okta SSO Configuration + */ + okta?: OktaSSOClientConfig; + /** + * OpenMetadata SSO Configuration + */ + openmetadata?: OpenMetadataJWTClientConfig; +} + +/** + * Auth0 SSO Configuration + * + * Auth0 SSO client security configs. + */ +export interface Auth0SSOClientConfig { + /** + * Auth0 Client ID. + */ + clientId: string; + /** + * Auth0 Domain. + */ + domain: string; + /** + * Auth0 Client Secret Key. + */ + secretKey: string; +} + +/** + * Azure SSO Configuration + * + * Azure SSO Client security config to connect to OpenMetadata. + */ +export interface AzureSSOClientConfig { + /** + * Azure SSO Authority + */ + authority: string; + /** + * Azure Client ID. + */ + clientId: string; + /** + * Azure SSO client secret key + */ + clientSecret: string; + /** + * Azure Client ID. + */ + scopes: string[]; +} + +/** + * Custom OIDC SSO Configuration + * + * Custom OIDC SSO client security configs. + */ +export interface CustomOIDCSSOClientConfig { + /** + * Custom OIDC Client ID. + */ + clientId: string; + /** + * Custom OIDC Client Secret Key. + */ + secretKey: string; + /** + * Custom OIDC token endpoint. + */ + tokenEndpoint: string; +} + +/** + * Google SSO Configuration + * + * Google SSO client security configs. + */ +export interface GoogleSSOClientConfig { + /** + * Google SSO audience URL + */ + audience?: string; + /** + * Google SSO client secret key path or contents. + */ + secretKey: string; +} + +/** + * Okta SSO Configuration + * + * Okta SSO client security configs. + */ +export interface OktaSSOClientConfig { + /** + * Okta Client ID. + */ + clientId: string; + /** + * Okta Service account Email. + */ + email: string; + /** + * Okta org url. + */ + orgURL: string; + /** + * Okta Private Key. + */ + privateKey: string; + /** + * Okta client scopes. + */ + scopes?: string[]; +} + +/** + * OpenMetadata SSO Configuration + * + * openMetadataJWTClientConfig security configs. + */ +export interface OpenMetadataJWTClientConfig { + /** + * OpenMetadata generated JWT token. + */ + jwtToken: string; +} + +/** + * Auth Provider with which OpenMetadata service configured with. + * + * OpenMetadata Server Authentication Provider. Make sure configure same auth providers as + * the one configured on OpenMetadata server. + */ +export enum AuthProvider { + Auth0 = "auth0", + AwsCognito = "aws-cognito", + Azure = "azure", + Basic = "basic", + CustomOidc = "custom-oidc", + Google = "google", + LDAP = "ldap", + Okta = "okta", + Openmetadata = "openmetadata", + Saml = "saml", +} + +/** + * Client Type + */ +export enum ClientType { + Confidential = "confidential", + Public = "public", +} + +/** + * LDAP Configuration in case the Provider is LDAP + * + * LDAP Configuration + */ +export interface LDAPConfiguration { + /** + * All attribute name + */ + allAttributeName?: string; + /** + * Roles should be reassign every time user login + */ + authReassignRoles?: string[]; + /** + * Json string of roles mapping between LDAP roles and Ranger roles + */ + authRolesMapping?: string; + /** + * Password for LDAP Admin + */ + dnAdminPassword: string; + /** + * Distinguished Admin name with search capabilities + */ + dnAdminPrincipal: string; + /** + * Group Name attribute name + */ + groupAttributeName?: string; + /** + * Group attribute value + */ + groupAttributeValue?: string; + /** + * Group base distinguished name + */ + groupBaseDN?: string; + /** + * Group Member Name attribute name + */ + groupMemberAttributeName?: string; + /** + * LDAP server address without scheme(Example :- localhost) + */ + host: string; + /** + * If enable need to give full dn to login + */ + isFullDn?: boolean; + /** + * Email attribute name + */ + mailAttributeName: string; + /** + * No of connection to create the pool with + */ + maxPoolSize?: number; + /** + * Port of the server + */ + port: number; + /** + * Admin role name + */ + roleAdminName?: string; + /** + * LDAPS (secure LDAP) or LDAP + */ + sslEnabled?: boolean; + /** + * Truststore Configuration + */ + trustStoreConfig?: TruststoreConfig; + /** + * Truststore Type e.g. TrustAll, HostName, JVMDefault, CustomTrustStore. + */ + truststoreConfigType?: TruststoreConfigType; + /** + * Truststore format e.g. PKCS12, JKS. + */ + truststoreFormat?: string; + /** + * User base distinguished name + */ + userBaseDN: string; + /** + * User Name attribute name + */ + usernameAttributeName?: string; +} + +/** + * Truststore Configuration + */ +export interface TruststoreConfig { + /** + * CustomTrust Configuration + */ + customTrustManagerConfig?: CustomTrustManagerConfig; + /** + * HostName Configuration + */ + hostNameConfig?: HostNameConfig; + /** + * JVMDefault Configuration + */ + jvmDefaultConfig?: JVMDefaultConfig; + /** + * TrustAll Configuration + */ + trustAllConfig?: TrustAllConfig; +} + +/** + * CustomTrust Configuration + */ +export interface CustomTrustManagerConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; + /** + * Truststore file format + */ + trustStoreFileFormat?: string; + /** + * Truststore file password + */ + trustStoreFilePassword?: string; + /** + * Truststore file path + */ + trustStoreFilePath?: string; + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} + +/** + * HostName Configuration + */ +export interface HostNameConfig { + /** + * list of acceptable host names + */ + acceptableHostNames?: string[]; + /** + * Allow wildcards + */ + allowWildCards?: boolean; +} + +/** + * JVMDefault Configuration + */ +export interface JVMDefaultConfig { + /** + * list of host names to verify + */ + verifyHostname?: boolean; +} + +/** + * TrustAll Configuration + */ +export interface TrustAllConfig { + /** + * Examine validity dates of certificate + */ + examineValidityDates?: boolean; +} + +/** + * Truststore Type e.g. TrustAll, HostName, JVMDefault, CustomTrustStore. + */ +export enum TruststoreConfigType { + CustomTrustStore = "CustomTrustStore", + HostName = "HostName", + JVMDefault = "JVMDefault", + TrustAll = "TrustAll", +} + +/** + * Lineage Layer. + * + * Lineage Layers + */ +export enum LineageLayer { + ColumnLevelLineage = "ColumnLevelLineage", + DataObservability = "DataObservability", + EntityLineage = "EntityLineage", +} + +/** + * This schema defines the parameters that can be passed for a Test Case. + */ +export interface MetricConfigurationDefinition { + dataType?: DataType; + /** + * If true, the metric will not be computed for the data type. + */ + disabled?: boolean; + metrics?: MetricType[]; +} + +/** + * This enum defines the type of data stored in a column. + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * This schema defines all possible metric types in OpenMetadata. + */ +export enum MetricType { + ColumnCount = "columnCount", + ColumnNames = "columnNames", + CountInSet = "countInSet", + DistinctCount = "distinctCount", + DistinctProportion = "distinctProportion", + DuplicateCount = "duplicateCount", + FirstQuartile = "firstQuartile", + Histogram = "histogram", + ILikeCount = "iLikeCount", + ILikeRatio = "iLikeRatio", + InterQuartileRange = "interQuartileRange", + LikeCount = "likeCount", + LikeRatio = "likeRatio", + Max = "max", + MaxLength = "maxLength", + Mean = "mean", + Median = "median", + Min = "min", + MinLength = "minLength", + NonParametricSkew = "nonParametricSkew", + NotLikeCount = "notLikeCount", + NotRegexCount = "notRegexCount", + NullCount = "nullCount", + NullProportion = "nullProportion", + RegexCount = "regexCount", + RowCount = "rowCount", + Stddev = "stddev", + Sum = "sum", + System = "system", + ThirdQuartile = "thirdQuartile", + UniqueCount = "uniqueCount", + UniqueProportion = "uniqueProportion", + ValuesCount = "valuesCount", +} + +/** + * Oidc Configuration for Confidential Client Type + * + * Oidc client security configs. + */ +export interface OidcClientConfig { + /** + * Callback Url. + */ + callbackUrl?: string; + /** + * Client Authentication Method. + */ + clientAuthenticationMethod?: ClientAuthenticationMethod; + /** + * Custom Params. + */ + customParams?: { [key: string]: any }; + /** + * Disable PKCE. + */ + disablePkce?: boolean; + /** + * Discovery Uri for the Client. + */ + discoveryUri?: string; + /** + * Client ID. + */ + id?: string; + /** + * Max Clock Skew + */ + maxClockSkew?: string; + /** + * Preferred Jws Algorithm. + */ + preferredJwsAlgorithm?: string; + /** + * Auth0 Client Secret Key. + */ + responseType?: string; + /** + * Oidc Request Scopes. + */ + scope?: string; + /** + * Client Secret. + */ + secret?: string; + /** + * Server Url. + */ + serverUrl?: string; + /** + * Tenant in case of Azure. + */ + tenant?: string; + /** + * Validity for the JWT Token created from SAML Response + */ + tokenValidity?: number; + /** + * IDP type (Example Google,Azure). + */ + type?: string; + /** + * Use Nonce. + */ + useNonce?: string; +} + +/** + * Client Authentication Method. + */ +export enum ClientAuthenticationMethod { + ClientSecretBasic = "client_secret_basic", + ClientSecretJwt = "client_secret_jwt", + ClientSecretPost = "client_secret_post", + PrivateKeyJwt = "private_key_jwt", +} + +/** + * This is used by auth provider provide response as either id_token or code. + * + * Response Type + */ +export enum ResponseType { + Code = "code", + IDToken = "id_token", +} + +/** + * Saml Configuration that is applicable only when the provider is Saml + * + * SAML SSO client security configs. + */ +export interface SamlSSOClientConfig { + /** + * Get logs from the Library in debug mode + */ + debugMode?: boolean; + idp: Idp; + security?: Security; + sp: SP; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface Idp { + /** + * Authority URL to redirect the users on Sign In page + */ + authorityUrl?: string; + /** + * Identity Provider Entity ID usually same as the SSO login URL. + */ + entityId: string; + /** + * X509 Certificate + */ + idpX509Certificate?: string; + /** + * Authority URL to redirect the users on Sign In page + */ + nameId?: string; + /** + * SSO Login URL. + */ + ssoLoginUrl: string; +} + +/** + * This schema defines defines the security config for SAML. + */ +export interface Security { + /** + * KeyStore Alias + */ + keyStoreAlias?: string; + /** + * KeyStore File Path + */ + keyStoreFilePath?: string; + /** + * KeyStore Password + */ + keyStorePassword?: string; + /** + * Encrypt Name Id while sending requests from SP. + */ + sendEncryptedNameId?: boolean; + /** + * Sign the Authn Request while sending. + */ + sendSignedAuthRequest?: boolean; + /** + * Want the Metadata of this SP to be signed. + */ + signSpMetadata?: boolean; + /** + * Only accept valid signed and encrypted assertions if the relevant flags are set + */ + strictMode?: boolean; + /** + * Validity for the JWT Token created from SAML Response + */ + tokenValidity?: number; + /** + * In case of strict mode whether to validate XML format. + */ + validateXml?: boolean; + /** + * SP requires the assertion received to be encrypted. + */ + wantAssertionEncrypted?: boolean; + /** + * SP requires the assertions received to be signed. + */ + wantAssertionsSigned?: boolean; + /** + * SP requires the messages received to be signed. + */ + wantMessagesSigned?: boolean; +} + +/** + * This schema defines defines the identity provider config. + */ +export interface SP { + /** + * Assertion Consumer URL. + */ + acs: string; + /** + * Service Provider Entity ID usually same as the SSO login URL. + */ + callback: string; + /** + * Service Provider Entity ID. + */ + entityId: string; + /** + * Sp Private Key for Signing and Encryption Only + */ + spPrivateKey?: string; + /** + * X509 Certificate + */ + spX509Certificate?: string; +} + +/** + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +/** + * This enum defines the search Type elastic/open search. + */ +export enum SearchType { + Elasticsearch = "elasticsearch", + Opensearch = "opensearch", +} + +/** + * OpenMetadata Secrets Manager Client Loader. Lets the client know how the Secrets Manager + * Credentials should be loaded from the environment. + */ +export enum SecretsManagerClientLoader { + Airflow = "airflow", + Env = "env", + Noop = "noop", +} + +/** + * OpenMetadata Client SSL configuration. This SSL information is about the OpenMetadata + * server. It will be picked up from the pipelineServiceClient to use/ignore SSL when + * connecting to the OpenMetadata server. + * + * Client SSL configuration + * + * OpenMetadata Client configured to validate SSL certificates. + */ +export interface Config { + /** + * The CA certificate used for SSL validation. + */ + caCertificate?: string; + /** + * The SSL certificate used for client authentication. + */ + sslCertificate?: string; + /** + * The private key associated with the SSL certificate. + */ + sslKey?: string; +} + +export enum Templates { + Collate = "collate", + Openmetadata = "openmetadata", +} + +export enum TransportationStrategy { + SMTP = "SMTP", + SMTPTLS = "SMTP_TLS", + Smtps = "SMTPS", +} + +/** + * Client SSL verification policy when connecting to the OpenMetadata server: no-ssl, + * ignore, validate. + * + * Client SSL verification. Make sure to configure the SSLConfig if enabled. + */ +export enum VerifySSL { + Ignore = "ignore", + NoSSL = "no-ssl", + Validate = "validate", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/entityError.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/entityError.ts new file mode 100644 index 000000000000..3a9b4c45387f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/entityError.ts @@ -0,0 +1,21 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Entity And Message Scehma in case of failures. + */ +export interface EntityError { + entity?: any; + message?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/eventPublisherJob.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/eventPublisherJob.ts new file mode 100644 index 000000000000..6869ea2d362d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/eventPublisherJob.ts @@ -0,0 +1,167 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Event Publisher Job. + */ +export interface EventPublisherJob { + /** + * Provide After in case of failure to start reindexing after the issue is solved + */ + afterCursor?: string; + /** + * Maximum number of events sent in a batch (Default 10). + */ + batchSize?: number; + /** + * Number of consumer threads to use for reindexing + */ + consumerThreads?: number; + /** + * List of Entities to Reindex + */ + entities?: string[]; + /** + * Failure for the job + */ + failure?: IndexingAppError; + /** + * Initial backoff time in milliseconds + */ + initialBackoff?: number; + /** + * Maximum backoff time in milliseconds + */ + maxBackoff?: number; + /** + * Maximum number of concurrent requests to the search index + */ + maxConcurrentRequests?: number; + /** + * Maximum number of retries for a failed request + */ + maxRetries?: number; + /** + * Name of the result + */ + name?: string; + /** + * Payload size in bytes depending on config. + */ + payLoadSize?: number; + /** + * Number of producer threads to use for reindexing + */ + producerThreads?: number; + /** + * Queue Size to use internally for reindexing. + */ + queueSize?: number; + /** + * This schema publisher run modes. + */ + recreateIndex?: boolean; + /** + * Recreate Indexes with updated Language + */ + searchIndexMappingLanguage?: SearchIndexMappingLanguage; + stats?: Stats; + /** + * This schema publisher run job status. + */ + status: Status; + timestamp: number; +} + +/** + * Failure for the job + * + * This schema defines Event Publisher Job Error Schema. + */ +export interface IndexingAppError { + errorSource?: ErrorSource; + failedCount?: number; + failedEntities?: EntityError[]; + lastFailedCursor?: string; + message?: string; + reason?: string; + stackTrace?: string; + submittedCount?: number; + successCount?: number; +} + +export enum ErrorSource { + Job = "Job", + Processor = "Processor", + Reader = "Reader", + Sink = "Sink", +} + +/** + * Entity And Message Scehma in case of failures. + */ +export interface EntityError { + entity?: any; + message?: string; +} + +/** + * Recreate Indexes with updated Language + * + * This schema defines the language options available for search index mappings. + */ +export enum SearchIndexMappingLanguage { + En = "EN", + Jp = "JP", + Zh = "ZH", +} + +export interface Stats { + entityStats?: StepStats; + jobStats?: StepStats; +} + +/** + * Stats for Different Steps Reader, Processor, Writer. + */ +export interface StepStats { + /** + * Count of Total Failed Records + */ + failedRecords?: number; + /** + * Count of Total Successfully Records + */ + successRecords?: number; + /** + * Count of Total Failed Records + */ + totalRecords?: number; + [property: string]: any; +} + +/** + * This schema publisher run job status. + */ +export enum Status { + Active = "active", + ActiveError = "activeError", + Completed = "completed", + Failed = "failed", + Running = "running", + Started = "started", + StopInProgress = "stopInProgress", + Stopped = "stopped", + Success = "success", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/indexingError.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/indexingError.ts new file mode 100644 index 000000000000..12143e087050 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/indexingError.ts @@ -0,0 +1,43 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Event Publisher Job Error Schema. + */ +export interface IndexingError { + errorSource?: ErrorSource; + failedCount?: number; + failedEntities?: EntityError[]; + lastFailedCursor?: string; + message?: string; + reason?: string; + stackTrace?: string; + submittedCount?: number; + successCount?: number; +} + +export enum ErrorSource { + Job = "Job", + Processor = "Processor", + Reader = "Reader", + Sink = "Sink", +} + +/** + * Entity And Message Scehma in case of failures. + */ +export interface EntityError { + entity?: any; + message?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/limitsResponse.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/limitsResponse.ts new file mode 100644 index 000000000000..e199feb62dcf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/limitsResponse.ts @@ -0,0 +1,27 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Limits Config schema + */ +export interface LimitsResponse { + /** + * Limits Enabled + */ + enable?: boolean; + /** + * Limits + */ + limits?: { [key: string]: any }; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/knowledgePanel.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/knowledgePanel.ts new file mode 100644 index 000000000000..973bf6bc66f6 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/knowledgePanel.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the KnowledgePanel entity. A Knowledge panel is an information box + * used for UX customization in OpenMetadata. + */ +export interface KnowledgePanel { + /** + * Configuration for the Knowledge Panel. + */ + configuration?: { [key: string]: any }; + /** + * Entity Type. + */ + entityType: EntityType; +} + +/** + * Entity Type. + */ +export enum EntityType { + KnowledgePanel = "KnowledgePanel", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/navigationItem.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/navigationItem.ts new file mode 100644 index 000000000000..5101443e694d --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/navigationItem.ts @@ -0,0 +1,65 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Defines a navigation item in the UI navigation menu. + */ +export interface NavigationItem { + /** + * Optional sub-navigation items. + */ + children?: ChildElement[]; + /** + * Unique identifier for the navigation item. + */ + id: string; + /** + * Order of the navigation item in the menu. + */ + order: number; + /** + * Reference to a Page ID that this navigation item links to. + */ + pageId: string; + /** + * Display title of the navigation item. + */ + title: string; +} + +/** + * Defines a navigation item in the UI navigation menu. + */ +export interface ChildElement { + /** + * Optional sub-navigation items. + */ + children?: ChildElement[]; + /** + * Unique identifier for the navigation item. + */ + id: string; + /** + * Order of the navigation item in the menu. + */ + order: number; + /** + * Reference to a Page ID that this navigation item links to. + */ + pageId: string; + /** + * Display title of the navigation item. + */ + title: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/page.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/page.ts new file mode 100644 index 000000000000..a4ba598f6edf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/page.ts @@ -0,0 +1,159 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Page entity. A Page is a landing page, schema page to customize + * in OpenMetadata. + */ +export interface Page { + /** + * Domain this page belongs to. + */ + domain?: EntityReference; + /** + * Entity Type. + */ + entityType: EntityType; + /** + * KnowledgePanels that are part of this Page. + */ + knowledgePanels: EntityReference[]; + /** + * Configuration for the Knowledge Panel. + */ + layout: { [key: string]: any }; + pageType: PageType; + /** + * Persona this page belongs to. + */ + persona?: EntityReference; + /** + * Tabs included in this page. + */ + tabs?: Tab[]; +} + +/** + * Domain this page belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * KnowledgePanels that are part of this Page. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Persona this page belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Entity Type. + */ +export enum EntityType { + Page = "Page", +} + +/** + * This schema defines the type used for describing different types of pages. + */ +export enum PageType { + Container = "Container", + Dashboard = "Dashboard", + DashboardDataModel = "DashboardDataModel", + Database = "Database", + DatabaseSchema = "DatabaseSchema", + Domain = "Domain", + Glossary = "Glossary", + GlossaryTerm = "GlossaryTerm", + LandingPage = "LandingPage", + Pipeline = "Pipeline", + SearchIndex = "SearchIndex", + StoredProcedure = "StoredProcedure", + Table = "Table", + Topic = "Topic", +} + +/** + * This schema defines a Tab within a Page. + */ +export interface Tab { + /** + * DisplayName of the tab. + */ + displayName?: string; + /** + * Weather tab can be edit by the user or not. + */ + editable?: boolean; + id: string; + /** + * KnowledgePanels that are part of this Tab. + */ + knowledgePanels?: EntityReference[]; + /** + * Layout configuration for this tab. + */ + layout: { [key: string]: any }; + /** + * Name of the tab. + */ + name: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/tab.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/tab.ts new file mode 100644 index 000000000000..69f4cecc5c73 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/tab.ts @@ -0,0 +1,96 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines a Tab within a Page. + */ +export interface Tab { + /** + * DisplayName of the tab. + */ + displayName?: string; + /** + * Weather tab can be edit by the user or not. + */ + editable?: boolean; + id: string; + /** + * KnowledgePanels that are part of this Tab. + */ + knowledgePanels?: EntityReference[]; + /** + * Layout configuration for this tab. + */ + layout: { [key: string]: any }; + /** + * Name of the tab. + */ + name: string; +} + +/** + * KnowledgePanels that are part of this Tab. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/uiCustomization.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/uiCustomization.ts new file mode 100644 index 000000000000..562f4bbdf4a5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/ui/uiCustomization.ts @@ -0,0 +1,256 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Contains UI customization details for a Persona. + */ +export interface UICustomization { + changeDescription?: ChangeDescription; + /** + * Description of the UI customization. + */ + description?: string; + /** + * Name used for display purposes. + */ + displayName?: string; + href?: string; + id: string; + /** + * A unique name for the UI customization configuration. + */ + name: string; + /** + * Site-wide navigation configuration. + */ + navigation?: NavigationItem[]; + /** + * List of Pages in the UI customization. + */ + pages: Team[]; + updatedAt?: number; + updatedBy?: string; + version?: number; +} + +/** + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Defines a navigation item in the UI navigation menu. + */ +export interface NavigationItem { + /** + * Optional sub-navigation items. + */ + children?: NavigationItem[]; + /** + * Unique identifier for the navigation item. + */ + id: string; + /** + * Order of the navigation item in the menu. + */ + order: number; + /** + * Reference to a Page ID that this navigation item links to. + */ + pageId: string; + /** + * Display title of the navigation item. + */ + title: string; +} + +/** + * This schema defines the Page entity. A Page is a landing page, schema page to customize + * in OpenMetadata. + */ +export interface Team { + /** + * Domain this page belongs to. + */ + domain?: EntityReference; + /** + * Entity Type. + */ + entityType: EntityType; + /** + * KnowledgePanels that are part of this Page. + */ + knowledgePanels: EntityReference[]; + /** + * Configuration for the Knowledge Panel. + */ + layout: { [key: string]: any }; + pageType: PageType; + /** + * Persona this page belongs to. + */ + persona?: EntityReference; + /** + * Tabs included in this page. + */ + tabs?: Tab[]; +} + +/** + * Domain this page belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * KnowledgePanels that are part of this Page. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Persona this page belongs to. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Entity Type. + */ +export enum EntityType { + Page = "Page", +} + +/** + * This schema defines the type used for describing different types of pages. + */ +export enum PageType { + Container = "Container", + Dashboard = "Dashboard", + DashboardDataModel = "DashboardDataModel", + Database = "Database", + DatabaseSchema = "DatabaseSchema", + Domain = "Domain", + Glossary = "Glossary", + GlossaryTerm = "GlossaryTerm", + LandingPage = "LandingPage", + Pipeline = "Pipeline", + SearchIndex = "SearchIndex", + StoredProcedure = "StoredProcedure", + Table = "Table", + Topic = "Topic", +} + +/** + * This schema defines a Tab within a Page. + */ +export interface Tab { + /** + * DisplayName of the tab. + */ + displayName?: string; + /** + * Weather tab can be edit by the user or not. + */ + editable?: boolean; + id: string; + /** + * KnowledgePanels that are part of this Tab. + */ + knowledgePanels?: EntityReference[]; + /** + * Layout configuration for this tab. + */ + layout: { [key: string]: any }; + /** + * Name of the tab. + */ + name: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/validationResponse.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/validationResponse.ts new file mode 100644 index 000000000000..4e580fe16a11 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/validationResponse.ts @@ -0,0 +1,65 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Define the system validation response + */ +export interface ValidationResponse { + /** + * Database connectivity check + */ + database?: StepValidation; + /** + * JWKs validation + */ + jwks?: StepValidation; + /** + * List migration results + */ + migrations?: StepValidation; + /** + * Pipeline Service Client connectivity check + */ + pipelineServiceClient?: StepValidation; + /** + * Search instance connectivity check + */ + searchInstance?: StepValidation; +} + +/** + * Database connectivity check + * + * JWKs validation + * + * List migration results + * + * Pipeline Service Client connectivity check + * + * Search instance connectivity check + */ +export interface StepValidation { + /** + * Validation description. What is being tested? + */ + description?: string; + /** + * Results or exceptions to be shared after running the test. + */ + message?: string; + /** + * Did the step validation successfully? + */ + passed?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/assigned.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/assigned.ts new file mode 100644 index 000000000000..db96712dbd90 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/assigned.ts @@ -0,0 +1,74 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * test case failure details for assigned failures + */ +export interface Assigned { + /** + * User working on failure resolution. + */ + assignee: EntityReference; +} + +/** + * User working on failure resolution. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/customMetric.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/customMetric.ts new file mode 100644 index 000000000000..8e086c1e4445 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/customMetric.ts @@ -0,0 +1,108 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom Metric definition that we will associate with a column. + */ +export interface CustomMetric { + /** + * Name of the column in a table. + */ + columnName?: string; + /** + * Description of the Metric. + */ + description?: string; + /** + * SQL expression to compute the Metric. It should return a single numerical value. + */ + expression: string; + /** + * Unique identifier of this Custom Metric instance. + */ + id?: string; + /** + * Name that identifies this Custom Metric. + */ + name: string; + /** + * Owners of this Custom Metric. + */ + owners?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; +} + +/** + * Owners of this Custom Metric. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/dataQualityReport.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/dataQualityReport.ts new file mode 100644 index 000000000000..72c754a25395 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/dataQualityReport.ts @@ -0,0 +1,48 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Data Quality report and aggregation model. + */ +export interface DataQualityReport { + /** + * Data for the data quality report. + */ + data: { [key: string]: string }[]; + /** + * Metadata for the data quality report. + */ + metadata: DataQualityReportMetadata; +} + +/** + * Metadata for the data quality report. + * + * Schema to capture data quality reports and aggregation data. + */ +export interface DataQualityReportMetadata { + /** + * Dimensions to capture the data quality report. + */ + dimensions?: string[]; + /** + * Keys to identify the data quality report. + */ + keys?: string[]; + /** + * Metrics to capture the data quality report. + */ + metrics?: string[]; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/resolved.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/resolved.ts new file mode 100644 index 000000000000..12ac35336741 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/resolved.ts @@ -0,0 +1,95 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * test case failure details for resolved failures + */ +export interface Resolved { + /** + * User who resolved the test case failure. + */ + resolvedBy?: EntityReference; + /** + * Test case failure resolution comment. + */ + testCaseFailureComment: string; + /** + * Reason of Test Case resolution. + */ + testCaseFailureReason: TestCaseFailureReasonType; +} + +/** + * User who resolved the test case failure. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Reason of Test Case resolution. + * + * Reason of Test Case initial failure. + */ +export enum TestCaseFailureReasonType { + Duplicates = "Duplicates", + FalsePositive = "FalsePositive", + MissingData = "MissingData", + Other = "Other", + OutOfBounds = "OutOfBounds", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCase.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCase.ts new file mode 100644 index 000000000000..91a5853eb56c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCase.ts @@ -0,0 +1,711 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Test case is a test definition to capture data quality tests against tables, columns, and + * other data assets. + */ +export interface TestCase { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * Compute the passed and failed row count for the test case. + */ + computePassedFailedRowCount?: boolean; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the testcase. + */ + description?: string; + /** + * Display Name that identifies this test. + */ + displayName?: string; + /** + * Domain the test case belongs to. When not set, the test case inherits the domain from the + * table it belongs to. + */ + domain?: EntityReference; + entityFQN?: string; + /** + * Link to the entity that this test case is testing. + */ + entityLink: string; + /** + * Sample of failed rows for this test case. + */ + failedRowsSample?: TableData; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this table instance. + */ + id?: string; + /** + * Reference to an ongoing Incident ID (stateId) for this test case. + */ + incidentId?: string; + /** + * SQL query to retrieve the failed rows for this test case. + */ + inspectionQuery?: string; + /** + * Name that identifies this test case. + */ + name: string; + /** + * Owners of this Pipeline. + */ + owners?: EntityReference[]; + parameterValues?: TestCaseParameterValue[]; + /** + * Tags for this test case. This is an inherited field from the parent entity and is not set + * directly on the test case. + */ + tags?: TagLabel[]; + /** + * Latest test case result obtained for this test case. + */ + testCaseResult?: TestCaseResult; + /** + * Status of Test Case run. + */ + testCaseStatus?: TestCaseStatus; + /** + * Test definition that this test case is based on. + */ + testDefinition: EntityReference; + /** + * Test Suite that this test case belongs to. + */ + testSuite: EntityReference; + testSuites?: TestSuite[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * If the test definition supports it, use dynamic assertion to evaluate the test case. + */ + useDynamicAssertion?: boolean; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Domain the test case belongs to. When not set, the test case inherits the domain from the + * table it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this Pipeline. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Test case that this result is for. + * + * Test definition that this result is for. + * + * Test definition that this test case is based on. + * + * Test Suite that this test case belongs to. + * + * Domain the test Suite belongs to. When not set, the test Suite inherits the domain from + * the table it belongs to. + * + * Entity reference the test suite is executed against. Only applicable if the test suite is + * executable. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Sample of failed rows for this test case. + * + * This schema defines the type to capture rows of sample data for a table. + */ +export interface TableData { + /** + * List of local column names (not fully qualified column names) of the table. + */ + columns?: string[]; + /** + * Data for multiple rows of the table. + */ + rows?: Array; +} + +/** + * This schema defines the parameter values that can be passed for a Test Case. + */ +export interface TestCaseParameterValue { + /** + * name of the parameter. Must match the parameter names in testCaseParameterDefinition + */ + name?: string; + /** + * value to be passed for the Parameters. These are input from Users. We capture this in + * string and convert during the runtime. + */ + value?: string; + [property: string]: any; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Latest test case result obtained for this test case. + * + * Schema to capture test case result. + */ +export interface TestCaseResult { + /** + * Number of rows that failed. + */ + failedRows?: number; + /** + * Percentage of rows that failed. + */ + failedRowsPercentage?: number; + /** + * Unique identifier of this failure instance + */ + id?: string; + /** + * Incident State ID associated with this result. This association happens when the result + * is created, and will stay there even when the incident is resolved. + */ + incidentId?: string; + /** + * Upper bound limit for the test case result as defined in the test definition. + */ + maxBound?: number; + /** + * Lower bound limit for the test case result as defined in the test definition. + */ + minBound?: number; + /** + * Number of rows that passed. + */ + passedRows?: number; + /** + * Percentage of rows that passed. + */ + passedRowsPercentage?: number; + /** + * Details of test case results. + */ + result?: string; + /** + * sample data to capture rows/columns that didn't match the expressed testcase. + */ + sampleData?: string; + /** + * Test case that this result is for. + */ + testCase?: EntityReference; + /** + * Fully qualified name of the test case. + */ + testCaseFQN?: string; + /** + * Status of Test Case run. + */ + testCaseStatus?: TestCaseStatus; + /** + * Test definition that this result is for. + */ + testDefinition?: EntityReference; + testResultValue?: TestResultValue[]; + /** + * Data one which test case result is taken. + */ + timestamp: number; + [property: string]: any; +} + +/** + * Status of Test Case run. + * + * Status of the test case. + */ +export enum TestCaseStatus { + Aborted = "Aborted", + Failed = "Failed", + Queued = "Queued", + Success = "Success", +} + +/** + * Schema to capture test case result values. + */ +export interface TestResultValue { + /** + * name of the value + */ + name?: string; + /** + * predicted value + */ + predictedValue?: string; + /** + * test result value + */ + value?: string; + [property: string]: any; +} + +/** + * TestSuite is a set of test cases grouped together to capture data quality tests against + * data entities. + */ +export interface TestSuite { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * TestSuite mock connection, since it needs to implement a Service. + */ + connection?: TestSuiteConnection; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the test suite. + */ + description?: string; + /** + * Display Name that identifies this test suite. + */ + displayName?: string; + /** + * Domain the test Suite belongs to. When not set, the test Suite inherits the domain from + * the table it belongs to. + */ + domain?: EntityReference; + /** + * Indicates if the test suite is executable. Set on the backend. + */ + executable?: boolean; + /** + * Entity reference the test suite is executed against. Only applicable if the test suite is + * executable. + */ + executableEntityReference?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this test suite instance. + */ + id?: string; + /** + * Indicates if the test suite is inherited from a parent entity. + */ + inherited?: boolean; + /** + * Name that identifies this test suite. + */ + name: string; + /** + * Owners of this TestCase definition. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this database service to extract metadata, usage, + * lineage etc.. + */ + pipelines?: EntityReference[]; + /** + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ + serviceType?: ServiceType; + /** + * Summary of the previous day test cases execution for this test suite. + */ + summary?: TestSummary; + /** + * Tags for this test suite. This is an inherited field from the parent entity if the + * testSuite is native. + */ + tags?: TagLabel[]; + /** + * Summary of test case execution + */ + testCaseResultSummary?: Array; + /** + * Result of the test connection. + */ + testConnectionResult?: TestConnectionResult; + tests?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * TestSuite mock connection, since it needs to implement a Service. + */ +export interface TestSuiteConnection { + config?: null; + [property: string]: any; +} + +/** + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ +export enum ServiceType { + TestSuite = "TestSuite", +} + +/** + * Summary of the previous day test cases execution for this test suite. + * + * Schema to capture test case execution summary. + */ +export interface TestSummary { + /** + * Number of test cases that aborted. + */ + aborted?: number; + columnTestSummary?: ColumnTestSummaryDefinition[]; + /** + * Number of test cases that failed. + */ + failed?: number; + /** + * Number of test cases that are queued for execution. + */ + queued?: number; + /** + * Number of test cases that passed. + */ + success?: number; + /** + * Total number of test cases. + */ + total?: number; + [property: string]: any; +} + +/** + * Schema to capture test case execution summary at the column level. + */ +export interface ColumnTestSummaryDefinition { + /** + * Number of test cases that aborted. + */ + aborted?: number; + entityLink?: string; + /** + * Number of test cases that failed. + */ + failed?: number; + /** + * Number of test cases that are queued for execution. + */ + queued?: number; + /** + * Number of test cases that passed. + */ + success?: number; + /** + * Total number of test cases. + */ + total?: number; + [property: string]: any; +} + +export interface TestCaseResultSummaryObject { + /** + * Status of the test case. + */ + status?: TestCaseStatus; + /** + * Name of the test case. + */ + testCaseName?: string; + /** + * Timestamp of the test case execution. + */ + timestamp?: number; + [property: string]: any; +} + +/** + * Result of the test connection. + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCaseResolutionStatus.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCaseResolutionStatus.ts new file mode 100644 index 000000000000..d228d99246bc --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testCaseResolutionStatus.ts @@ -0,0 +1,193 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Schema to capture test case resolution status. + */ +export interface TestCaseResolutionStatus { + /** + * Unique identifier of this failure instance + */ + id?: string; + /** + * List of metrics associated with the test case resolution. + */ + metrics?: Array; + /** + * Severity failure for the test associated with the resolution. + */ + severity?: Severities; + /** + * Sequence ID for a failure status. Statuses belonging to the same sequence will have the + * same ID. Unique across a failure cycle, i.e. new -> ack -> ... -> resolved. + */ + stateId?: string; + /** + * Test case reference + */ + testCaseReference?: EntityReference; + /** + * Details of the test case failure status. + */ + testCaseResolutionStatusDetails?: Assigned; + /** + * Status of Test Case Acknowledgement. + */ + testCaseResolutionStatusType: TestCaseResolutionStatusTypes; + /** + * Timestamp on which the failure was created. + */ + timestamp?: number; + /** + * Time when test case resolution was updated. + */ + updatedAt?: number; + /** + * User who updated the test case failure status. + */ + updatedBy?: EntityReference; +} + +export interface MetricObject { + /** + * Name of the metric. + */ + name?: string; + /** + * Value of the metric. + */ + value?: number; + [property: string]: any; +} + +/** + * Severity failure for the test associated with the resolution. + * + * Test case resolution status type. + */ +export enum Severities { + Severity1 = "Severity1", + Severity2 = "Severity2", + Severity3 = "Severity3", + Severity4 = "Severity4", + Severity5 = "Severity5", +} + +/** + * Test case reference + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * User working on failure resolution. + * + * User who resolved the test case failure. + * + * User who updated the test case failure status. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Details of the test case failure status. + * + * test case failure details for assigned failures + * + * test case failure details for resolved failures + */ +export interface Assigned { + /** + * User working on failure resolution. + */ + assignee?: EntityReference; + /** + * User who resolved the test case failure. + */ + resolvedBy?: EntityReference; + /** + * Test case failure resolution comment. + */ + testCaseFailureComment?: string; + /** + * Reason of Test Case resolution. + */ + testCaseFailureReason?: TestCaseFailureReasonType; +} + +/** + * Reason of Test Case resolution. + * + * Reason of Test Case initial failure. + */ +export enum TestCaseFailureReasonType { + Duplicates = "Duplicates", + FalsePositive = "FalsePositive", + MissingData = "MissingData", + Other = "Other", + OutOfBounds = "OutOfBounds", +} + +/** + * Status of Test Case Acknowledgement. + * + * Test case resolution status type. + */ +export enum TestCaseResolutionStatusTypes { + ACK = "Ack", + Assigned = "Assigned", + New = "New", + Resolved = "Resolved", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/testDefinition.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testDefinition.ts new file mode 100644 index 000000000000..8c9ce273d838 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testDefinition.ts @@ -0,0 +1,399 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Test Definition is a type of test using which test cases are created to capture data + * quality tests against data entities. + */ +export interface TestDefinition { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + dataQualityDimension?: DataQualityDimensions; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the testcase. + */ + description: string; + /** + * Display Name that identifies this test case. + */ + displayName?: string; + /** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + */ + domain?: EntityReference; + entityType?: EntityType; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this test case definition instance. + */ + id?: string; + /** + * Name that identifies this test case. + */ + name: string; + /** + * Owners of this TestCase definition. + */ + owners?: EntityReference[]; + parameterDefinition?: TestCaseParameterDefinition[]; + provider?: ProviderType; + supportedDataTypes?: DataType[]; + /** + * When `true` indicates the test case supports dynamic assertions. + */ + supportsDynamicAssertion?: boolean; + /** + * When `true` indicates the test case supports row level passed/failed. + */ + supportsRowLevelPassedFailed?: boolean; + testPlatforms: TestPlatform[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * This enum defines the dimension a test case belongs to. + */ +export enum DataQualityDimensions { + Accuracy = "Accuracy", + Completeness = "Completeness", + Consistency = "Consistency", + Integrity = "Integrity", + SQL = "SQL", + Uniqueness = "Uniqueness", + Validity = "Validity", +} + +/** + * Domain the asset belongs to. When not set, the asset inherits the domain from the parent + * it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Owners of this TestCase definition. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This enum defines the type for which this test definition applies to. + */ +export enum EntityType { + Column = "COLUMN", + Table = "TABLE", +} + +/** + * This schema defines the parameters that can be passed for a Test Case. + */ +export interface TestCaseParameterDefinition { + /** + * Data type of the parameter (int, date etc.). + */ + dataType?: TestDataType; + /** + * Description of the parameter. + */ + description?: string; + /** + * Display Name that identifies this parameter name. + */ + displayName?: string; + /** + * name of the parameter. + */ + name?: string; + /** + * List of values that can be passed for this parameter. + */ + optionValues?: any[]; + /** + * Is this parameter required. + */ + required?: boolean; + /** + * Validation for the test parameter value. + */ + validationRule?: ValidationRule; + [property: string]: any; +} + +/** + * Data type of the parameter (int, date etc.). + * + * This enum defines the type of data stored in a column. + */ +export enum TestDataType { + Array = "ARRAY", + Boolean = "BOOLEAN", + Date = "DATE", + Datetime = "DATETIME", + Decimal = "DECIMAL", + Double = "DOUBLE", + Float = "FLOAT", + Int = "INT", + Map = "MAP", + Number = "NUMBER", + Set = "SET", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", +} + +/** + * Validation for the test parameter value. + */ +export interface ValidationRule { + /** + * Name of the parameter to validate against. + */ + parameterField?: string; + /** + * This enum defines the type to use for a parameter validation rule. + */ + rule?: Rule; + [property: string]: any; +} + +/** + * This enum defines the type to use for a parameter validation rule. + */ +export enum Rule { + Equals = "EQUALS", + GreaterThanOrEquals = "GREATER_THAN_OR_EQUALS", + LessThanOrEquals = "LESS_THAN_OR_EQUALS", + NotEquals = "NOT_EQUALS", +} + +/** + * Type of provider of an entity. Some entities are provided by the `system`. Some are + * entities created and provided by the `user`. Typically `system` provide entities can't be + * deleted and can only be disabled. + */ +export enum ProviderType { + System = "system", + User = "user", +} + +/** + * This enum defines the type of data stored in a column. + */ +export enum DataType { + AggState = "AGG_STATE", + Aggregatefunction = "AGGREGATEFUNCTION", + Array = "ARRAY", + Bigint = "BIGINT", + Binary = "BINARY", + Bit = "BIT", + Bitmap = "BITMAP", + Blob = "BLOB", + Boolean = "BOOLEAN", + Bytea = "BYTEA", + Byteint = "BYTEINT", + Bytes = "BYTES", + CIDR = "CIDR", + Char = "CHAR", + Clob = "CLOB", + Date = "DATE", + Datetime = "DATETIME", + Datetimerange = "DATETIMERANGE", + Decimal = "DECIMAL", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Geography = "GEOGRAPHY", + Geometry = "GEOMETRY", + Hll = "HLL", + Hllsketch = "HLLSKETCH", + Image = "IMAGE", + Inet = "INET", + Int = "INT", + Interval = "INTERVAL", + Ipv4 = "IPV4", + Ipv6 = "IPV6", + JSON = "JSON", + Largeint = "LARGEINT", + Long = "LONG", + Longblob = "LONGBLOB", + Lowcardinality = "LOWCARDINALITY", + Macaddr = "MACADDR", + Map = "MAP", + Mediumblob = "MEDIUMBLOB", + Mediumtext = "MEDIUMTEXT", + Money = "MONEY", + Ntext = "NTEXT", + Null = "NULL", + Number = "NUMBER", + Numeric = "NUMERIC", + PGLsn = "PG_LSN", + PGSnapshot = "PG_SNAPSHOT", + Point = "POINT", + Polygon = "POLYGON", + QuantileState = "QUANTILE_STATE", + Record = "RECORD", + Rowid = "ROWID", + Set = "SET", + Smallint = "SMALLINT", + Spatial = "SPATIAL", + String = "STRING", + Struct = "STRUCT", + Super = "SUPER", + Table = "TABLE", + Text = "TEXT", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Tinyint = "TINYINT", + Tsquery = "TSQUERY", + Tsvector = "TSVECTOR", + Tuple = "TUPLE", + TxidSnapshot = "TXID_SNAPSHOT", + UUID = "UUID", + Uint = "UINT", + Union = "UNION", + Unknown = "UNKNOWN", + Varbinary = "VARBINARY", + Varchar = "VARCHAR", + Variant = "VARIANT", + XML = "XML", + Year = "YEAR", +} + +/** + * This schema defines the platform where tests are defined and ran. + */ +export enum TestPlatform { + Dbt = "DBT", + Deequ = "Deequ", + GreatExpectations = "GreatExpectations", + OpenMetadata = "OpenMetadata", + Other = "Other", + Soda = "Soda", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/tests/testSuite.ts b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testSuite.ts new file mode 100644 index 000000000000..7cbaa47c52a4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/tests/testSuite.ts @@ -0,0 +1,469 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * TestSuite is a set of test cases grouped together to capture data quality tests against + * data entities. + */ +export interface TestSuite { + /** + * Change that lead to this version of the entity. + */ + changeDescription?: ChangeDescription; + /** + * TestSuite mock connection, since it needs to implement a Service. + */ + connection?: TestSuiteConnection; + /** + * When `true` indicates the entity has been soft deleted. + */ + deleted?: boolean; + /** + * Description of the test suite. + */ + description?: string; + /** + * Display Name that identifies this test suite. + */ + displayName?: string; + /** + * Domain the test Suite belongs to. When not set, the test Suite inherits the domain from + * the table it belongs to. + */ + domain?: EntityReference; + /** + * Indicates if the test suite is executable. Set on the backend. + */ + executable?: boolean; + /** + * Entity reference the test suite is executed against. Only applicable if the test suite is + * executable. + */ + executableEntityReference?: EntityReference; + /** + * FullyQualifiedName same as `name`. + */ + fullyQualifiedName?: string; + /** + * Link to the resource corresponding to this entity. + */ + href?: string; + /** + * Unique identifier of this test suite instance. + */ + id?: string; + /** + * Indicates if the test suite is inherited from a parent entity. + */ + inherited?: boolean; + /** + * Name that identifies this test suite. + */ + name: string; + /** + * Owners of this TestCase definition. + */ + owners?: EntityReference[]; + /** + * References to pipelines deployed for this database service to extract metadata, usage, + * lineage etc.. + */ + pipelines?: EntityReference[]; + /** + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ + serviceType?: ServiceType; + /** + * Summary of the previous day test cases execution for this test suite. + */ + summary?: TestSummary; + /** + * Tags for this test suite. This is an inherited field from the parent entity if the + * testSuite is native. + */ + tags?: TagLabel[]; + /** + * Summary of test case execution + */ + testCaseResultSummary?: Array; + /** + * Result of the test connection. + */ + testConnectionResult?: TestConnectionResult; + tests?: EntityReference[]; + /** + * Last update time corresponding to the new version of the entity in Unix epoch time + * milliseconds. + */ + updatedAt?: number; + /** + * User who made the update. + */ + updatedBy?: string; + /** + * Metadata version of the entity. + */ + version?: number; +} + +/** + * Change that lead to this version of the entity. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * TestSuite mock connection, since it needs to implement a Service. + */ +export interface TestSuiteConnection { + config?: null; + [property: string]: any; +} + +/** + * Domain the test Suite belongs to. When not set, the test Suite inherits the domain from + * the table it belongs to. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Entity reference the test suite is executed against. Only applicable if the test suite is + * executable. + * + * Owners of this TestCase definition. + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Type of database service such as MySQL, BigQuery, Snowflake, Redshift, Postgres... + */ +export enum ServiceType { + TestSuite = "TestSuite", +} + +/** + * Summary of the previous day test cases execution for this test suite. + * + * Schema to capture test case execution summary. + */ +export interface TestSummary { + /** + * Number of test cases that aborted. + */ + aborted?: number; + columnTestSummary?: ColumnTestSummaryDefinition[]; + /** + * Number of test cases that failed. + */ + failed?: number; + /** + * Number of test cases that are queued for execution. + */ + queued?: number; + /** + * Number of test cases that passed. + */ + success?: number; + /** + * Total number of test cases. + */ + total?: number; + [property: string]: any; +} + +/** + * Schema to capture test case execution summary at the column level. + */ +export interface ColumnTestSummaryDefinition { + /** + * Number of test cases that aborted. + */ + aborted?: number; + entityLink?: string; + /** + * Number of test cases that failed. + */ + failed?: number; + /** + * Number of test cases that are queued for execution. + */ + queued?: number; + /** + * Number of test cases that passed. + */ + success?: number; + /** + * Total number of test cases. + */ + total?: number; + [property: string]: any; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +export interface TestCaseResultSummaryObject { + /** + * Status of the test case. + */ + status?: TestCaseStatus; + /** + * Name of the test case. + */ + testCaseName?: string; + /** + * Timestamp of the test case execution. + */ + timestamp?: number; + [property: string]: any; +} + +/** + * Status of the test case. + * + * Status of Test Case run. + */ +export enum TestCaseStatus { + Aborted = "Aborted", + Failed = "Failed", + Queued = "Queued", + Success = "Success", +} + +/** + * Result of the test connection. + * + * TestConnectionResult is the definition that will encapsulate result of running the test + * connection steps. + */ +export interface TestConnectionResult { + /** + * Last time that the test connection was executed + */ + lastUpdatedAt?: number; + /** + * Test Connection Result computation status. + */ + status?: StatusType; + /** + * Steps to test the connection. Order matters. + */ + steps: TestConnectionStepResult[]; +} + +/** + * Test Connection Result computation status. + * + * Enum defining possible Test Connection Result status + */ +export enum StatusType { + Failed = "Failed", + Running = "Running", + Successful = "Successful", +} + +/** + * Function that tests one specific element of the service. E.g., listing schemas, lineage, + * or tags. + */ +export interface TestConnectionStepResult { + /** + * In case of failed step, this field would contain the actual error faced during the step. + */ + errorLog?: string; + /** + * Is this step mandatory to be passed? + */ + mandatory: boolean; + /** + * Results or exceptions to be shared after running the test. This message comes from the + * test connection definition + */ + message?: string; + /** + * Name of the step being tested + */ + name: string; + /** + * Did the step pass successfully? + */ + passed: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/apiSchema.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/apiSchema.ts new file mode 100644 index 000000000000..88b7d0252005 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/apiSchema.ts @@ -0,0 +1,190 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the API Endpoint entity's request/response schema. + */ +export interface APISchema { + /** + * Columns in this schema. + */ + schemaFields?: Field[]; + /** + * Schema used for message serialization. + */ + schemaType?: SchemaType; + [property: string]: any; +} + +/** + * This schema defines the nested object to capture protobuf/avro/jsonschema of topic's + * schema. + */ +export interface Field { + /** + * Child fields if dataType or arrayDataType is `map`, `record`, `message` + */ + children?: Field[]; + /** + * Data type of the field (int, date etc.). + */ + dataType: DataTypeTopic; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this field name. + */ + displayName?: string; + fullyQualifiedName?: string; + name: string; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the field (int, date etc.). + * + * This enum defines the type of data defined in schema. + */ +export enum DataTypeTopic { + Array = "ARRAY", + Boolean = "BOOLEAN", + Bytes = "BYTES", + Date = "DATE", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Int = "INT", + Long = "LONG", + Map = "MAP", + Null = "NULL", + Record = "RECORD", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Union = "UNION", + Unknown = "UNKNOWN", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Schema used for message serialization. + * + * Schema type used for the message. + */ +export enum SchemaType { + Avro = "Avro", + JSON = "JSON", + None = "None", + Other = "Other", + Protobuf = "Protobuf", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/assetCertification.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/assetCertification.ts new file mode 100644 index 000000000000..1bfa9bee35e4 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/assetCertification.ts @@ -0,0 +1,115 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Defines the Asset Certification schema. + */ +export interface AssetCertification { + /** + * The date when the certification was applied. + */ + appliedDate: number; + /** + * The date when the certification expires. + */ + expiryDate: number; + tagLabel: TagLabel; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/auditLog.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/auditLog.ts new file mode 100644 index 000000000000..0a4bafe7e17c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/auditLog.ts @@ -0,0 +1,59 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Audit Log type to capture the audit trail of POST, PUT, and PATCH + * API operations. + */ +export interface AuditLog { + /** + * Identifier of entity that was modified by the operation. + */ + entityId: string; + /** + * Type of Entity that is modified by the operation. + */ + entityType: string; + /** + * HTTP Method used in a call. + */ + method: Method; + /** + * Requested API Path. + */ + path: string; + /** + * HTTP response code for the api requested. + */ + responseCode: number; + /** + * Timestamp when the API call is made in Unix epoch time milliseconds in Unix epoch time + * milliseconds. + */ + timestamp?: number; + /** + * Name of the user who made the API request. + */ + userName: string; +} + +/** + * HTTP Method used in a call. + */ +export enum Method { + Delete = "DELETE", + Patch = "PATCH", + Post = "POST", + Put = "PUT", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/bulkOperationResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/bulkOperationResult.ts new file mode 100644 index 000000000000..1dd00b7df5a8 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/bulkOperationResult.ts @@ -0,0 +1,64 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Represents result of bulk Operation performed on entities. + */ +export interface BulkOperationResult { + /** + * Reason why import was aborted. This is set only when the `status` field is set to + * `aborted` + */ + abortReason?: string; + /** + * True if the operation has dryRun flag enabled + */ + dryRun?: boolean; + /** + * Failure Request that can be processed successfully. + */ + failedRequest?: Response[]; + numberOfRowsFailed?: number; + numberOfRowsPassed?: number; + numberOfRowsProcessed?: number; + status?: Status; + /** + * Request that can be processed successfully. + */ + successRequest?: Response[]; +} + +/** + * Request that can be processed successfully. + */ +export interface Response { + /** + * Message for the request. + */ + message?: string; + /** + * Request that can be processed successfully. + */ + request?: any; +} + +/** + * State of an action over API. + */ +export enum Status { + Aborted = "aborted", + Failure = "failure", + PartialSuccess = "partialSuccess", + Success = "success", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/changeEvent.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/changeEvent.ts new file mode 100644 index 000000000000..86140910b762 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/changeEvent.ts @@ -0,0 +1,144 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the change event type to capture the changes to entities. Entities + * change due to user activity, such as updating description of a dataset, changing + * ownership, or adding new tags. Entity also changes due to activities at the metadata + * sources, such as a new dataset was created, a datasets was deleted, or schema of a + * dataset is modified. When state of entity changes, an event is produced. These events can + * be used to build apps and bots that respond to the change from activities. + */ +export interface ChangeEvent { + /** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + */ + changeDescription?: ChangeDescription; + /** + * Current version of the entity after this change. Note that not all changes result in + * entity version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + currentVersion?: number; + /** + * Domain of the entity that was modified by the operation. + */ + domain?: string; + /** + * For `eventType` `entityCreated`, this field captures JSON coded string of the entity + * using the schema corresponding to `entityType`. + */ + entity?: any; + /** + * Fully Qualified Name of entity that was modified by the operation. + */ + entityFullyQualifiedName?: string; + /** + * Identifier of entity that was modified by the operation. + */ + entityId: string; + /** + * Entity type that changed. Use the schema of this entity to process the entity attribute. + */ + entityType: string; + eventType: EventType; + /** + * Unique identifier for the event. + */ + id: string; + /** + * Version of the entity before this change. Note that not all changes result in entity + * version change. When entity version is not changed, `previousVersion` is same as + * `currentVersion`. + */ + previousVersion?: number; + /** + * Timestamp when the change was made in Unix epoch time milliseconds. + */ + timestamp: number; + /** + * Name of the user whose activity resulted in the change. + */ + userName?: string; +} + +/** + * For `eventType` `entityUpdated` this field captures details about what fields were + * added/updated/deleted. For `eventType` `entityCreated` or `entityDeleted` this field is + * null. + * + * Description of the change. + */ +export interface ChangeDescription { + /** + * Names of fields added during the version changes. + */ + fieldsAdded?: FieldChange[]; + /** + * Fields deleted during the version changes with old value before deleted. + */ + fieldsDeleted?: FieldChange[]; + /** + * Fields modified during the version changes with old and new values. + */ + fieldsUpdated?: FieldChange[]; + /** + * When a change did not result in change, this could be same as the current version. + */ + previousVersion?: number; +} + +export interface FieldChange { + /** + * Name of the entity field that changed. + */ + name?: string; + /** + * New value of the field. Note that this is a JSON string and use the corresponding field + * type to deserialize it. + */ + newValue?: any; + /** + * Previous value of the field. Note that this is a JSON string and use the corresponding + * field type to deserialize it. + */ + oldValue?: any; +} + +/** + * Type of event. + */ +export enum EventType { + EntityCreated = "entityCreated", + EntityDeleted = "entityDeleted", + EntityFieldsChanged = "entityFieldsChanged", + EntityNoChange = "entityNoChange", + EntityRestored = "entityRestored", + EntitySoftDeleted = "entitySoftDeleted", + EntityUpdated = "entityUpdated", + LogicalTestCaseAdded = "logicalTestCaseAdded", + PostCreated = "postCreated", + PostUpdated = "postUpdated", + SuggestionAccepted = "suggestionAccepted", + SuggestionCreated = "suggestionCreated", + SuggestionDeleted = "suggestionDeleted", + SuggestionRejected = "suggestionRejected", + SuggestionUpdated = "suggestionUpdated", + TaskClosed = "taskClosed", + TaskResolved = "taskResolved", + ThreadCreated = "threadCreated", + ThreadUpdated = "threadUpdated", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/changeEventType.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/changeEventType.ts new file mode 100644 index 000000000000..321b6b221711 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/changeEventType.ts @@ -0,0 +1,38 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Type of event. + */ +export enum ChangeEventType { + EntityCreated = "entityCreated", + EntityDeleted = "entityDeleted", + EntityFieldsChanged = "entityFieldsChanged", + EntityNoChange = "entityNoChange", + EntityRestored = "entityRestored", + EntitySoftDeleted = "entitySoftDeleted", + EntityUpdated = "entityUpdated", + LogicalTestCaseAdded = "logicalTestCaseAdded", + PostCreated = "postCreated", + PostUpdated = "postUpdated", + SuggestionAccepted = "suggestionAccepted", + SuggestionCreated = "suggestionCreated", + SuggestionDeleted = "suggestionDeleted", + SuggestionRejected = "suggestionRejected", + SuggestionUpdated = "suggestionUpdated", + TaskClosed = "taskClosed", + TaskResolved = "taskResolved", + ThreadCreated = "threadCreated", + ThreadUpdated = "threadUpdated", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/collectionDescriptor.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/collectionDescriptor.ts new file mode 100644 index 000000000000..749cae969189 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/collectionDescriptor.ts @@ -0,0 +1,52 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Type used for capturing the details of a collection. + */ +export interface CollectionDescriptor { + collection?: CollectionInfo; +} + +/** + * Collection Info. + */ +export interface CollectionInfo { + /** + * Description of collection. + */ + documentation?: string; + /** + * URL of the API endpoint where given collections are available. + */ + href?: string; + images?: ImageList; + /** + * Unique name that identifies a collection. + */ + name?: string; +} + +/** + * Links to a list of images of varying resolutions/sizes. + */ +export interface ImageList { + image?: string; + image192?: string; + image24?: string; + image32?: string; + image48?: string; + image512?: string; + image72?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/csvDocumentation.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/csvDocumentation.ts new file mode 100644 index 000000000000..ed48f9192fc1 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/csvDocumentation.ts @@ -0,0 +1,43 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Documentation for CSV file that describes headers and example values. + */ +export interface CSVDocumentation { + /** + * Documentation for CSV file header + */ + headers: CSVHeader[]; + /** + * Summary documentation for CSV file. + */ + summary: string; +} + +/** + * Represents a header for a field in a CSV file. + */ +export interface CSVHeader { + /** + * Description of the header field for documentation purposes. + */ + description: string; + /** + * Example values for the field + */ + examples: string[]; + name: string; + required?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/csvErrorType.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/csvErrorType.ts new file mode 100644 index 000000000000..2cdcc0dfb3dd --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/csvErrorType.ts @@ -0,0 +1,25 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * What type of error occurred when importing a CSV file. + */ +export enum CSVErrorType { + FieldRequired = "FIELD_REQUIRED", + InvalidField = "INVALID_FIELD", + InvalidFieldCount = "INVALID_FIELD_COUNT", + InvalidHeader = "INVALID_HEADER", + ParserFailure = "PARSER_FAILURE", + Unknown = "UNKNOWN", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/csvFile.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/csvFile.ts new file mode 100644 index 000000000000..121cc0f22982 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/csvFile.ts @@ -0,0 +1,37 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Represents a CSV file. + */ +export interface CSVFile { + headers?: CSVHeader[]; + records?: Array; +} + +/** + * Represents a header for a field in a CSV file. + */ +export interface CSVHeader { + /** + * Description of the header field for documentation purposes. + */ + description: string; + /** + * Example values for the field + */ + examples: string[]; + name: string; + required?: boolean; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/csvImportResult.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/csvImportResult.ts new file mode 100644 index 000000000000..d7f93b693aa1 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/csvImportResult.ts @@ -0,0 +1,47 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Represents result of importing a CSV file. Detailed error is provided on if the CSV file + * is conformant and failure to load any of the records in the CSV file. + */ +export interface CSVImportResult { + /** + * Reason why import was aborted. This is set only when the `status` field is set to + * `aborted` + */ + abortReason?: string; + /** + * True if the CSV import has dryRun flag enabled + */ + dryRun?: boolean; + /** + * CSV file that captures the result of import operation. + */ + importResultsCsv?: string; + numberOfRowsFailed?: number; + numberOfRowsPassed?: number; + numberOfRowsProcessed?: number; + status?: Status; +} + +/** + * State of an action over API. + */ +export enum Status { + Aborted = "aborted", + Failure = "failure", + PartialSuccess = "partialSuccess", + Success = "success", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/complexTypes.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/complexTypes.ts new file mode 100644 index 000000000000..574e8681499c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/complexTypes.ts @@ -0,0 +1,34 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + export interface ComplexTypesObject { + "table-cp"?: Table; + [property: string]: any; +} + +/** + * A table-type custom property having rows and columns where all column data types are + * strings. + */ +export interface Table { + /** + * List of column names defined at the entity type level. + */ + columns: string[]; + /** + * List of rows added at the entity instance level. Each row contains dynamic fields based + * on the defined columns. + */ + rows?: { [key: string]: string }[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/enumConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/enumConfig.ts new file mode 100644 index 000000000000..5ceb583759e9 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/enumConfig.ts @@ -0,0 +1,21 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Applies to Enum type, this config is used to define list of enum values + */ +export interface EnumConfig { + multiSelect?: boolean; + values?: string[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/tableConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/tableConfig.ts new file mode 100644 index 000000000000..c8a16fdadf43 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperties/tableConfig.ts @@ -0,0 +1,26 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Custom property configuration for table-type property where all column data types are + * strings. + */ +export interface TableConfig { + /** + * List of column names defined at the entity type level. + */ + columns: string[]; + maxColumns?: number; + minColumns?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperty.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperty.ts new file mode 100644 index 000000000000..93090a601e78 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/customProperty.ts @@ -0,0 +1,108 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the custom property to an entity to extend it. + */ +export interface CustomProperty { + customPropertyConfig?: CustomPropertyConfig; + description: string; + /** + * Display Name for the custom property.Must be unique for an entity. + */ + displayName?: string; + /** + * Name of the entity property. Note a property name must be unique for an entity. Property + * name must follow camelCase naming adopted by openMetadata - must start with lower case + * with no space, underscore, or dots. + */ + name: string; + propertyType: EntityReference; +} + +/** + * Config to define constraints around CustomProperty + */ +export interface CustomPropertyConfig { + config?: string[] | Config | string; +} + +/** + * Applies to Enum type, this config is used to define list of enum values + * + * Custom property configuration for table-type property where all column data types are + * strings. + */ +export interface Config { + multiSelect?: boolean; + values?: string[]; + /** + * List of column names defined at the entity type level. + */ + columns?: string[]; + maxColumns?: number; + minColumns?: number; +} + +/** + * Reference to a property type. Only property types are allowed and entity types are not + * allowed as custom properties to extend an existing entity + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/dailyCount.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/dailyCount.ts new file mode 100644 index 000000000000..7decdd05514b --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/dailyCount.ts @@ -0,0 +1,25 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type for reporting the daily count of some measurement. For + * example, you might use this schema for the number of times a table is queried each day. + */ +export interface DailyCount { + /** + * Daily count of a measurement on the given date. + */ + count: number; + date: Date; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/databaseConnectionConfig.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/databaseConnectionConfig.ts new file mode 100644 index 000000000000..c27913d06684 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/databaseConnectionConfig.ts @@ -0,0 +1,67 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Database Connection Config to capture connection details to a database service. + */ +export interface DatabaseConnectionConfig { + /** + * Database of the data source. + */ + database?: string; + /** + * Run data profiler as part of ingestion to get table profile data. + */ + enableDataProfiler?: boolean; + /** + * Regex exclude tables or databases that matches the pattern. + */ + excludeFilterPattern?: string[]; + /** + * Turn on/off collecting sample data. + */ + generateSampleData?: boolean; + /** + * Host and port of the data source. + */ + hostPort?: string; + /** + * Regex to only fetch tables or databases that matches the pattern. + */ + includeFilterPattern?: string[]; + /** + * Optional configuration to turn off fetching metadata for tables. + */ + includeTables?: boolean; + /** + * optional configuration to turn off fetching metadata for views. + */ + includeViews?: boolean; + /** + * password to connect to the data source. + */ + password?: string; + /** + * query to generate sample data. + */ + sampleDataQuery?: string; + /** + * schema of the data source. + */ + schema?: string; + /** + * username to connect to the data source. + */ + username?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/entityHierarchy.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityHierarchy.ts new file mode 100644 index 000000000000..372497aa549a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityHierarchy.ts @@ -0,0 +1,73 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the entity hierarchy structure. + */ +export interface EntityHierarchy { + /** + * Other entities that are children of this entity. + */ + children?: ChildElement[]; + /** + * Description of the entity hierarchy. + */ + description: string; + /** + * Display name that identifies this hierarchy. + */ + displayName?: string; + /** + * A unique name that identifies an entity within the hierarchy. It captures name hierarchy + * in the form of `rootEntity.childEntity`. + */ + fullyQualifiedName?: string; + /** + * Unique identifier of an entity hierarchy instance. + */ + id: string; + /** + * Preferred name for the entity hierarchy. + */ + name: string; +} + +export interface ChildElement { + /** + * Other entities that are children of this entity. + */ + children?: ChildElement[]; + /** + * Description of the entity hierarchy. + */ + description: string; + /** + * Display name that identifies this hierarchy. + */ + displayName?: string; + /** + * A unique name that identifies an entity within the hierarchy. It captures name hierarchy + * in the form of `rootEntity.childEntity`. + */ + fullyQualifiedName?: string; + /** + * Unique identifier of an entity hierarchy instance. + */ + id: string; + /** + * Preferred name for the entity hierarchy. + */ + name: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/entityHistory.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityHistory.ts new file mode 100644 index 000000000000..24b1ec18eb43 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityHistory.ts @@ -0,0 +1,25 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type used for capturing version of history of entity. + */ +export interface EntityHistory { + /** + * Entity type, such as `database`, `table`, `dashboard`, for which this version history is + * produced. + */ + entityType: string; + versions: any[]; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/entityLineage.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityLineage.ts new file mode 100644 index 000000000000..ca2125c9abce --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityLineage.ts @@ -0,0 +1,162 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * The `Lineage` for a given data asset, has information of the input datasets used and the + * ETL pipeline that created it. + */ +export interface EntityLineage { + downstreamEdges?: Edge[]; + /** + * Primary entity for which this lineage graph is created. + */ + entity: EntityReference; + nodes?: EntityReference[]; + upstreamEdges?: Edge[]; +} + +/** + * Edge in the lineage graph from one entity to another by entity IDs. + */ +export interface Edge { + description?: string; + /** + * From entity that is upstream of lineage edge. + */ + fromEntity: string; + /** + * Optional lineageDetails provided only for table to table lineage edge. + */ + lineageDetails?: LineageDetails; + /** + * To entity that is downstream of lineage edge. + */ + toEntity: string; +} + +/** + * Optional lineageDetails provided only for table to table lineage edge. + * + * Lineage details including sqlQuery + pipeline + columnLineage. + */ +export interface LineageDetails { + /** + * Lineage information of how upstream columns were combined to get downstream column. + */ + columnsLineage?: ColumnLineage[]; + /** + * description of lineage + */ + description?: string; + /** + * Pipeline where the sqlQuery is periodically run. + */ + pipeline?: EntityReference; + /** + * Lineage type describes how a lineage was created. + */ + source?: Source; + /** + * SQL used for transformation. + */ + sqlQuery?: string; + [property: string]: any; +} + +export interface ColumnLineage { + /** + * One or more source columns identified by fully qualified column name used by + * transformation function to create destination column. + */ + fromColumns?: string[]; + /** + * Transformation function applied to source columns to create destination column. That is + * `function(fromColumns) -> toColumn`. + */ + function?: string; + /** + * Destination column identified by fully qualified column name created by the + * transformation of source columns. + */ + toColumn?: string; + [property: string]: any; +} + +/** + * Pipeline where the sqlQuery is periodically run. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Primary entity for which this lineage graph is created. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * Lineage type describes how a lineage was created. + */ +export enum Source { + DashboardLineage = "DashboardLineage", + DbtLineage = "DbtLineage", + ExternalTableLineage = "ExternalTableLineage", + Manual = "Manual", + OpenLineage = "OpenLineage", + PipelineLineage = "PipelineLineage", + QueryLineage = "QueryLineage", + SparkLineage = "SparkLineage", + ViewLineage = "ViewLineage", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/entityReference.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityReference.ts new file mode 100644 index 000000000000..1899cee68cfa --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityReference.ts @@ -0,0 +1,62 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/entityReferenceList.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityReferenceList.ts new file mode 100644 index 000000000000..c8ae66db9752 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityReferenceList.ts @@ -0,0 +1,67 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReferenceList { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/entityRelationship.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityRelationship.ts new file mode 100644 index 000000000000..a1fa7a80bc77 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityRelationship.ts @@ -0,0 +1,90 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the EntityRelationship type used for establishing relationship + * between two entities. EntityRelationship is used for capturing relationships from one + * entity to another. For example, a database contains tables. + */ +export interface EntityRelationship { + /** + * `true` indicates the relationship has been soft deleted. + */ + deleted?: boolean; + /** + * Type of the entity from which the relationship originates. Examples: `database`, `table`, + * `metrics` ... + */ + fromEntity: string; + /** + * Fully qualified name of the entity from which the relationship originates. + */ + fromFQN?: string; + /** + * Unique identifier that identifies the entity from which the relationship originates. + */ + fromId?: string; + /** + * Describes relationship between the two entities as an integer. + */ + relation?: number; + /** + * Describes relationship between the two entities. Eg: Database --- Contains --> Table. + */ + relationshipType: RelationshipType; + /** + * Type of the entity towards which the relationship refers to. Examples: `database`, + * `table`, `metrics` ... + */ + toEntity: string; + /** + * Fully qualified name of the entity towards which the relationship refers to. + */ + toFQN?: string; + /** + * Unique identifier that identifies the entity towards which the relationship refers to. + */ + toId?: string; +} + +/** + * Describes relationship between the two entities. Eg: Database --- Contains --> Table. + * + * This enum captures all the relationships between Catalog entities. Note that the + * relationship from is a Strong entity and to is Weak entity when possible. + */ +export enum RelationshipType { + AddressedTo = "addressedTo", + AppliedTo = "appliedTo", + Contains = "contains", + CreatedBy = "createdBy", + DefaultsTo = "defaultsTo", + EditedBy = "editedBy", + Expert = "expert", + Follows = "follows", + Has = "has", + IsAbout = "isAbout", + JoinedWith = "joinedWith", + MentionedIn = "mentionedIn", + Owns = "owns", + ParentOf = "parentOf", + ReactedTo = "reactedTo", + RelatedTo = "relatedTo", + RepliedTo = "repliedTo", + Reviews = "reviews", + TestedBy = "testedBy", + Upstream = "upstream", + Uses = "uses", + Voted = "voted", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/entityUsage.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityUsage.ts new file mode 100644 index 000000000000..c3f89c26fb02 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/entityUsage.ts @@ -0,0 +1,121 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type used for capturing usage details of an entity. + */ +export interface EntityUsage { + /** + * Entity for which usage is returned. + */ + entity: EntityReference; + /** + * List usage details per day. + */ + usage: UsageDetails[]; +} + +/** + * Entity for which usage is returned. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for usage details. Daily, weekly, and monthly aggregation of + * usage is computed along with the percentile rank based on the usage for a given day. + */ +export interface UsageDetails { + /** + * Daily usage stats of a data asset on the start date. + */ + dailyStats: UsageStats; + /** + * Date in UTC. + */ + date: Date; + /** + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + */ + monthlyStats?: UsageStats; + /** + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ + weeklyStats?: UsageStats; +} + +/** + * Daily usage stats of a data asset on the start date. + * + * Type used to return usage statistics. + * + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + * + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ +export interface UsageStats { + /** + * Usage count of a data asset on the start date. + */ + count: number; + /** + * Optional daily percentile rank data asset use when relevant. + */ + percentileRank?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/function.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/function.ts new file mode 100644 index 000000000000..66345fdbf6a5 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/function.ts @@ -0,0 +1,61 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Functions used for writing SpEL expression based conditions + */ +export interface Function { + /** + * Description for the function. + */ + description?: string; + /** + * Examples of the function to help users author conditions. + */ + examples?: any[]; + /** + * Description of input taken by the function. + */ + input?: string; + /** + * Name of the function. + */ + name?: string; + paramAdditionalContext?: ParamAdditionalContext; + /** + * List of receivers to send mail to + */ + parameterInputType?: ParameterType; +} + +/** + * Additional Context + */ +export interface ParamAdditionalContext { + /** + * List of Entities + */ + data?: any; +} + +/** + * List of receivers to send mail to + */ +export enum ParameterType { + AllIndexElasticSearch = "AllIndexElasticSearch", + NotRequired = "NotRequired", + ReadFromParamContext = "ReadFromParamContext", + ReadFromParamContextPerEntity = "ReadFromParamContextPerEntity", + SpecificIndexElasticSearch = "SpecificIndexElasticSearch", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/include.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/include.ts new file mode 100644 index 000000000000..ccd91fe4794c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/include.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * GET entity by id, GET entity by name, and LIST entities can include deleted or + * non-deleted entities using the parameter include. + */ +export enum Include { + All = "all", + Deleted = "deleted", + NonDeleted = "non-deleted", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/jdbcConnection.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/jdbcConnection.ts new file mode 100644 index 000000000000..d25ba18256eb --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/jdbcConnection.ts @@ -0,0 +1,35 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type used for JDBC connection information. + */ +export interface JDBCConnection { + /** + * JDBC connection URL. + */ + connectionUrl: string; + /** + * JDBC driver class. + */ + driverClass: string; + /** + * Login password. + */ + password: string; + /** + * Login user name. + */ + userName: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/lifeCycle.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/lifeCycle.ts new file mode 100644 index 000000000000..fbd86385f05c --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/lifeCycle.ts @@ -0,0 +1,106 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines Life Cycle Properties. + */ +export interface LifeCycle { + /** + * Access Details about accessed aspect of the data asset + */ + accessed?: AccessDetails; + /** + * Access Details about created aspect of the data asset + */ + created?: AccessDetails; + /** + * Access Details about updated aspect of the data asset + */ + updated?: AccessDetails; +} + +/** + * Access Details about accessed aspect of the data asset + * + * Access details of an entity + * + * Access Details about created aspect of the data asset + * + * Access Details about updated aspect of the data asset + */ +export interface AccessDetails { + /** + * User, Pipeline, Query that created,updated or accessed the data asset + */ + accessedBy?: EntityReference; + /** + * Any process that accessed the data asset that is not captured in OpenMetadata. + */ + accessedByAProcess?: string; + /** + * Timestamp of data asset accessed for creation, update, read. + */ + timestamp: number; +} + +/** + * User, Pipeline, Query that created,updated or accessed the data asset + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/paging.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/paging.ts new file mode 100644 index 000000000000..9d94854db5bf --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/paging.ts @@ -0,0 +1,39 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * Type used for cursor based pagination information in GET list responses. + */ +export interface Paging { + /** + * After cursor used for getting the next page (see API pagination for details). + */ + after?: string; + /** + * Before cursor used for getting the previous page (see API pagination for details). + */ + before?: string; + /** + * Limit used in case of offset based pagination. + */ + limit?: number; + /** + * Offset used in case of offset based pagination. + */ + offset?: number; + /** + * Total number of entries available to page through. + */ + total: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/profile.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/profile.ts new file mode 100644 index 000000000000..faf5b6b501d3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/profile.ts @@ -0,0 +1,91 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type for a profile of a user, team, or organization. + */ +export interface Profile { + images?: ImageList; + subscription?: MessagingProvider; +} + +/** + * Links to a list of images of varying resolutions/sizes. + */ +export interface ImageList { + image?: string; + image192?: string; + image24?: string; + image32?: string; + image48?: string; + image512?: string; + image72?: string; +} + +/** + * Holds the Subscription Config for different types + */ +export interface MessagingProvider { + gChat?: Webhook; + generic?: Webhook; + msTeams?: Webhook; + slack?: Webhook; +} + +/** + * This schema defines webhook for receiving events from OpenMetadata. + */ +export interface Webhook { + /** + * Endpoint to receive the webhook events over POST requests. + */ + endpoint?: string; + /** + * Custom headers to be sent with the webhook request. + */ + headers?: { [key: string]: any }; + /** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ + httpMethod?: HTTPMethod; + /** + * List of receivers to send mail to + */ + receivers?: string[]; + /** + * Secret set by the webhook client used for computing HMAC SHA256 signature of webhook + * payload and sent in `X-OM-Signature` header in POST requests to publish the events. + */ + secretKey?: string; + /** + * Send the Event to Admins + */ + sendToAdmins?: boolean; + /** + * Send the Event to Followers + */ + sendToFollowers?: boolean; + /** + * Send the Event to Owners + */ + sendToOwners?: boolean; +} + +/** + * HTTP operation to send the webhook request. Supports POST or PUT. + */ +export enum HTTPMethod { + Post = "POST", + Put = "PUT", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/queryParserData.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/queryParserData.ts new file mode 100644 index 000000000000..15e61c6ec015 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/queryParserData.ts @@ -0,0 +1,72 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines type of query parser data + */ +export interface QueryParserData { + parsedData?: Array; +} + +export interface ParsedDataObject { + /** + * Database associated with the table in the query + */ + databaseName?: string; + /** + * Database schema of the associated with query + */ + databaseSchema?: string; + /** + * Date of execution of SQL query + */ + date?: string; + /** + * SQL dialect + */ + dialect?: string; + /** + * How long did the query took to run in milliseconds. + */ + duration?: number; + /** + * Flag to check if query is to be excluded while processing usage + */ + exclude_usage?: boolean; + /** + * Maps each parsed table name of a query to the join information + */ + joins?: { [key: string]: any }; + /** + * SQL query type + */ + query_type?: string; + /** + * Name that identifies this database service. + */ + serviceName: string; + /** + * SQL query + */ + sql: string; + /** + * List of tables used in query + */ + tables: string[]; + /** + * Name of the user that executed the SQL query + */ + userName?: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/reaction.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/reaction.ts new file mode 100644 index 000000000000..79cea0ddf9a2 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/reaction.ts @@ -0,0 +1,89 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the reaction to an entity or a conversation in the activity feeds. + */ +export interface Reaction { + reactionType: ReactionType; + /** + * User who reacted. + */ + user: EntityReference; +} + +/** + * Type of reaction. + */ +export enum ReactionType { + Confused = "confused", + Eyes = "eyes", + Heart = "heart", + Hooray = "hooray", + Laugh = "laugh", + Rocket = "rocket", + ThumbsDown = "thumbsDown", + ThumbsUp = "thumbsUp", +} + +/** + * User who reacted. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/schedule.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/schedule.ts new file mode 100644 index 000000000000..3bb1a8f6f60f --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/schedule.ts @@ -0,0 +1,28 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type used for the schedule. The schedule has a start time and + * repeat frequency. + */ +export interface Schedule { + /** + * Repeat frequency in ISO 8601 duration format. Example - 'P23DT23H'. + */ + repeatFrequency?: string; + /** + * Start date and time of the schedule. + */ + startDate?: Date; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/schema.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/schema.ts new file mode 100644 index 000000000000..8950bdb1fb43 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/schema.ts @@ -0,0 +1,196 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Topic entity. A topic is a feed into which message are published + * to by publishers and read from by consumers in a messaging service. + */ +export interface Schema { + /** + * Columns in this schema. + */ + schemaFields?: Field[]; + /** + * Schema used for message serialization. Optional as some topics may not have associated + * schemas. + */ + schemaText?: string; + /** + * Schema used for message serialization. + */ + schemaType?: SchemaType; + [property: string]: any; +} + +/** + * This schema defines the nested object to capture protobuf/avro/jsonschema of topic's + * schema. + */ +export interface Field { + /** + * Child fields if dataType or arrayDataType is `map`, `record`, `message` + */ + children?: Field[]; + /** + * Data type of the field (int, date etc.). + */ + dataType: DataTypeTopic; + /** + * Display name used for dataType. This is useful for complex types, such as `array`, + * `map`, `struct<>`, and union types. + */ + dataTypeDisplay?: string; + /** + * Description of the column. + */ + description?: string; + /** + * Display Name that identifies this field name. + */ + displayName?: string; + fullyQualifiedName?: string; + name: string; + /** + * Tags associated with the column. + */ + tags?: TagLabel[]; +} + +/** + * Data type of the field (int, date etc.). + * + * This enum defines the type of data defined in schema. + */ +export enum DataTypeTopic { + Array = "ARRAY", + Boolean = "BOOLEAN", + Bytes = "BYTES", + Date = "DATE", + Double = "DOUBLE", + Enum = "ENUM", + Error = "ERROR", + Fixed = "FIXED", + Float = "FLOAT", + Int = "INT", + Long = "LONG", + Map = "MAP", + Null = "NULL", + Record = "RECORD", + String = "STRING", + Time = "TIME", + Timestamp = "TIMESTAMP", + Timestampz = "TIMESTAMPZ", + Union = "UNION", + Unknown = "UNKNOWN", +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} + +/** + * Schema used for message serialization. + * + * Schema type used for the message. + */ +export enum SchemaType { + Avro = "Avro", + JSON = "JSON", + None = "None", + Other = "Other", + Protobuf = "Protobuf", +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/tableQuery.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/tableQuery.ts new file mode 100644 index 000000000000..72ffe9c3f8ea --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/tableQuery.ts @@ -0,0 +1,79 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines structure of table query + */ +export interface TableQuery { + /** + * Date of execution of SQL query + */ + queries?: Array; +} + +export interface TableQueryObject { + /** + * Flag to check if query was aborted during execution + */ + aborted?: boolean; + /** + * Date of execution of SQL query + */ + analysisDate?: Date; + /** + * Database associated with the table in the query + */ + databaseName?: string; + /** + * Database schema of the associated with query + */ + databaseSchema?: string; + /** + * SQL dialect + */ + dialect?: string; + /** + * How long did the query took to run in milliseconds. + */ + duration?: number; + /** + * End time of execution of SQL query + */ + endTime?: string; + /** + * Flag to check if query is to be excluded while processing usage + */ + exclude_usage?: boolean; + /** + * SQL query + */ + query: string; + /** + * SQL query type + */ + query_type?: string; + /** + * Name that identifies this database service. + */ + serviceName: string; + /** + * Start time of execution of SQL query + */ + startTime?: string; + /** + * Name of the user that executed the SQL query + */ + userName?: string; + [property: string]: any; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/tableUsageCount.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/tableUsageCount.ts new file mode 100644 index 000000000000..da7e404c29c3 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/tableUsageCount.ts @@ -0,0 +1,299 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This model is the linking between the usage stage and bulk sink steps + */ +export interface TableUsageCount { + /** + * Usage count of table + */ + count?: number; + /** + * Database associated with the table in the query + */ + databaseName?: string; + /** + * Database schema of the associated with table + */ + databaseSchema?: string; + /** + * Date of execution of SQL query + */ + date: string; + /** + * List of joins associated with table + */ + joins?: TableColumnJoin[]; + /** + * Name that identifies this database service. + */ + serviceName: string; + /** + * List of SQL Queries associated with table + */ + sqlQueries?: CreateQueryRequest[]; + /** + * Name of the table + */ + table: string; +} + +export interface TableColumnJoin { + /** + * List of table columns with which the table is joined with + */ + joinedWith?: TableColumn[]; + /** + * Source table column + */ + tableColumn?: TableColumn; +} + +/** + * Source table column + */ +export interface TableColumn { + /** + * Name of the column + */ + column?: string; + /** + * Name of the table + */ + table?: string; +} + +/** + * Create Query Request + */ +export interface CreateQueryRequest { + /** + * Description of the query instance. + */ + description?: string; + /** + * SQL dialect. + */ + dialect?: string; + /** + * Display Name that identifies this query. + */ + displayName?: string; + /** + * Fully qualified name of the domain the Table belongs to. + */ + domain?: string; + /** + * How long did the query took to run in milliseconds. + */ + duration?: number; + /** + * Flag to check if query is to be excluded while processing usage + */ + exclude_usage?: boolean; + /** + * Name of a Query in case of User Creation. + */ + name?: string; + /** + * Owners of this entity + */ + owners?: EntityReference[]; + /** + * Flag if this query has already been successfully processed for lineage + */ + processedLineage?: boolean; + /** + * SQL Query definition. + */ + query: string; + /** + * SQL query type + */ + query_type?: string; + /** + * Date on which the query ran. + */ + queryDate?: number; + /** + * list of entities to which the query is joined. + */ + queryUsedIn?: EntityReference[]; + /** + * Link to the database service fully qualified name where this query has been run + */ + service: string; + /** + * Tags for this Query + */ + tags?: TagLabel[]; + /** + * Entity that triggered the query. E.g., a Stored Procedure or a Pipeline Task. + */ + triggeredBy?: EntityReference; + /** + * List of users who ran the query but does not exist in OpenMetadata. + */ + usedBy?: string[]; + /** + * UserName of the user running the query. + */ + users?: string[]; +} + +/** + * Owners of this entity + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * Entity that triggered the query. E.g., a Stored Procedure or a Pipeline Task. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} + +/** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/tagLabel.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/tagLabel.ts new file mode 100644 index 000000000000..0a62115af9d7 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/tagLabel.ts @@ -0,0 +1,100 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type for labeling an entity with a Tag. + */ +export interface TagLabel { + /** + * Description for the tag label. + */ + description?: string; + /** + * Display Name that identifies this tag. + */ + displayName?: string; + /** + * Link to the tag resource. + */ + href?: string; + /** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ + labelType: LabelType; + /** + * Name of the tag or glossary term. + */ + name?: string; + /** + * Label is from Tags or Glossary. + */ + source: TagSource; + /** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ + state: State; + style?: Style; + tagFQN: string; +} + +/** + * Label type describes how a tag label was applied. 'Manual' indicates the tag label was + * applied by a person. 'Derived' indicates a tag label was derived using the associated tag + * relationship (see Classification.json for more details). 'Propagated` indicates a tag + * label was propagated from upstream based on lineage. 'Automated' is used when a tool was + * used to determine the tag label. + */ +export enum LabelType { + Automated = "Automated", + Derived = "Derived", + Manual = "Manual", + Propagated = "Propagated", +} + +/** + * Label is from Tags or Glossary. + */ +export enum TagSource { + Classification = "Classification", + Glossary = "Glossary", +} + +/** + * 'Suggested' state is used when a tag label is suggested by users or tools. Owner of the + * entity must confirm the suggested labels before it is marked as 'Confirmed'. + */ +export enum State { + Confirmed = "Confirmed", + Suggested = "Suggested", +} + +/** + * UI Style is used to associate a color code and/or icon to entity to customize the look of + * that entity in UI. + */ +export interface Style { + /** + * Hex Color Code to mark an entity such as GlossaryTerm, Tag, Domain or Data Product. + */ + color?: string; + /** + * An icon to associate with GlossaryTerm, Tag, Domain or Data Product. + */ + iconURL?: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/usageDetails.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/usageDetails.ts new file mode 100644 index 000000000000..54f655f9b42e --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/usageDetails.ts @@ -0,0 +1,56 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the type for usage details. Daily, weekly, and monthly aggregation of + * usage is computed along with the percentile rank based on the usage for a given day. + */ +export interface UsageDetails { + /** + * Daily usage stats of a data asset on the start date. + */ + dailyStats: UsageStats; + /** + * Date in UTC. + */ + date: Date; + /** + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + */ + monthlyStats?: UsageStats; + /** + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ + weeklyStats?: UsageStats; +} + +/** + * Daily usage stats of a data asset on the start date. + * + * Type used to return usage statistics. + * + * Monthly (last 30 days) rolling usage stats of a data asset on the start date. + * + * Weekly (last 7 days) rolling usage stats of a data asset on the start date. + */ +export interface UsageStats { + /** + * Usage count of a data asset on the start date. + */ + count: number; + /** + * Optional daily percentile rank data asset use when relevant. + */ + percentileRank?: number; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/usageRequest.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/usageRequest.ts new file mode 100644 index 000000000000..c61936e62395 --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/usageRequest.ts @@ -0,0 +1,28 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines type of table usage request used to publish the usage count on a + * particular date + */ +export interface UsageRequest { + /** + * Usage count of table + */ + count: number; + /** + * Date of execution of SQL query + */ + date: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/type/votes.ts b/openmetadata-ui/src/main/resources/ui/src/generated/type/votes.ts new file mode 100644 index 000000000000..08d98471765a --- /dev/null +++ b/openmetadata-ui/src/main/resources/ui/src/generated/type/votes.ts @@ -0,0 +1,91 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + /** + * This schema defines the Votes for a Data Asset. + */ +export interface Votes { + /** + * List of all the Users who downVoted + */ + downVoters?: EntityReference[]; + /** + * Total down-votes the entity has + */ + downVotes?: number; + /** + * List of all the Users who upVoted + */ + upVoters?: EntityReference[]; + /** + * Total up-votes the entity has + */ + upVotes?: number; +} + +/** + * List of all the Users who downVoted + * + * This schema defines the EntityReferenceList type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + * + * This schema defines the EntityReference type used for referencing an entity. + * EntityReference is used for capturing relationships from one entity to another. For + * example, a table has an attribute called database of type EntityReference that captures + * the relationship of a table `belongs to a` database. + */ +export interface EntityReference { + /** + * If true the entity referred to has been soft-deleted. + */ + deleted?: boolean; + /** + * Optional description of entity. + */ + description?: string; + /** + * Display Name that identifies this entity. + */ + displayName?: string; + /** + * Fully qualified name of the entity instance. For entities such as tables, databases + * fullyQualifiedName is returned in this field. For entities that don't have name hierarchy + * such as `user` and `team` this will be same as the `name` field. + */ + fullyQualifiedName?: string; + /** + * Link to the entity resource. + */ + href?: string; + /** + * Unique identifier that identifies an entity instance. + */ + id: string; + /** + * If true the relationship indicated by this entity reference is inherited from the parent + * entity. + */ + inherited?: boolean; + /** + * Name of the entity instance. + */ + name?: string; + /** + * Entity type/class name - Examples: `database`, `table`, `metrics`, `databaseService`, + * `dashboardService`... + */ + type: string; +} diff --git a/openmetadata-ui/src/main/resources/ui/webpack.config.prod.js b/openmetadata-ui/src/main/resources/ui/webpack.config.prod.js index 4244bd0842a1..d0448e005398 100644 --- a/openmetadata-ui/src/main/resources/ui/webpack.config.prod.js +++ b/openmetadata-ui/src/main/resources/ui/webpack.config.prod.js @@ -14,13 +14,22 @@ const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CopyWebpackPlugin = require('copy-webpack-plugin'); -const process = require('process'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); +const CompressionPlugin = require('compression-webpack-plugin'); +const TerserPlugin = require('terser-webpack-plugin'); +const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); const outputPath = path.join(__dirname, 'dist/assets'); const subPath = process.env.APP_SUB_PATH ?? ''; module.exports = { + cache: { + type: 'filesystem', // Use filesystem for cache + buildDependencies: { + config: [__filename], // Cache invalidation on config file changes + }, + }, + // Production mode mode: 'production', @@ -30,11 +39,9 @@ module.exports = { // Output configuration output: { path: outputPath, - filename: 'openmetadata.[fullhash].js', - chunkFilename: '[name].[fullhash].js', - // Clean the output directory before emit. - clean: true, - // Ensures bundle is served from absolute path as opposed to relative + filename: '[name].[contenthash].js', // Use contenthash for unique filenames + chunkFilename: '[name].[contenthash].js', // Ensure unique chunk filenames + clean: true, // Clean the output directory before emit publicPath: `${subPath ?? ''}/`, }, @@ -53,19 +60,32 @@ module.exports = { // .ts and .tsx files to be handled by ts-loader { test: /\.(ts|tsx)$/, - loader: 'ts-loader', exclude: [/node_modules/, /dist/], - options: { - configFile: 'tsconfig.json', - transpileOnly: true, // Speed up compilation in development mode - }, - include: path.resolve(__dirname, 'src'), // Just the source code + include: path.resolve(__dirname, 'src'), + use: [ + { + loader: 'thread-loader', + options: { + workers: require('os').cpus().length - 1, // Use all available CPU cores minus one + }, + }, + { + loader: 'ts-loader', + options: { + configFile: 'tsconfig.json', + happyPackMode: true, // Enable faster builds with HappyPack compatibility + transpileOnly: true, // Speed up compilation in development mode + }, + }, + ], }, + // .css files to be handled by style-loader & css-loader { test: /\.(css)$/, use: ['style-loader', 'css-loader'], }, + // .less files to be handled by less-loader { test: /\.less$/, @@ -83,21 +103,34 @@ module.exports = { }, ], }, + // .svg files to be handled by @svgr/webpack { test: /\.svg$/, use: ['@svgr/webpack', 'url-loader'], - include: path.resolve(__dirname, 'src'), // Just the source code + include: path.resolve(__dirname, 'src'), }, - // images files to be handled by file-loader + + // Images to be handled by file-loader + image-webpack-loader { - test: /\.png$/, + test: /\.(png|jpe?g|gif)$/i, use: [ { loader: 'file-loader', options: { - name: '[name].[ext]', - outputPath: 'images/', + name: 'images/[name].[contenthash].[ext]', // Output file naming + outputPath: 'images/', // Directory in the output folder + publicPath: '/', // Public path used in the app + }, + }, + { + loader: 'image-webpack-loader', + options: { + mozjpeg: { progressive: true, quality: 75 }, + optipng: { enabled: false }, + pngquant: { quality: [0.65, 0.9], speed: 4 }, + gifsicle: { interlaced: false }, + webp: { quality: 75 }, // Modern image format support }, }, ], @@ -107,7 +140,6 @@ module.exports = { // Module resolution resolve: { - // File types to be handled extensions: ['.ts', '.tsx', '.js', '.css', '.less', '.svg'], fallback: { https: require.resolve('https-browserify'), @@ -116,15 +148,50 @@ module.exports = { }, alias: { process: 'process/browser', - Quill: path.resolve(__dirname, 'node_modules/quill'), // Alias for the 'quill' library in node_modules + Quill: path.resolve(__dirname, 'node_modules/quill'), }, }, + // Optimizations + optimization: { + minimize: true, + minimizer: [ + new TerserPlugin({ + parallel: true, + terserOptions: { + compress: { + drop_console: true, // Remove console logs for production + }, + }, + }), + ], + splitChunks: { + chunks: 'all', // Split all types of chunks + maxSize: 240000, // Maximum size for chunks + cacheGroups: { + default: { + reuseExistingChunk: true, // Reuse existing chunks + priority: -10, + }, + vendors: { + test: /[\\/]node_modules[\\/]/, + name: 'vendors', + chunks: 'all', + priority: -20, + }, + }, + }, + runtimeChunk: 'single', // Separate runtime code into its own chunk + chunkIds: 'deterministic', // Use stable and unique chunk IDs + }, + + // Plugins plugins: [ // Clean webpack output directory new CleanWebpackPlugin({ - verbose: true, + verbose: true, // Log removed files }), + // Generate index.html from template new HtmlWebpackPlugin({ favicon: path.join(__dirname, 'public/favicon.png'), @@ -133,7 +200,8 @@ module.exports = { template: path.join(__dirname, 'public/index.html'), scriptLoading: 'defer', }), - // Copy favicon, logo and manifest for index.html + + // Copy favicon, logo, manifest, and other assets new CopyWebpackPlugin({ patterns: [ { @@ -178,5 +246,20 @@ module.exports = { }, ], }), + + // Compress output files + new CompressionPlugin({ + algorithm: 'gzip', + test: /\.(js|css|html|svg)$/, + }), + + // Bundle analyzer (optional, for debugging) + new BundleAnalyzerPlugin({ + analyzerMode: 'static', // Outputs an HTML report + openAnalyzer: false, // Set to true to open report automatically + }), ], -}; + + // Disable source maps for production + devtool: false, +}; \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/yarn.lock b/openmetadata-ui/src/main/resources/ui/yarn.lock index e5fa09ef4c86..e7bf7a5f81d8 100644 --- a/openmetadata-ui/src/main/resources/ui/yarn.lock +++ b/openmetadata-ui/src/main/resources/ui/yarn.lock @@ -2395,6 +2395,11 @@ scroll-smooth "^1.1.0" scrollparent "^2.0.1" +"@discoveryjs/json-ext@0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" + integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== + "@discoveryjs/json-ext@^0.5.0": version "0.5.3" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" @@ -2964,6 +2969,11 @@ dependencies: playwright "1.44.1" +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.28" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.28.tgz#d45e01c4a56f143ee69c54dd6b12eade9e270a73" + integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== + "@popperjs/core@^2.9.0": version "2.11.8" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" @@ -3096,6 +3106,11 @@ lodash "^4.17.21" lodash-es "^4.17.21" +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -5114,11 +5129,23 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +acorn-walk@^8.0.0: + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + dependencies: + acorn "^8.11.0" + acorn@^7.1.1, acorn@^7.4.0, acorn@^7.4.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.4, acorn@^8.11.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + acorn@^8.2.4, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.2: version "8.12.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" @@ -5151,7 +5178,7 @@ ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv-keywords@^5.0.0: +ajv-keywords@^5.0.0, ajv-keywords@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== @@ -5178,7 +5205,7 @@ ajv@^8.0.0, ajv@^8.8.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@^8.0.1: +ajv@^8.0.1, ajv@^8.9.0: version "8.17.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== @@ -5337,6 +5364,18 @@ apg-lite@^1.0.3: resolved "https://registry.yarnpkg.com/apg-lite/-/apg-lite-1.0.4.tgz#d517a8d775659603cb0c70843355954b73e88cc7" integrity sha512-B32zCN3IdHIc99Vy7V9BaYTUzLeRA8YXYY1aQD1/5I2aqIrO0coi4t6hJPqMisidlBxhyME8UexkHt31SlR6Og== +arch@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + +archive-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" + integrity sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA== + dependencies: + file-type "^4.2.0" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -5771,6 +5810,54 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== +bin-build@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bin-build/-/bin-build-3.0.0.tgz#c5780a25a8a9f966d8244217e6c1f5082a143861" + integrity sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA== + dependencies: + decompress "^4.0.0" + download "^6.2.2" + execa "^0.7.0" + p-map-series "^1.0.0" + tempfile "^2.0.0" + +bin-check@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bin-check/-/bin-check-4.1.0.tgz#fc495970bdc88bb1d5a35fc17e65c4a149fc4a49" + integrity sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA== + dependencies: + execa "^0.7.0" + executable "^4.1.0" + +bin-version-check@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/bin-version-check/-/bin-version-check-4.0.0.tgz#7d819c62496991f80d893e6e02a3032361608f71" + integrity sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ== + dependencies: + bin-version "^3.0.0" + semver "^5.6.0" + semver-truncate "^1.1.2" + +bin-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bin-version/-/bin-version-3.1.0.tgz#5b09eb280752b1bd28f0c9db3f96f2f43b6c0839" + integrity sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ== + dependencies: + execa "^1.0.0" + find-versions "^3.0.0" + +bin-wrapper@^4.0.0, bin-wrapper@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bin-wrapper/-/bin-wrapper-4.1.0.tgz#99348f2cf85031e3ef7efce7e5300aeaae960605" + integrity sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q== + dependencies: + bin-check "^4.1.0" + bin-version-check "^4.0.0" + download "^7.1.0" + import-lazy "^3.1.0" + os-filter-obj "^2.0.0" + pify "^4.0.1" + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -5783,6 +5870,14 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bl@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" + integrity sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww== + dependencies: + readable-stream "^2.3.5" + safe-buffer "^5.1.1" + bl@^4.0.3: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -5889,12 +5984,35 @@ btoa@^1.2.1: resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== + buffer-from@1.x, buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.5.0: +buffer@^5.2.1, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -5920,6 +6038,19 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + integrity sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ== + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -5989,6 +6120,16 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" +caw@^2.0.0, caw@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/caw/-/caw-2.0.1.tgz#6c3ca071fc194720883c2dc5da9b074bfc7e9e95" + integrity sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA== + dependencies: + get-proxy "^2.0.0" + isurl "^1.0.0-alpha5" + tunnel-agent "^0.6.0" + url-to-options "^1.0.1" + chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -6019,7 +6160,17 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chokidar@^3.4.2: +chokidar-cli@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chokidar-cli/-/chokidar-cli-3.0.0.tgz#29283666063b9e167559d30f247ff8fc48794eb7" + integrity sha512-xVW+Qeh7z15uZRxHOkP93Ux8A0xbPzwK4GaqD8dQOYc34TlkqUhVSS59fK36DOp5WdJlrRzlYSy02Ht99FjZqQ== + dependencies: + chokidar "^3.5.2" + lodash.debounce "^4.0.8" + lodash.throttle "^4.1.1" + yargs "^13.3.0" + +chokidar@^3.4.2, chokidar@^3.5.2: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== @@ -6155,6 +6306,13 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +clone-response@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q== + dependencies: + mimic-response "^1.0.0" + clone@2.x, clone@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" @@ -6241,7 +6399,7 @@ commander@^10.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== -commander@^2.19.0, commander@^2.20.0: +commander@^2.19.0, commander@^2.20.0, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -6283,6 +6441,14 @@ compressible@~2.0.16: dependencies: mime-db ">= 1.43.0 < 2" +compression-webpack-plugin@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-11.1.0.tgz#ee340d2029cf99ccecdea9ad1410b377d15b48b3" + integrity sha512-zDOQYp10+upzLxW+VRSjEpRRwBXJdsb5lBMlRxx1g8hckIFBpe3DTI0en2w7h+beuq89576RVzfiXrkdPGrHhA== + dependencies: + schema-utils "^4.2.0" + serialize-javascript "^6.0.2" + compression@^1.7.4: version "1.7.4" resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" @@ -6325,12 +6491,20 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +config-chain@^1.1.11: + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + connect-history-api-fallback@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== -content-disposition@0.5.4: +content-disposition@0.5.4, content-disposition@^0.5.2: version "0.5.4" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== @@ -6497,7 +6671,7 @@ cross-fetch@^3.1.5: dependencies: node-fetch "2.6.7" -cross-spawn@7.0.5, cross-spawn@^6.0.0, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@7.0.5, cross-spawn@^5.0.1, cross-spawn@^6.0.0, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82" integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug== @@ -6615,6 +6789,14 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== +cwebp-bin@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cwebp-bin/-/cwebp-bin-7.0.1.tgz#cb1303bf43f645ba5b2ece342773c4a93574d4f4" + integrity sha512-Ko5ADY74/dbfd8xG0+f+MUP9UKjCe1TG4ehpW0E5y4YlPdwDJlGrSzSR4/Yonxpm9QmZE1RratkIxFlKeyo3FA== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.1" + "d3-array@2 - 3", "d3-array@2.10.0 - 3", d3-array@^3.1.6: version "3.2.3" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.3.tgz#39f1f4954e4a09ff69ac597c2d61906b04e84740" @@ -6784,6 +6966,11 @@ dayjs@1.x: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb" integrity sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ== +debounce@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + debug@2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -6827,6 +7014,18 @@ decimal.js@^10.2.1: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== +decode-uri-component@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA== + dependencies: + mimic-response "^1.0.0" + decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -6834,6 +7033,59 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" +decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" + integrity sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ== + dependencies: + file-type "^5.2.0" + is-stream "^1.1.0" + tar-stream "^1.5.2" + +decompress-tarbz2@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" + integrity sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A== + dependencies: + decompress-tar "^4.1.0" + file-type "^6.1.0" + is-stream "^1.1.0" + seek-bzip "^1.0.5" + unbzip2-stream "^1.0.9" + +decompress-targz@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" + integrity sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w== + dependencies: + decompress-tar "^4.1.1" + file-type "^5.2.0" + is-stream "^1.1.0" + +decompress-unzip@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" + integrity sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw== + dependencies: + file-type "^3.8.0" + get-stream "^2.2.0" + pify "^2.3.0" + yauzl "^2.4.2" + +decompress@^4.0.0, decompress@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" + integrity sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ== + dependencies: + decompress-tar "^4.0.0" + decompress-tarbz2 "^4.0.0" + decompress-targz "^4.0.0" + decompress-unzip "^4.0.1" + graceful-fs "^4.1.10" + make-dir "^1.0.0" + pify "^2.3.0" + strip-dirs "^2.0.0" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -7136,11 +7388,56 @@ dotenv@^16.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== +download@^6.2.2: + version "6.2.5" + resolved "https://registry.yarnpkg.com/download/-/download-6.2.5.tgz#acd6a542e4cd0bb42ca70cfc98c9e43b07039714" + integrity sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA== + dependencies: + caw "^2.0.0" + content-disposition "^0.5.2" + decompress "^4.0.0" + ext-name "^5.0.0" + file-type "5.2.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^7.0.0" + make-dir "^1.0.0" + p-event "^1.0.0" + pify "^3.0.0" + +download@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/download/-/download-7.1.0.tgz#9059aa9d70b503ee76a132897be6dec8e5587233" + integrity sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ== + dependencies: + archive-type "^4.0.0" + caw "^2.0.1" + content-disposition "^0.5.2" + decompress "^4.2.0" + ext-name "^5.0.0" + file-type "^8.1.0" + filenamify "^2.0.0" + get-stream "^3.0.0" + got "^8.3.1" + make-dir "^1.2.0" + p-event "^2.1.0" + pify "^3.0.0" + drange@^1.0.2: version "1.1.1" resolved "https://registry.yarnpkg.com/drange/-/drange-1.1.1.tgz#b2aecec2aab82fcef11dbbd7b9e32b83f8f6c0b8" integrity sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA== +duplexer3@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.5.tgz#0b5e4d7bad5de8901ea4440624c8e1d20099217e" + integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + editorconfig@^0.15.3: version "0.15.3" resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" @@ -7196,7 +7493,7 @@ encodeurl@~2.0.0: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -7495,7 +7792,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -7770,11 +8067,35 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +exec-buffer@^3.0.0, exec-buffer@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/exec-buffer/-/exec-buffer-3.2.0.tgz#b1686dbd904c7cf982e652c1f5a79b1e5573082b" + integrity sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA== + dependencies: + execa "^0.7.0" + p-finally "^1.0.0" + pify "^3.0.0" + rimraf "^2.5.4" + tempfile "^2.0.0" + exec-sh@^0.3.2: version "0.3.6" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw== + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -7818,6 +8139,13 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +executable@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== + dependencies: + pify "^2.2.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -7877,6 +8205,21 @@ express@^4.17.3: utils-merge "1.0.1" vary "~1.1.2" +ext-list@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ext-list/-/ext-list-2.2.2.tgz#0b98e64ed82f5acf0f2931babf69212ef52ddd37" + integrity sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA== + dependencies: + mime-db "^1.28.0" + +ext-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ext-name/-/ext-name-5.0.0.tgz#70781981d183ee15d13993c8822045c506c8f0a6" + integrity sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ== + dependencies: + ext-list "^2.0.0" + sort-keys-length "^1.0.0" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -7965,6 +8308,13 @@ fast-uri@^3.0.1: resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== +fast-xml-parser@^4.1.3: + version "4.5.0" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz#2882b7d01a6825dfdf909638f2de0256351def37" + integrity sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg== + dependencies: + strnum "^1.0.5" + fastest-levenshtein@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" @@ -7991,6 +8341,13 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== + dependencies: + pend "~1.2.0" + fetch-readablestream@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/fetch-readablestream/-/fetch-readablestream-0.2.0.tgz#eaa6d1a76b12de2d4731a343393c6ccdcfe2c795" @@ -8011,11 +8368,60 @@ file-loader@^6.2.0: loader-utils "^2.0.0" schema-utils "^3.0.0" +file-type@5.2.0, file-type@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" + integrity sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ== + +file-type@^10.4.0, file-type@^10.5.0: + version "10.11.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890" + integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw== + +file-type@^12.0.0: + version "12.4.2" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-12.4.2.tgz#a344ea5664a1d01447ee7fb1b635f72feb6169d9" + integrity sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg== + +file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA== + +file-type@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.4.0.tgz#1b600e5fca1fbdc6e80c0a70c71c8dba5f7906c5" + integrity sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ== + +file-type@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" + integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== + +file-type@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-8.1.0.tgz#244f3b7ef641bbe0cca196c7276e4b332399f68c" + integrity sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ== + file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-2.1.0.tgz#88faf495fb1b47abfd612300002a16228c677ee9" + integrity sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + fill-range@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" @@ -8065,6 +8471,13 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-versions@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" + integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== + dependencies: + semver-regex "^2.0.0" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -8142,6 +8555,14 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +from2@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -8302,6 +8723,26 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-proxy@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/get-proxy/-/get-proxy-2.1.0.tgz#349f2b4d91d44c4d4d4e9cba2ad90143fac5ef93" + integrity sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw== + dependencies: + npm-conf "^1.1.0" + +get-stream@3.0.0, get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + +get-stream@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA== + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -8338,6 +8779,15 @@ get-symbol-description@^1.0.2: es-errors "^1.3.0" get-intrinsic "^1.2.4" +gifsicle@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/gifsicle/-/gifsicle-5.3.0.tgz#499713c6f1e89ebbc3630da3a74fdb4697913b4e" + integrity sha512-FJTpgdj1Ow/FITB7SVza5HlzXa+/lqEY0tHQazAJbuAdvyJtkH4wIdsR2K414oaTwRXHFLLF+tYbipj+OpYg+Q== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + execa "^5.0.0" + github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" @@ -8404,7 +8854,7 @@ globalthis@^1.0.3: define-properties "^1.2.1" gopd "^1.0.1" -globby@^10.0.1: +globby@^10.0.0, globby@^10.0.1: version "10.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== @@ -8460,7 +8910,50 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: +got@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +got@^8.3.1: + version "8.3.2" + resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -8470,6 +8963,13 @@ growly@^1.3.0: resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -8514,6 +9014,11 @@ has-proto@^1.0.1, has-proto@^1.0.3: resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" @@ -8524,6 +9029,13 @@ has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + has-tostringtag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" @@ -8610,7 +9122,7 @@ html-entities@^2.3.2: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== -html-escaper@^2.0.0: +html-escaper@^2.0.0, html-escaper@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== @@ -8676,6 +9188,11 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" @@ -8831,6 +9348,91 @@ image-size@~0.5.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== +image-webpack-loader@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/image-webpack-loader/-/image-webpack-loader-8.1.0.tgz#cd97172e1e7304ef5eb898344fc25bbb650fc7d7" + integrity sha512-bxzMIBNu42KGo6Bc9YMB0QEUt+XuVTl2ZSX3oGAlbsqYOkxkT4TEWvVsnwUkCRCYISJrMCEc/s0y8OYrmEfUOg== + dependencies: + imagemin "^7.0.1" + loader-utils "^2.0.0" + object-assign "^4.1.1" + schema-utils "^2.7.1" + optionalDependencies: + imagemin-gifsicle "^7.0.0" + imagemin-mozjpeg "^9.0.0" + imagemin-optipng "^8.0.0" + imagemin-pngquant "^9.0.2" + imagemin-svgo "^9.0.0" + imagemin-webp "^7.0.0" + +imagemin-gifsicle@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/imagemin-gifsicle/-/imagemin-gifsicle-7.0.0.tgz#1a7ab136a144c4678657ba3b6c412f80805d26b0" + integrity sha512-LaP38xhxAwS3W8PFh4y5iQ6feoTSF+dTAXFRUEYQWYst6Xd+9L/iPk34QGgK/VO/objmIlmq9TStGfVY2IcHIA== + dependencies: + execa "^1.0.0" + gifsicle "^5.0.0" + is-gif "^3.0.0" + +imagemin-mozjpeg@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/imagemin-mozjpeg/-/imagemin-mozjpeg-9.0.0.tgz#d1af26d0b43d75a41c211051c1910da59d9d2324" + integrity sha512-TwOjTzYqCFRgROTWpVSt5UTT0JeCuzF1jswPLKALDd89+PmrJ2PdMMYeDLYZ1fs9cTovI9GJd68mRSnuVt691w== + dependencies: + execa "^4.0.0" + is-jpg "^2.0.0" + mozjpeg "^7.0.0" + +imagemin-optipng@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/imagemin-optipng/-/imagemin-optipng-8.0.0.tgz#b88e5cf6da25cc8479e07cdf38c3ae0479df7ef2" + integrity sha512-CUGfhfwqlPjAC0rm8Fy+R2DJDBGjzy2SkfyT09L8rasnF9jSoHFqJ1xxSZWK6HVPZBMhGPMxCTL70OgTHlLF5A== + dependencies: + exec-buffer "^3.0.0" + is-png "^2.0.0" + optipng-bin "^7.0.0" + +imagemin-pngquant@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/imagemin-pngquant/-/imagemin-pngquant-9.0.2.tgz#38155702b0cc4f60f671ba7c2b086ea3805d9567" + integrity sha512-cj//bKo8+Frd/DM8l6Pg9pws1pnDUjgb7ae++sUX1kUVdv2nrngPykhiUOgFeE0LGY/LmUbCf4egCHC4YUcZSg== + dependencies: + execa "^4.0.0" + is-png "^2.0.0" + is-stream "^2.0.0" + ow "^0.17.0" + pngquant-bin "^6.0.0" + +imagemin-svgo@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/imagemin-svgo/-/imagemin-svgo-9.0.0.tgz#749370804608917a67d4ff590f07a87756aec006" + integrity sha512-uNgXpKHd99C0WODkrJ8OO/3zW3qjgS4pW7hcuII0RcHN3tnKxDjJWcitdVC/TZyfIqSricU8WfrHn26bdSW62g== + dependencies: + is-svg "^4.2.1" + svgo "^2.1.0" + +imagemin-webp@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/imagemin-webp/-/imagemin-webp-7.0.0.tgz#df000ec927855d74d4cfafec8558ac418c88d2a9" + integrity sha512-JoYjvHNgBLgrQAkeCO7T5iNc8XVpiBmMPZmiXMhalC7K6gwY/3DCEUfNxVPOmNJ+NIJlJFvzcMR9RBxIE74Xxw== + dependencies: + cwebp-bin "^7.0.1" + exec-buffer "^3.2.0" + is-cwebp-readable "^3.0.0" + +imagemin@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/imagemin/-/imagemin-7.0.1.tgz#f6441ca647197632e23db7d971fffbd530c87dbf" + integrity sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w== + dependencies: + file-type "^12.0.0" + globby "^10.0.0" + graceful-fs "^4.2.2" + junk "^3.1.0" + make-dir "^3.0.0" + p-pipe "^3.0.0" + replace-ext "^1.0.0" + immutable@>=3.8.2: version "4.1.0" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.1.0.tgz#f795787f0db780183307b9eb2091fcac1f6fafef" @@ -8849,6 +9451,11 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-lazy@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-3.1.0.tgz#891279202c8a2280fdbd6674dbd8da1a1dfc67cc" + integrity sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ== + import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -8885,7 +9492,7 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@~1.3.0: +ini@^1.3.4, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== @@ -8923,6 +9530,14 @@ interpret@^3.1.1: resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + integrity sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ== + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + invariant@^2.2.1, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -9013,6 +9628,13 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" +is-cwebp-readable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-cwebp-readable/-/is-cwebp-readable-3.0.0.tgz#0554aaa400977a2fc4de366d8c0244f13cde58cb" + integrity sha512-bpELc7/Q1/U5MWHn4NdHI44R3jxk0h9ew9ljzabiRl70/UIjL/ZAqRMb52F5+eke/VC8yTiv4Ewryo1fPWidvA== + dependencies: + file-type "^10.5.0" + is-data-view@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" @@ -9066,6 +9688,13 @@ is-generator-function@^1.0.10: dependencies: has-tostringtag "^1.0.0" +is-gif@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-gif/-/is-gif-3.0.0.tgz#c4be60b26a301d695bb833b20d9b5d66c6cf83b1" + integrity sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw== + dependencies: + file-type "^10.4.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" @@ -9073,11 +9702,21 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-jpg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-jpg/-/is-jpg-2.0.0.tgz#2e1997fa6e9166eaac0242daae443403e4ef1d97" + integrity sha512-ODlO0ruzhkzD3sdynIainVP5eoOFNN85rxA1+cwwnPe4dKyX0r5+hxNO5XpCrxlHcmb9vkOit9mhRD2JVuimHg== + is-map@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== +is-natural-number@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" + integrity sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ== + is-negative-zero@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" @@ -9110,6 +9749,11 @@ is-obj@^1.0.1: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + is-path-cwd@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" @@ -9129,6 +9773,11 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + is-plain-obj@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" @@ -9141,6 +9790,11 @@ is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +is-png@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-png/-/is-png-2.0.0.tgz#ee8cbc9e9b050425cedeeb4a6fb74a649b0a4a8d" + integrity sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g== + is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -9159,6 +9813,11 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + is-set@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" @@ -9183,7 +9842,7 @@ is-shared-array-buffer@^1.0.3: dependencies: call-bind "^1.0.7" -is-stream@^1.1.0: +is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -9200,6 +9859,13 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" +is-svg@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.4.0.tgz#34db20a38146be5f2b3060154da33d11e6f74b7c" + integrity sha512-v+AgVwiK5DsGtT9ng+m4mClp6zDAmwrW8nZi6Gg15qzvBnRWWdfWA1TGaXyCDnWq5g5asofIgMVl3PjKxvk1ug== + dependencies: + fast-xml-parser "^4.1.3" + is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" @@ -9340,6 +10006,14 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + iterator.prototype@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" @@ -9880,7 +10554,12 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.1: +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -10001,6 +10680,11 @@ jsx-ast-utils@^3.3.2: array-includes "^3.1.5" object.assign "^4.1.3" +junk@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" + integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== + jwt-decode@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" @@ -10013,6 +10697,13 @@ katex@^0.16.0, katex@^0.16.10: dependencies: commander "^8.3.0" +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -10190,6 +10881,11 @@ load-json-file@^4.0.0: pify "^3.0.0" strip-bom "^3.0.0" +loader-runner@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" @@ -10315,6 +11011,16 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + integrity sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A== + +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + lru-cache@^4.1.5: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -10340,6 +11046,13 @@ lz-string@^1.4.4: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== +make-dir@^1.0.0, make-dir@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + make-dir@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -10469,6 +11182,11 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== +mime-db@^1.28.0: + version "1.53.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.53.0.tgz#3cb63cd820fc29896d9d4e8c32ab4fcd74ccb447" + integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== + mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" @@ -10486,6 +11204,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" @@ -10565,6 +11288,19 @@ moment@*, moment@^2.24.0, moment@^2.29.1, moment@^2.29.2: resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== +mozjpeg@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/mozjpeg/-/mozjpeg-7.1.1.tgz#dfb61953536e66fcabd4ae795e7a312d42a51f18" + integrity sha512-iIDxWvzhWvLC9mcRJ1uSkiKaj4drF58oCqK2bITm5c2Jt6cJ8qQjSSru2PCaysG+hLIinryj8mgz5ZJzOYTv1A== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -10748,6 +11484,23 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + +npm-conf@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" + integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== + dependencies: + config-chain "^1.1.11" + pify "^3.0.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -10774,7 +11527,7 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -object-assign@^4.0.1, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -10940,6 +11693,11 @@ openapi-server-url-templating@^1.0.0: dependencies: apg-lite "^1.0.3" +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -10964,6 +11722,14 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.5" +optipng-bin@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/optipng-bin/-/optipng-bin-7.0.1.tgz#beb8e55a52f8a26f885ee57ab44fcf62397d6972" + integrity sha512-W99mpdW7Nt2PpFiaO+74pkht7KEqkXkeRomdWXfEz3SALZ6hns81y/pm1dsGZ6ItUIfchiNIP6ORDr1zETU1jA== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.0" + orderedmap@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/orderedmap/-/orderedmap-2.0.0.tgz#12ff5ef6ea9d12d6430b80c701b35475e1c9ff34" @@ -10979,6 +11745,30 @@ organize-imports-cli@^0.10.0: ts-morph "^15.0.0" tsconfig "^7.0.0" +os-filter-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/os-filter-obj/-/os-filter-obj-2.0.0.tgz#1c0b62d5f3a2442749a2d139e6dddee6e81d8d16" + integrity sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg== + dependencies: + arch "^2.1.0" + +ow@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/ow/-/ow-0.17.0.tgz#4f938999fed6264c9048cd6254356e0f1e7f688c" + integrity sha512-i3keDzDQP5lWIe4oODyDFey1qVrq2hXKTuTH2VpqwpYtzPiKZt2ziRI4NBQmgW40AnV5Euz17OyWweCb+bNEQA== + dependencies: + type-fest "^0.11.0" + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" @@ -10989,11 +11779,30 @@ p-each-series@^2.1.0: resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== +p-event@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-1.3.0.tgz#8e6b4f4f65c72bc5b6fe28b75eda874f96a4a085" + integrity sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA== + dependencies: + p-timeout "^1.1.1" + +p-event@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-2.3.1.tgz#596279ef169ab2c3e0cae88c1cfbb08079993ef6" + integrity sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA== + dependencies: + p-timeout "^2.0.1" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg== + p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -11022,6 +11831,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-map-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" + integrity sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg== + dependencies: + p-reduce "^1.0.0" + p-map@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" @@ -11034,6 +11850,11 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-pipe@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" + integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== + p-queue@6.6.2: version "6.6.2" resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" @@ -11042,6 +11863,11 @@ p-queue@6.6.2: eventemitter3 "^4.0.4" p-timeout "^3.2.0" +p-reduce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" + integrity sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ== + p-retry@^4.5.0: version "4.6.2" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" @@ -11050,6 +11876,20 @@ p-retry@^4.5.0: "@types/retry" "0.12.0" retry "^0.13.1" +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA== + dependencies: + p-finally "^1.0.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + p-timeout@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" @@ -11187,6 +12027,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -11202,7 +12047,7 @@ picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.0.0: +pify@^2.0.0, pify@^2.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -11269,6 +12114,15 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" +pngquant-bin@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/pngquant-bin/-/pngquant-bin-6.0.1.tgz#2b5789ca219eeb4d8509ab1ae082092801b7f07e" + integrity sha512-Q3PUyolfktf+hYio6wsg3SanQzEU/v8aICg/WpzxXcuCMRb7H2Q81okfpcEztbMvw25ILjd3a87doj2N9kvbpQ== + dependencies: + bin-build "^3.0.0" + bin-wrapper "^4.0.1" + execa "^4.0.0" + possible-typed-array-names@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" @@ -11366,6 +12220,16 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== + prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -11633,6 +12497,11 @@ prosemirror-view@1.28.2, prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prose prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -11705,6 +12574,15 @@ qs@6.13.0: dependencies: side-channel "^1.0.6" +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -12571,6 +13449,19 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" +readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + readable-stream@^2.0.1: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -12813,6 +13704,11 @@ repeat-string@^1.5.2: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== +replace-ext@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -12898,6 +13794,13 @@ resolve@^2.0.0-next.5: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +responselike@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ== + dependencies: + lowercase-keys "^1.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -12921,6 +13824,13 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rimraf@^2.5.4: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@^2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -12974,7 +13884,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -13054,7 +13964,7 @@ schema-utils@2.7.0: ajv "^6.12.2" ajv-keywords "^3.4.1" -schema-utils@^2.6.5: +schema-utils@^2.6.5, schema-utils@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -13082,6 +13992,16 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.0.0" +schema-utils@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b" + integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + scroll-into-view-if-needed@^2.2.25: version "2.2.31" resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz#d3c482959dc483e37962d1521254e3295d0d1587" @@ -13099,6 +14019,13 @@ scrollparent@^2.0.1: resolved "https://registry.yarnpkg.com/scrollparent/-/scrollparent-2.0.1.tgz#715d5b9cc57760fb22bdccc3befb5bfe06b1a317" integrity sha1-cV1bnMV3YPsivczDvvtb/gaxoxc= +seek-bzip@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.6.tgz#35c4171f55a680916b52a07859ecf3b5857f21c4" + integrity sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ== + dependencies: + commander "^2.8.1" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -13117,7 +14044,19 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5", semver@7.0.0, semver@7.5.2, semver@7.x, semver@^5.6.0, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.8: +semver-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" + integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== + +semver-truncate@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/semver-truncate/-/semver-truncate-1.1.2.tgz#57f41de69707a62709a7e0104ba2117109ea47e8" + integrity sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w== + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", semver@7.0.0, semver@7.5.2, semver@7.x, semver@^5.3.0, semver@^5.6.0, semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.8: version "7.5.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.2.tgz#5b851e66d1be07c1cdaf37dfc856f543325a2beb" integrity sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ== @@ -13157,6 +14096,13 @@ serialize-javascript@^5.0.1: dependencies: randombytes "^2.1.0" +serialize-javascript@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -13313,6 +14259,15 @@ simple-get@^4.0.0: once "^1.3.1" simple-concat "^1.0.0" +sirv@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -13373,6 +14328,27 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" +sort-keys-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sort-keys-length/-/sort-keys-length-1.0.1.tgz#9cb6f4f4e9e48155a6aa0671edd336ff1479a188" + integrity sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw== + dependencies: + sort-keys "^1.0.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + dependencies: + is-plain-obj "^1.0.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== + dependencies: + is-plain-obj "^1.0.0" + source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -13494,6 +14470,11 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + string-argv@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" @@ -13681,6 +14662,13 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== +strip-dirs@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" + integrity sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g== + dependencies: + is-natural-number "^4.0.1" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -13708,6 +14696,18 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + style-loader@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" @@ -13786,7 +14786,7 @@ svg-parser@^2.0.4: resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== -svgo@^2.8.0: +svgo@^2.1.0, svgo@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== @@ -13865,6 +14865,19 @@ tar-fs@^2.0.0: pump "^3.0.0" tar-stream "^2.1.4" +tar-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" + integrity sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A== + dependencies: + bl "^1.0.0" + buffer-alloc "^1.2.0" + end-of-stream "^1.0.0" + fs-constants "^1.0.0" + readable-stream "^2.3.0" + to-buffer "^1.1.1" + xtend "^4.0.0" + tar-stream@^2.1.4: version "2.2.0" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" @@ -13876,6 +14889,19 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== + +tempfile@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tempfile/-/tempfile-2.0.0.tgz#6b0446856a9b1114d1856ffcbe509cccb0977265" + integrity sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA== + dependencies: + temp-dir "^1.0.0" + uuid "^3.0.1" + terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -13945,6 +14971,16 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +thread-loader@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-4.0.4.tgz#954141f6ce6c472b513737252b4729ecad2e4902" + integrity sha512-tXagu6Hivd03wB2tiS1bqvw345sc7mKei32EgpYpq31ZLes9FN0mEK2nKzXLRFgwt3PsBB0E/MZDp159rDoqwg== + dependencies: + json-parse-better-errors "^1.0.2" + loader-runner "^4.1.0" + neo-async "^2.6.2" + schema-utils "^4.2.0" + throat@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" @@ -13960,6 +14996,11 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== + tiny-emitter@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.1.0.tgz#ab405a21ffed814a76c19739648093d70654fecb" @@ -13992,6 +15033,11 @@ tmpl@1.0.x: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== +to-buffer@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" + integrity sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg== + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -14014,6 +15060,11 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +totalist@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + tough-cookie@4.1.3, tough-cookie@^4.0.0: version "4.1.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" @@ -14058,6 +15109,13 @@ tree-sitter@=0.20.4: nan "^2.17.0" prebuild-install "^7.1.1" +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + ts-jest@^26.4.4: version "26.5.6" resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.6.tgz#c32e0746425274e1dfe333f43cd3c800e014ec35" @@ -14183,6 +15241,11 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -14304,6 +15367,14 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +unbzip2-stream@^1.0.9: + version "1.4.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + undici@^5.25.4: version "5.28.4" resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068" @@ -14416,6 +15487,20 @@ url-loader@^4.1.1: mime-types "^2.1.27" schema-utils "^3.0.0" +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ== + dependencies: + prepend-http "^2.0.0" + url-parse@^1.5.3: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" @@ -14424,6 +15509,11 @@ url-parse@^1.5.3: querystringify "^2.1.1" requires-port "^1.0.0" +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A== + use-analytics@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/use-analytics/-/use-analytics-0.0.5.tgz#5f0f2750c0f3393b8cd1f86a7aecbf02dae415ca" @@ -14466,6 +15556,11 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= +uuid@^3.0.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + uuid@^8.3.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" @@ -14647,6 +15742,24 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== +webpack-bundle-analyzer@^4.10.2: + version "4.10.2" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" + integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== + dependencies: + "@discoveryjs/json-ext" "0.5.7" + acorn "^8.0.4" + acorn-walk "^8.0.0" + commander "^7.2.0" + debounce "^1.2.1" + escape-string-regexp "^4.0.0" + gzip-size "^6.0.0" + html-escaper "^2.0.2" + opener "^1.5.2" + picocolors "^1.0.0" + sirv "^2.0.3" + ws "^7.3.1" + webpack-cli@^5.1.4: version "5.1.4" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.1.4.tgz#c8e046ba7eaae4911d7e71e2b25b776fcc35759b" @@ -14931,7 +16044,7 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -ws@8.17.1, ws@^7.4.6, ws@^8.13.0, ws@~8.2.3: +ws@8.17.1, ws@^7.3.1, ws@^7.4.6, ws@^8.13.0, ws@~8.2.3: version "8.17.1" resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== @@ -14981,6 +16094,11 @@ xmlhttprequest-ssl@~2.0.0: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" @@ -15078,6 +16196,14 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.1.1" +yauzl@^2.4.2: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From e7cd6cbe971d7cb997521fd81cbb86e93f13fddb Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Tue, 3 Dec 2024 15:40:12 -0800 Subject: [PATCH 3/6] fix pre-commit hook for generating json2ts --- .../src/main/resources/ui/.husky/pre-commit | 14 +-- .../src/main/resources/ui/json2ts.sh | 90 ++++++++++--------- 2 files changed, 56 insertions(+), 48 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/.husky/pre-commit b/openmetadata-ui/src/main/resources/ui/.husky/pre-commit index 1126dc081810..27060b3c1549 100755 --- a/openmetadata-ui/src/main/resources/ui/.husky/pre-commit +++ b/openmetadata-ui/src/main/resources/ui/.husky/pre-commit @@ -4,11 +4,13 @@ cd openmetadata-ui/src/main/resources/ui yarn pre-commit -# Check if any schema files have changed -if git diff --name-only HEAD | grep -q 'openmetadata-spec/src/main/resources/json/schema/'; then - echo "JSON schema files changed. Regenerating TypeScript files..." - yarn run json2ts - git add src/generated + +changed_files=$(git diff --cached --name-only --diff-filter=ACM | grep 'openmetadata-spec/src/main/resources/json/schema/') + +if [ -n "$changed_files" ]; then + echo "JSON schema files changed. Regenerating TypeScript files..." + ./json2ts.sh $changed_files + git add openmetadata-ui/src/main/resources/ui/src/generated else - echo "No changes in JSON schema files. Skipping TypeScript generation." + echo "No changes in JSON schema files. Skipping TypeScript generation." fi diff --git a/openmetadata-ui/src/main/resources/ui/json2ts.sh b/openmetadata-ui/src/main/resources/ui/json2ts.sh index 9a97627c01b1..2796f9ede207 100755 --- a/openmetadata-ui/src/main/resources/ui/json2ts.sh +++ b/openmetadata-ui/src/main/resources/ui/json2ts.sh @@ -16,72 +16,78 @@ schema_directory='openmetadata-spec/src/main/resources/json/schema/' om_ui_directory='openmetadata-ui/src/main/resources/ui/src/generated' tmp_dir=$(mktemp -d) -addLicensing(){ +addLicensing() { dir=$1 - txt=`cat openmetadata-ui/src/main/resources/ui/types-licensing.txt; cat "$dir"` + txt=$(cat openmetadata-ui/src/main/resources/ui/types-licensing.txt; cat "$dir") echo "$txt" > "$dir" } generateTmpSchemaFile() { schema_file=$1 tmp_schema_file=$2 - jq '(."$id" |= sub("https://open-metadata.org/schema";"";"i"))' $schema_file > $tmp_schema_file + jq '(."$id" |= sub("https://open-metadata.org/schema";"";"i"))' "$schema_file" > "$tmp_schema_file" } -generateType(){ +generateType() { tmp_schema_file=$1 output_file=$2 - #generate ts + # Generate TypeScript echo "Generating ${output_file} from specification at ${tmp_schema_file}" - ./node_modules/.bin/quicktype -s schema $tmp_schema_file -o $output_file --just-types > /dev/null 2>&1 + ./node_modules/.bin/quicktype -s schema "$tmp_schema_file" -o "$output_file" --just-types > /dev/null 2>&1 - if [ -s $output_file ] - then + if [ -s "$output_file" ]; then addLicensing "$output_file" else rm -f "$output_file" fi } -getTypes(){ - if [ -d "$om_ui_directory" ] - then - rm -r $om_ui_directory +processFile() { + schema_file=$1 + relative_path=${schema_file#"$schema_directory"} # Extract relative path + local_tmp_dir="$tmp_dir/$(dirname "$relative_path")" + mkdir -p "$local_tmp_dir" + + tmp_schema_file="${local_tmp_dir}/$(basename -- "$schema_file")" + generateTmpSchemaFile "$schema_file" "$tmp_schema_file" + + output_dir="$om_ui_directory/$(dirname "$relative_path")" + mkdir -p "$output_dir" + + output_file="${output_dir}/$(basename -- "$relative_path" .json).ts" + generateType "$tmp_schema_file" "$output_file" +} + +getTypes() { + if [ -d "$om_ui_directory" ]; then + rm -r "$om_ui_directory" fi - - for file_with_dir in $(find $schema_directory -name "*.json" | sed -e 's/openmetadata-spec\/src\/main\/resources\/json\/schema\///g') - do - local_tmp_dir="$tmp_dir/$(dirname $file_with_dir)" - mkdir -p $local_tmp_dir - tmp_schema_file="${local_tmp_dir}/$(basename -- $file_with_dir)" - #args schema file, tmp schema file, output ts file - generateTmpSchemaFile $PWD"/"$schema_directory$file_with_dir $tmp_schema_file - done - escaped_tmp_dir=$(echo $tmp_dir | sed -e 's/[]\/$*.^[]/\\&/g') - for file_with_dir in $(find $tmp_dir -name "*.json" | sed -e "s/${escaped_tmp_dir}//g") - do - joblist=$(jobs | wc -l) - while [ ${joblist} -ge 30 ] - do - sleep 1 - joblist=$(jobs | wc -l) - done - mkdir -p "$(dirname "$om_ui_directory$file_with_dir")" - fileTS=$(echo $file_with_dir | sed "s/.json/.ts/g") - outputTS=$PWD"/"$om_ui_directory$fileTS - tmp_schema_file=$tmp_dir$file_with_dir - #args schema file, tmp schema file, output ts file - generateType $tmp_schema_file $outputTS & + total_files=$# + current_file=1 + + for schema_file in "$@"; do + echo "Processing file $current_file of $total_files: $schema_file" + processFile "$schema_file" + current_file=$((current_file + 1)) done - } -# Checkout root directory to generate typescript from schema -cd ../../../../.. +# Ensure we are in the project root directory +cd "$(dirname "$0")/../../../../.." || exit + echo "Generating TypeScript from OpenMetadata specifications" -getTypes -wait $(jobs -p) -rm -rf $tmp_dir +# Check if schema files are passed as arguments +if [ "$#" -eq 0 ]; then + echo "No schema files specified. Please provide schema file paths." + exit 1 +fi + +# Process schema files sequentially +getTypes "$@" + +# Clean up temporary files +rm -rf "$tmp_dir" +echo "TypeScript generation completed." \ No newline at end of file From c9ed1fa4e3c3741972613d23b612b5861df059f2 Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Tue, 3 Dec 2024 15:49:30 -0800 Subject: [PATCH 4/6] fix json2ts.sh --- .../src/main/resources/ui/.husky/pre-commit | 10 +++--- .../src/main/resources/ui/json2ts.sh | 33 ++++++++++--------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/.husky/pre-commit b/openmetadata-ui/src/main/resources/ui/.husky/pre-commit index 27060b3c1549..3c3873cd90fc 100755 --- a/openmetadata-ui/src/main/resources/ui/.husky/pre-commit +++ b/openmetadata-ui/src/main/resources/ui/.husky/pre-commit @@ -1,16 +1,18 @@ #!/usr/bin/env sh # .husky/pre-commit # ... -cd openmetadata-ui/src/main/resources/ui -yarn pre-commit - +# this should run first before running the yarn pre-commit hook as we are changing the directory changed_files=$(git diff --cached --name-only --diff-filter=ACM | grep 'openmetadata-spec/src/main/resources/json/schema/') if [ -n "$changed_files" ]; then echo "JSON schema files changed. Regenerating TypeScript files..." - ./json2ts.sh $changed_files + ./openmetadata-ui/src/main/resources/ui/json2ts.sh $changed_files git add openmetadata-ui/src/main/resources/ui/src/generated else echo "No changes in JSON schema files. Skipping TypeScript generation." fi + + +cd openmetadata-ui/src/main/resources/ui +yarn pre-commit diff --git a/openmetadata-ui/src/main/resources/ui/json2ts.sh b/openmetadata-ui/src/main/resources/ui/json2ts.sh index 2796f9ede207..0d5ad5963023 100755 --- a/openmetadata-ui/src/main/resources/ui/json2ts.sh +++ b/openmetadata-ui/src/main/resources/ui/json2ts.sh @@ -12,6 +12,8 @@ # limitations under the License. # +#!/bin/bash + schema_directory='openmetadata-spec/src/main/resources/json/schema/' om_ui_directory='openmetadata-ui/src/main/resources/ui/src/generated' tmp_dir=$(mktemp -d) @@ -31,8 +33,7 @@ generateTmpSchemaFile() { generateType() { tmp_schema_file=$1 output_file=$2 - # Generate TypeScript - echo "Generating ${output_file} from specification at ${tmp_schema_file}" + echo "Generating $output_file from specification at $tmp_schema_file" ./node_modules/.bin/quicktype -s schema "$tmp_schema_file" -o "$output_file" --just-types > /dev/null 2>&1 if [ -s "$output_file" ]; then @@ -45,24 +46,26 @@ generateType() { processFile() { schema_file=$1 relative_path=${schema_file#"$schema_directory"} # Extract relative path - local_tmp_dir="$tmp_dir/$(dirname "$relative_path")" - mkdir -p "$local_tmp_dir" + output_dir="$om_ui_directory/$(dirname "$relative_path")" - tmp_schema_file="${local_tmp_dir}/$(basename -- "$schema_file")" - generateTmpSchemaFile "$schema_file" "$tmp_schema_file" + # Debug output + echo "Schema file: $schema_file" + echo "Relative path: $relative_path" + echo "Output directory: $output_dir" - output_dir="$om_ui_directory/$(dirname "$relative_path")" - mkdir -p "$output_dir" + mkdir -p "$output_dir" # Ensure output directory exists - output_file="${output_dir}/$(basename -- "$relative_path" .json).ts" + tmp_schema_file="$tmp_dir/$(basename "$schema_file")" + output_file="$output_dir/$(basename "$schema_file" .json).ts" + + # Remove the old file if it exists + [ -f "$output_file" ] && rm "$output_file" + + generateTmpSchemaFile "$schema_file" "$tmp_schema_file" generateType "$tmp_schema_file" "$output_file" } getTypes() { - if [ -d "$om_ui_directory" ]; then - rm -r "$om_ui_directory" - fi - total_files=$# current_file=1 @@ -73,18 +76,16 @@ getTypes() { done } -# Ensure we are in the project root directory cd "$(dirname "$0")/../../../../.." || exit echo "Generating TypeScript from OpenMetadata specifications" -# Check if schema files are passed as arguments if [ "$#" -eq 0 ]; then echo "No schema files specified. Please provide schema file paths." exit 1 fi -# Process schema files sequentially +# Process schema files getTypes "$@" # Clean up temporary files From ac26a96ac04761ea754ab8f8142c6da9007ae8cc Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Tue, 3 Dec 2024 15:56:33 -0800 Subject: [PATCH 5/6] do not delete generated schemas --- openmetadata-ui/src/main/resources/ui/json2ts.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/json2ts.sh b/openmetadata-ui/src/main/resources/ui/json2ts.sh index 0d5ad5963023..85f6df1d0d0e 100755 --- a/openmetadata-ui/src/main/resources/ui/json2ts.sh +++ b/openmetadata-ui/src/main/resources/ui/json2ts.sh @@ -14,7 +14,7 @@ #!/bin/bash -schema_directory='openmetadata-spec/src/main/resources/json/schema/' +schema_directory='openmetadata-spec/src/main/resources/json/schema' om_ui_directory='openmetadata-ui/src/main/resources/ui/src/generated' tmp_dir=$(mktemp -d) @@ -39,17 +39,18 @@ generateType() { if [ -s "$output_file" ]; then addLicensing "$output_file" else + echo "Error: Could not generate $output_file" rm -f "$output_file" fi } processFile() { schema_file=$1 - relative_path=${schema_file#"$schema_directory"} # Extract relative path + relative_path=${schema_file#"$schema_directory/"} # Extract relative path output_dir="$om_ui_directory/$(dirname "$relative_path")" - # Debug output - echo "Schema file: $schema_file" + # Debugging output + echo "Processing schema: $schema_file" echo "Relative path: $relative_path" echo "Output directory: $output_dir" @@ -58,9 +59,7 @@ processFile() { tmp_schema_file="$tmp_dir/$(basename "$schema_file")" output_file="$output_dir/$(basename "$schema_file" .json).ts" - # Remove the old file if it exists - [ -f "$output_file" ] && rm "$output_file" - + # Generate temporary schema and TypeScript file generateTmpSchemaFile "$schema_file" "$tmp_schema_file" generateType "$tmp_schema_file" "$output_file" } @@ -76,6 +75,7 @@ getTypes() { done } +# Move to project root directory cd "$(dirname "$0")/../../../../.." || exit echo "Generating TypeScript from OpenMetadata specifications" @@ -85,7 +85,7 @@ if [ "$#" -eq 0 ]; then exit 1 fi -# Process schema files +# Process the schema files passed as arguments getTypes "$@" # Clean up temporary files From 14fcd3fcc417e5ca5a85d296663af5f353478fd6 Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Tue, 3 Dec 2024 20:58:06 -0800 Subject: [PATCH 6/6] remove debug true --- openmetadata-ui/src/main/resources/ui/babel.config.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/babel.config.json b/openmetadata-ui/src/main/resources/ui/babel.config.json index c2eaa42deb2e..26826b9b67cb 100644 --- a/openmetadata-ui/src/main/resources/ui/babel.config.json +++ b/openmetadata-ui/src/main/resources/ui/babel.config.json @@ -3,9 +3,6 @@ "env": { "test": { "plugins": ["@babel/plugin-transform-runtime"] - }, - "production": { - "debug": true } } } \ No newline at end of file