/** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { type LogService, type PlainObject, type ServerClientConfig } from '@finos/legend-shared'; import type { RawLambda } from '../../../../../graph/metamodel/pure/rawValueSpecification/RawLambda.js'; import { GenerationMode, type GenerationConfigurationDescription } from '../../../../action/generation/GenerationConfigurationDescription.js'; import { TEMPORARY__AbstractEngineConfig } from '../../../../action/TEMPORARY__AbstractEngineConfig.js'; import { V1_EngineServerClient, type V1_GrammarParserBatchInputEntry } from './V1_EngineServerClient.js'; import { V1_PureModelContextData } from '../model/context/V1_PureModelContextData.js'; import { V1_LambdaReturnTypeInput } from './compilation/V1_LambdaReturnType.js'; import type { V1_RawLambda } from '../model/rawValueSpecification/V1_RawLambda.js'; import { V1_GenerationOutput } from './generation/V1_GenerationOutput.js'; import type { V1_RawRelationalOperationElement } from '../model/packageableElements/store/relational/model/V1_RawRelationalOperationElement.js'; import type { RawRelationalOperationElement } from '../../../../../graph/metamodel/pure/packageableElements/store/relational/model/RawRelationalOperationElement.js'; import type { PureProtocolProcessorPlugin } from '../../PureProtocolProcessorPlugin.js'; import { V1_LightQuery, V1_Query } from './query/V1_Query.js'; import { type V1_DatabaseBuilderInput } from './generation/V1_DatabaseBuilderInput.js'; import { type V1_ServiceConfigurationInfo } from './service/V1_ServiceConfiguration.js'; import { V1_ExecuteInput, V1_TestDataGenerationExecutionInput, V1_TestDataGenerationExecutionWithSeedInput } from './execution/V1_ExecuteInput.js'; import type { V1_ExecutionPlan } from '../model/executionPlan/V1_ExecutionPlan.js'; import { type V1_ExecutionResult } from './execution/V1_ExecutionResult.js'; import { V1_ServiceStorage } from './service/V1_ServiceStorage.js'; import { V1_ServiceRegistrationResult } from './service/V1_ServiceRegistrationResult.js'; import type { V1_PureModelContext } from '../model/context/V1_PureModelContext.js'; import { V1_QuerySearchSpecification } from './query/V1_QuerySearchSpecification.js'; import type { ExecutionOptions, TEMPORARY__EngineSetupConfig } from '../../../../AbstractPureGraphManager.js'; import type { ExternalFormatDescription } from '../../../../action/externalFormat/ExternalFormatDescription.js'; import { V1_ExternalFormatModelGenerationInput } from './externalFormat/V1_ExternalFormatModelGeneration.js'; import { V1_RunTestsInput } from './test/V1_RunTestsInput.js'; import { V1_RunTestsResult } from './test/V1_RunTestsResult.js'; import { V1_MappingModelCoverageAnalysisInput, V1_MappingModelCoverageAnalysisResult } from './analytics/V1_MappingModelCoverageAnalysis.js'; import type { ServiceExecutionMode } from '../../../../action/service/ServiceExecutionMode.js'; import type { V1_CompilationResult, V1_TextCompilationResult } from './compilation/V1_CompilationResult.js'; import { V1_GenerateSchemaInput } from './externalFormat/V1_GenerateSchemaInput.js'; import type { GraphManagerOperationReport } from '../../../../GraphManagerStatistics.js'; import { V1_StoreEntitlementAnalysisInput, type V1_DatasetEntitlementReport, type V1_DatasetSpecification, type V1_EntitlementReportAnalyticsInput } from './analytics/V1_StoreEntitlementAnalysis.js'; import type { V1_SourceInformation } from '../model/V1_SourceInformation.js'; import type { ClassifierPathMapping, SubtypeInfo } from '../../../../action/protocol/ProtocolInfo.js'; import { V1_FunctionActivatorInfo } from './functionActivator/V1_FunctionActivatorInfo.js'; import { V1_FunctionActivatorInput } from './functionActivator/V1_FunctionActivatorInput.js'; import { type V1_RawSQLExecuteInput } from './execution/V1_RawSQLExecuteInput.js'; import type { V1_ValueSpecification } from '../model/valueSpecification/V1_ValueSpecification.js'; import { V1_ArtifactGenerationExtensionOutput, V1_ArtifactGenerationExtensionInput } from './generation/V1_ArtifactGenerationExtensionApi.js'; import { V1_DatabaseToModelGenerationInput } from './relational/V1_DatabaseToModelGenerationInput.js'; import { V1_TestDataGenerationInput } from './service/V1_TestDataGenerationInput.js'; import { type V1_TestDataGenerationResult } from './service/V1_TestDataGenerationResult.js'; import { V1_RelationalConnectionBuilder } from './relational/V1_RelationalConnectionBuilder.js'; import type { PostValidationAssertionResult } from '../../../../../DSL_Service_Exports.js'; import { V1_DebugTestsResult } from './test/V1_DebugTestsResult.js'; import type { V1_GraphManagerEngine } from './V1_GraphManagerEngine.js'; import { RelationTypeMetadata } from '../../../../action/relation/RelationTypeMetadata.js'; import { V1_CompleteCodeInput } from './compilation/V1_CompleteCodeInput.js'; import { CodeCompletionResult } from '../../../../action/compilation/Completion.js'; import { DeploymentResult } from '../../../../action/DeploymentResult.js'; import { LightPersistentDataCube, PersistentDataCube } from '../../../../action/query/PersistentDataCube.js'; import { type V1_RawLineageModel, V1_LineageInput } from '../model/lineage/V1_Lineage.js'; import { V1_DevMetadataPushRequest } from './dev-metadata/V1_DevMetadataPushRequest.js'; import { DeployProjectResponse } from '../../../../action/dev-metadata/DeployProjectResponse.js'; declare class V1_RemoteEngineConfig extends TEMPORARY__AbstractEngineConfig { private engine; setEnv(val: string | undefined): void; setCurrentUserId(val: string | undefined): void; setBaseUrl(val: string | undefined): void; setBaseUrlForServiceRegistration(val: string | undefined): void; setUseClientRequestPayloadCompression(val: boolean): void; setEnableDebuggingPayload(val: boolean): void; constructor(engine: V1_RemoteEngine); } interface V1_RemoteEngineSetupConfig extends TEMPORARY__EngineSetupConfig { env: string; tabSize: number; clientConfig: ServerClientConfig; } /** * This class defines what the engine is capable of. * Right now for most engine operations, we make network calls to the engine backend. * However, this might change in the future if we ever bring some engine functionalities * to Studio. As such, we want to encapsulate engine client within this class. */ export declare class V1_RemoteEngine implements V1_GraphManagerEngine { private readonly engineServerClient; readonly logService: LogService; readonly config: V1_RemoteEngineConfig; constructor(clientConfig: ServerClientConfig, logService: LogService); private serializePureModelContext; setup(config: V1_RemoteEngineSetupConfig): Promise; /** * NOTE: ideally, we would not want to leak engine server client like this, * since the communication with engine client should only be done in this class * alone. However, we need to expose the client for plugins, tests, and dev tool * configurations. */ getEngineServerClient(): V1_EngineServerClient; getCurrentUserId(): string | undefined; getClassifierPathMapping(): Promise; getSubtypeInfo(): Promise; private extractElementSourceInformationIndexFromPureModelContextDataJSON; transformPureModelContextDataToCode(graph: V1_PureModelContextData, pretty: boolean): Promise; transformCodeToPureModelContextData(code: string, options?: { sourceInformationIndex?: Map | undefined; onError?: () => void; }): Promise; private pureCodeToPureModelContextDataJSON; transformLambdasToCode(input: Map, pretty: boolean, plugins: PureProtocolProcessorPlugin[]): Promise>; transformValueSpecificationsToCode(input: Record>, pretty: boolean): Promise>; transformValueSpecificationToCode(input: PlainObject, pretty: boolean): Promise; transformCodeToValueSpecifications(input: Record): Promise>; transformCodeToValueSpecification(input: string, returnSourceInformation?: boolean): Promise>; transformLambdaToCode(lambda: RawLambda, pretty: boolean, plugins: PureProtocolProcessorPlugin[]): Promise; prettyLambdaContent(lambda: string): Promise; transformCodeToLambda(code: string, lambdaId?: string, options?: { pruneSourceInformation?: boolean; }): Promise; transformRelationalOperationElementsToPureCode(input: Map): Promise>; transformPureCodeToRelationalOperationElement(code: string, operationId: string): Promise; compilePureModelContextData(model: V1_PureModelContext, options?: { onError?: (() => void) | undefined; } | undefined): Promise; compileText(graphText: string, TEMPORARY__report: GraphManagerOperationReport, compileContext?: V1_PureModelContextData, options?: { onError?: () => void; getCompilationWarnings?: boolean; }): Promise; combineTextAndPMCD(graphText: string, compileContext: V1_PureModelContextData): Promise; getLambdaReturnType(lambdaReturnInput: V1_LambdaReturnTypeInput): Promise; getLambdaReturnTypeFromRawInput(rawInput: PlainObject): Promise; getLambdaRelationTypeFromRawInput(rawInput: V1_LambdaReturnTypeInput): Promise; getCodeCompletion(rawInput: V1_CompleteCodeInput): Promise; runQuery(input: V1_ExecuteInput, options?: ExecutionOptions): Promise<{ executionResult: V1_ExecutionResult; executionTraceId?: string; }>; exportData(input: V1_ExecuteInput, options?: ExecutionOptions): Promise; runQueryAndReturnMap(input: V1_ExecuteInput, options?: ExecutionOptions): Promise>; /** * For parsing of execution results, we may want to maintain the precision of the numbers * coming in. To do this, we setup a custom parser for numbers, so that if the number * is unsafe to convert to number (we lose precision) we will keep them as strings. * This is useful when displaying the execution results. */ parseExecutionResults(executionResultTxt: string, options: ExecutionOptions | undefined): PlainObject; generateExecutionPlan(input: V1_ExecuteInput): Promise>; generateLineage(input: V1_LineageInput): Promise>; debugExecutionPlanGeneration(input: V1_ExecuteInput): Promise<{ plan: PlainObject; debug: string[]; }>; generateExecuteTestData(input: V1_TestDataGenerationExecutionInput): Promise; generateExecuteTestDataWithSeedData(input: V1_TestDataGenerationExecutionWithSeedInput): Promise; runTests(input: V1_RunTestsInput): Promise; debugTests(input: V1_RunTestsInput): Promise; generateArtifacts(input: V1_ArtifactGenerationExtensionInput): Promise; generateTestData(input: V1_TestDataGenerationInput, plugins: PureProtocolProcessorPlugin[]): Promise; getAvailableGenerationConfigurationDescriptions(): Promise; generateFile(configs: PlainObject, type: string, generationMode: GenerationMode, model: V1_PureModelContextData): Promise; getAvailableExternalFormatsDescriptions(): Promise; generateModel(input: V1_ExternalFormatModelGenerationInput): Promise; generateSchema(input: V1_GenerateSchemaInput): Promise; getServerServiceInfo(): Promise; registerService(input: V1_PureModelContext, server: string, executionMode: ServiceExecutionMode, TEMPORARY__useStoreModel: boolean, TEMPORARY__useGenerateLineage: boolean, TEMPORARY__useGenerateOpenApi: boolean): Promise; getServiceVersionInfo(serviceUrl: string, serviceId: string): Promise; activateServiceGeneration(serviceUrl: string, generationId: string): Promise; getServiceMetadataByPattern(serviceServerUrl: string, servicePattern: string): Promise; runServicePostVal(servicePath: string, input: V1_PureModelContext, assertionId: string): Promise; searchQueries(searchSpecification: V1_QuerySearchSpecification): Promise; getQueries(queryIds: string[]): Promise; getQuery(queryId: string): Promise; createQuery(query: V1_Query): Promise; updateQuery(query: V1_Query): Promise; patchQuery(query: Partial): Promise; deleteQuery(queryId: string): Promise; cancelUserExecutions(broadcastToCluster: boolean): Promise; searchDataCubes(searchSpecification: V1_QuerySearchSpecification): Promise; getDataCubes(ids: string[]): Promise; getDataCube(id: string): Promise; createDataCube(dataCube: PersistentDataCube): Promise; updateDataCube(dataCube: PersistentDataCube): Promise; deleteDataCube(queryId: string): Promise; analyzeMappingModelCoverage(input: V1_MappingModelCoverageAnalysisInput): Promise; surveyDatasets(input: V1_StoreEntitlementAnalysisInput, plugins: PureProtocolProcessorPlugin[]): Promise; checkDatasetEntitlements(input: V1_EntitlementReportAnalyticsInput, plugins: PureProtocolProcessorPlugin[]): Promise; buildDatabase(input: V1_DatabaseBuilderInput, plugins: PureProtocolProcessorPlugin[]): Promise; executeRawSQL(input: V1_RawSQLExecuteInput, plugins: PureProtocolProcessorPlugin[]): Promise; getAvailableFunctionActivators(): Promise; validateFunctionActivator(input: V1_FunctionActivatorInput): Promise; renderFunctionActivatorArtifact(input: V1_FunctionActivatorInput): Promise; publishFunctionActivatorToSandbox(input: V1_FunctionActivatorInput): Promise; generateModelsFromDatabaseSpecification(input: V1_DatabaseToModelGenerationInput): Promise; getAvailableRelationalDatabaseTypeConfigurations(): Promise; pushToDevMetadata(request: V1_DevMetadataPushRequest): Promise; } export {}; //# sourceMappingURL=V1_RemoteEngine.d.ts.map