/**
 * 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.
 */
/**
 * <p>A Synapse entity that materializes an OpenSearch index from a SQL view of a table-like entity. The <code>definingSQL</code> picks the columns and rows to index; the SearchConfiguration (either pointed at directly via <code>searchConfigurationId</code> or inherited from an ancestor binding) controls analyzers and synonyms. Once built, the index supports full-text search, faceted search, and autocomplete via the search endpoints on the SearchManagementController.</p><p><b>Per-column <code>ignore_above</code> limit at index-build time</b> &mdash; values longer than this on a given field are NOT indexed for exact match or sort, but remain stored in the source document:</p><table border='1'><tr><th>Synapse column type</th><th>ignore_above (keyword sub-field)</th></tr><tr><td>STRING, STRING_LIST, LINK</td><td>1,000 chars</td></tr><tr><td>MEDIUMTEXT</td><td>100,000 chars</td></tr><tr><td>LARGETEXT</td><td>8,192 chars</td></tr><tr><td>ENTITYID, USERID, ENTITYID_LIST, USERID_LIST</td><td>256 chars</td></tr><tr><td>INTEGER, DATE, INTEGER_LIST, DATE_LIST, FILEHANDLEID, SUBMISSIONID, EVALUATIONID, DOUBLE, BOOLEAN, BOOLEAN_LIST, JSON</td><td>n/a</td></tr></table><p>Maximum 500,000 indexed rows per SearchIndex.</p>
 * @export
 * @interface SearchIndex
 */
export interface SearchIndex {
    /**
     * The name of this entity.  Must be 256 characters or less. Names may only contain: letters, numbers, spaces, underscores, hyphens, periods, plus signs, apostrophes, and parentheses
     * @type {string}
     * @memberof SearchIndex
     */
    name?: string;
    /**
     * The description of this entity.  Must be 1000 characters or less.
     * @type {string}
     * @memberof SearchIndex
     */
    description?: string;
    /**
     * The unique immutable ID for this entity.  A new ID will be generated for new Entities.  Once issued, this ID is guaranteed to never change or be re-issued
     * @type {string}
     * @memberof SearchIndex
     */
    id?: string;
    /**
     * Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date.
     * @type {string}
     * @memberof SearchIndex
     */
    etag?: string;
    /**
     * The date this entity was created.
     * @type {string}
     * @memberof SearchIndex
     */
    createdOn?: string;
    /**
     * The date this entity was last modified.
     * @type {string}
     * @memberof SearchIndex
     */
    modifiedOn?: string;
    /**
     * The ID of the user that created this entity.
     * @type {string}
     * @memberof SearchIndex
     */
    createdBy?: string;
    /**
     * The ID of the user that last modified this entity.
     * @type {string}
     * @memberof SearchIndex
     */
    modifiedBy?: string;
    /**
     * The ID of the Entity that is the parent of this Entity.
     * @type {string}
     * @memberof SearchIndex
     */
    parentId?: string;
    /**
     * Indicates which implementation of Entity this object represents.  The value is the fully qualified class name, e.g. org.sagebionetworks.repo.model.FileEntity.
     * @type {string}
     * @memberof SearchIndex
     */
    concreteType: SearchIndexConcreteTypeEnum;
    /**
     * The Synapse SQL statement that defines which columns and rows are indexed. Must reference exactly one entity (multi-entity JOINs are not supported). Each SELECT-list column becomes a field in the index — including literals and aliased expressions, which get a real ColumnModel id and behave as first-class columns.
     * @type {string}
     * @memberof SearchIndex
     */
    definingSQL?: string;
    /**
     * Optional. ID of the SearchConfiguration to apply when building this index. If omitted, the build walks up the entity hierarchy (entity → folder → project) looking for the closest SearchConfigBinding; if none is found, platform defaults are used.
     * @type {string}
     * @memberof SearchIndex
     */
    searchConfigurationId?: string;
}
/**
 * @export
 */
export declare const SearchIndexConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_search_table_SearchIndex: "org.sagebionetworks.repo.model.search.table.SearchIndex";
};
export type SearchIndexConcreteTypeEnum = typeof SearchIndexConcreteTypeEnum[keyof typeof SearchIndexConcreteTypeEnum];
/**
 * Check if a given object implements the SearchIndex interface.
 */
export declare function instanceOfSearchIndex(value: object): value is SearchIndex;
export declare function SearchIndexFromJSON(json: any): SearchIndex;
export declare function SearchIndexFromJSONTyped(json: any, ignoreDiscriminator: boolean): SearchIndex;
export declare function SearchIndexToJSON(json: any): SearchIndex;
export declare function SearchIndexToJSONTyped(value?: SearchIndex | null, ignoreDiscriminator?: boolean): any;
