/** * Copyright (c) 2026-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 IngestDefinition } from '@finos/legend-graph'; import { type PlainObject } from '@finos/legend-shared'; /** The ingest definition's data sets, as its content holds them */ export declare const getIngestDataSetNames: (ingest: IngestDefinition) => string[]; /** What a materialized view's data set says besides its name and its query */ export interface IngestMaterializedViewOptions { /** The columns that identify a row, in the order of the view's columns; none for no key */ readonly primaryKey: readonly string[]; /** The classification of its data, e.g. `DP10`, as a data product's access points take one */ readonly sensitivity: string; } /** A materialized view of an ingest definition, as its content holds it */ export interface IngestMaterializedView { readonly name: string; /** Its query, as protocol JSON */ readonly lambda: PlainObject; readonly primaryKey: readonly string[]; /** The classification of its data; none for a view without one */ readonly sensitivity: string | undefined; } /** The materialized views of the ingest definition, as its content holds them */ export declare const getIngestMaterializedViews: (ingest: IngestDefinition) => IngestMaterializedView[]; /** * Adds a materialized view to the ingest definition: a data set whose rows * the lambda (protocol JSON) computes, with its primary key and the * classification of its data. It holds every key the engine gives a data * set it parses, its lists empty, as the engine reads them all: a view * without a `privacyClassification` failed with a NullPointerException. * The content is replaced, so the change is seen, and the view is listed * for Lineage and View SQL as one read from the definition would be */ export declare const ingestDefinition_addMaterializedView: (ingest: IngestDefinition, name: string, lambda: PlainObject, options: IngestMaterializedViewOptions) => void; /** * Replaces a materialized view's lambda (protocol JSON) in place: its name, * its place among the data sets and its other keys stay, as does its place * among the views listed for Lineage and View SQL. A primary key and a * classification given replace the view's, and the lists the engine reads * that the view lacks, e.g. as Studio wrote a view before it wrote them, are * added empty */ export declare const ingestDefinition_updateMaterializedView: (ingest: IngestDefinition, name: string, lambda: PlainObject, options?: IngestMaterializedViewOptions) => void; //# sourceMappingURL=DSL_Ingest_GraphModifierHelper.d.ts.map