/**
 * 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 { ColumnAnalyzerOverrideEntry } from './ColumnAnalyzerOverrideEntry';
/**
 * <p>A shareable bundle of per-column analyzer assignments. Each entry binds one column to an analyzer; that analyzer's <code>analyzer.default</code> drives the column's index-time analyzer and (if declared) <code>analyzer.default_search</code> drives its search-time analyzer &mdash; see OpenSearch's <a href='https://docs.opensearch.org/latest/analyzers/index-analyzers/'>index analyzers</a> and <a href='https://docs.opensearch.org/latest/analyzers/search-analyzers/'>search analyzers</a>. Overrides win over the SearchConfiguration's <code>defaultAnalyzer</code> for the named columns.</p><p><b>Example with $ref entries</b> (preferred — supports reuse). Each entry's <code>analyzer</code> is a saved TextAnalyzer:</p><pre><code>{
 *   "organizationName": "biomed",
 *   "name": "publication_columns",
 *   "overrides": [
 *     { "columnName": "disease_code", "analyzer": { "$ref": "biomed-acronym_exact" } },
 *     { "columnName": "authors",      "analyzer": { "$ref": "biomed-scientific_search" } }
 *   ]
 * }</code></pre><p><b>Example with inline analyzer entries</b> &mdash; each entry's <code>analyzer</code> is the bare OpenSearch <code>settings.analysis</code> block (allowed root keys: <code>char_filter</code>, <code>tokenizer</code>, <code>filter</code>, <code>analyzer</code>):</p><pre><code>{
 *   "organizationName": "biomed",
 *   "name": "publication_columns_inline",
 *   "overrides": [
 *     {
 *       "columnName": "disease_code",
 *       "analyzer": {
 *         "analyzer": {
 *           "default": {
 *             "type": "custom",
 *             "tokenizer": "keyword",
 *             "filter": ["lowercase"]
 *           }
 *         }
 *       }
 *     },
 *     {
 *       "columnName": "authors",
 *       "analyzer": { "$ref": "biomed-scientific_search" }
 *     }
 *   ]
 * }</code></pre><p>The <code>analyzer</code> field on each entry accepts a <code>{"$ref": "{organizationName}-{name}"}</code> reference (preferred &mdash; supports reuse) or an inline analyzer literal. Refs to SynonymSets are not permitted inside an inline analyzer literal &mdash; save a TextAnalyzer and reference it by qualified name to use synonyms. Referenced from a SearchConfiguration's <code>columnAnalyzerOverrides</code> by qualified name <code>{organizationName}-{name}</code> or inlined directly there. Entries whose <code>columnName</code> is not present in a given SearchIndex's schema are silently skipped &mdash; a single override resource can therefore apply to multiple indexes that share some column names. Cannot be deleted while referenced by any SearchConfiguration.</p>
 * @export
 * @interface ColumnAnalyzerOverride
 */
export interface ColumnAnalyzerOverride {
    /**
     * The unique ID of this column analyzer override.
     * @type {string}
     * @memberof ColumnAnalyzerOverride
     */
    id?: string;
    /**
     * The name of the Organization this resource belongs to. Immutable after creation.
     * @type {string}
     * @memberof ColumnAnalyzerOverride
     */
    organizationName?: string;
    /**
     * The resource name. Must start with a letter and contain only letters, digits, and underscores. Unique within the organization and immutable after creation. Used as part of the qualified name ({organizationName}-{name}) when referenced by other resources.
     * @type {string}
     * @memberof ColumnAnalyzerOverride
     */
    name?: string;
    /**
     * Optional description.
     * @type {string}
     * @memberof ColumnAnalyzerOverride
     */
    description?: string;
    /**
     * The per-column analyzer assignments — see ColumnAnalyzerOverrideEntry.
     * @type {Array<ColumnAnalyzerOverrideEntry>}
     * @memberof ColumnAnalyzerOverride
     */
    overrides?: Array<ColumnAnalyzerOverrideEntry>;
    /**
     * Synapse employs an Optimistic Concurrency Control (OCC) scheme.
     * @type {string}
     * @memberof ColumnAnalyzerOverride
     */
    etag?: string;
    /**
     * The date this resource was created.
     * @type {string}
     * @memberof ColumnAnalyzerOverride
     */
    createdOn?: string;
    /**
     * The ID of the user that created this resource.
     * @type {string}
     * @memberof ColumnAnalyzerOverride
     */
    createdBy?: string;
    /**
     * The date this resource was last modified.
     * @type {string}
     * @memberof ColumnAnalyzerOverride
     */
    modifiedOn?: string;
    /**
     * The ID of the user that last modified this resource.
     * @type {string}
     * @memberof ColumnAnalyzerOverride
     */
    modifiedBy?: string;
}
/**
 * Check if a given object implements the ColumnAnalyzerOverride interface.
 */
export declare function instanceOfColumnAnalyzerOverride(value: object): value is ColumnAnalyzerOverride;
export declare function ColumnAnalyzerOverrideFromJSON(json: any): ColumnAnalyzerOverride;
export declare function ColumnAnalyzerOverrideFromJSONTyped(json: any, ignoreDiscriminator: boolean): ColumnAnalyzerOverride;
export declare function ColumnAnalyzerOverrideToJSON(json: any): ColumnAnalyzerOverride;
export declare function ColumnAnalyzerOverrideToJSONTyped(value?: ColumnAnalyzerOverride | null, ignoreDiscriminator?: boolean): any;
