/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { VersionInfo } from './VersionInfo';
import type { V2Annotations } from './V2Annotations';
import type { Reference } from './Reference';
import type { CsvTableDescriptor } from './CsvTableDescriptor';
import type { ProjectStorageUsage } from './ProjectStorageUsage';
import type { EntityRef } from './EntityRef';
/**
 * Data record from a node object.
 * @export
 * @interface NodeRecord
 */
export interface NodeRecord {
    /**
     *
     * @type {boolean}
     * @memberof NodeRecord
     */
    isPublic?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof NodeRecord
     */
    isRestricted?: boolean;
    /**
     *
     * @type {boolean}
     * @memberof NodeRecord
     */
    isControlled?: boolean;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    benefactorId?: string;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    projectId?: string;
    /**
     *
     * @type {Array<number>}
     * @memberof NodeRecord
     */
    effectiveArs?: Array<number>;
    /**
     * The list of entity versions.
     * @type {Array<VersionInfo>}
     * @memberof NodeRecord
     */
    versionHistory?: Array<VersionInfo>;
    /**
     *
     * @type {V2Annotations}
     * @memberof NodeRecord
     */
    annotations?: V2Annotations;
    /**
     *
     * @type {V2Annotations}
     * @memberof NodeRecord
     */
    derivedAnnotations?: V2Annotations;
    /**
     *
     * @type {V2Annotations}
     * @memberof NodeRecord
     */
    internalAnnotations?: V2Annotations;
    /**
     *
     * @type {ProjectStorageUsage}
     * @memberof NodeRecord
     */
    projectStorageUsage?: ProjectStorageUsage;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    id?: string;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    name?: string;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    description?: string;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    parentId?: string;
    /**
     *
     * @type {number}
     * @memberof NodeRecord
     */
    createdByPrincipalId?: number;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    createdOn?: string;
    /**
     *
     * @type {number}
     * @memberof NodeRecord
     */
    modifiedByPrincipalId?: number;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    modifiedOn?: string;
    /**
     * Type of the Entity
     * @type {string}
     * @memberof NodeRecord
     */
    nodeType?: NodeRecordNodeTypeEnum;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    eTag?: string;
    /**
     *
     * @type {number}
     * @memberof NodeRecord
     */
    versionNumber?: number;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    versionComment?: string;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    versionLabel?: string;
    /**
     *
     * @type {boolean}
     * @memberof NodeRecord
     */
    isLatestVersion?: boolean;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    activityId?: string;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    fileHandleId?: string;
    /**
     *
     * @type {Array<string>}
     * @memberof NodeRecord
     */
    columnModelIds?: Array<string>;
    /**
     * For FileViews, the list of IDs that define the scope of the view.
     * @type {Array<string>}
     * @memberof NodeRecord
     */
    scopeIds?: Array<string>;
    /**
     * For Datasets and Dataset Collections, the list of entity references that define the view.
     * @type {Array<EntityRef>}
     * @memberof NodeRecord
     */
    items?: Array<EntityRef>;
    /**
     * For RecordSet, one or more column names that define this upsert key.
     * @type {Array<string>}
     * @memberof NodeRecord
     */
    upsertKey?: Array<string>;
    /**
     *
     * @type {CsvTableDescriptor}
     * @memberof NodeRecord
     */
    csvDescriptor?: CsvTableDescriptor;
    /**
     *
     * @type {Reference}
     * @memberof NodeRecord
     */
    reference?: Reference;
    /**
     *
     * @type {string}
     * @memberof NodeRecord
     */
    alias?: string;
    /**
     * For table entities, specifies if the full text search index is enabled or not.
     * @type {boolean}
     * @memberof NodeRecord
     */
    isSearchEnabled?: boolean;
    /**
     * For materialized views, virtual tables, and search indexes, specifies the SQL defining the content.
     * @type {string}
     * @memberof NodeRecord
     */
    definingSQL?: string;
    /**
     * For a RecordSet, the file handle that contains the detailed validation results.
     * @type {string}
     * @memberof NodeRecord
     */
    validationResultFileHandleId?: string;
}
/**
 * @export
 */
export declare const NodeRecordNodeTypeEnum: {
    readonly project: "project";
    readonly folder: "folder";
    readonly file: "file";
    readonly table: "table";
    readonly link: "link";
    readonly entityview: "entityview";
    readonly dockerrepo: "dockerrepo";
    readonly submissionview: "submissionview";
    readonly dataset: "dataset";
    readonly datasetcollection: "datasetcollection";
    readonly materializedview: "materializedview";
    readonly virtualtable: "virtualtable";
    readonly recordset: "recordset";
    readonly searchindex: "searchindex";
};
export type NodeRecordNodeTypeEnum = typeof NodeRecordNodeTypeEnum[keyof typeof NodeRecordNodeTypeEnum];
/**
 * Check if a given object implements the NodeRecord interface.
 */
export declare function instanceOfNodeRecord(value: object): value is NodeRecord;
export declare function NodeRecordFromJSON(json: any): NodeRecord;
export declare function NodeRecordFromJSONTyped(json: any, ignoreDiscriminator: boolean): NodeRecord;
export declare function NodeRecordToJSON(json: any): NodeRecord;
export declare function NodeRecordToJSONTyped(value?: NodeRecord | null, ignoreDiscriminator?: boolean): any;
