/**
 * 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 { SerializationFactory, usingModelSchema } from '@finos/legend-shared';
import { createModelSchema, list, optional, primitive } from 'serializr';
import { V1_stereotypePtrModelSchema, V1_taggedValueModelSchema, } from '../../transformation/pureProtocol/serializationHelpers/V1_CoreSerializationHelper.js';
export class V1_QueryProjectCoordinates {
    groupId;
    artifactId;
    static serialization = new SerializationFactory(createModelSchema(V1_QueryProjectCoordinates, {
        artifactId: primitive(),
        groupId: primitive(),
    }));
}
export class V1_QuerySearchTermSpecification {
    searchTerm;
    exactMatchName;
    includeOwner;
    static serialization = new SerializationFactory(createModelSchema(V1_QuerySearchTermSpecification, {
        searchTerm: primitive(),
        exactMatchName: optional(primitive()),
        includeOwner: optional(primitive()),
    }), {
        deserializeNullAsUndefined: true,
    });
}
export class V1_QuerySearchSpecification {
    searchTermSpecification;
    projectCoordinates;
    taggedValues;
    stereotypes;
    limit;
    showCurrentUserQueriesOnly;
    combineTaggedValuesCondition;
    sortByOption;
    static serialization = new SerializationFactory(createModelSchema(V1_QuerySearchSpecification, {
        combineTaggedValuesCondition: optional(primitive()),
        limit: optional(primitive()),
        projectCoordinates: optional(list(usingModelSchema(V1_QueryProjectCoordinates.serialization.schema))),
        searchTermSpecification: optional(usingModelSchema(V1_QuerySearchTermSpecification.serialization.schema)),
        showCurrentUserQueriesOnly: optional(primitive()),
        stereotypes: optional(list(usingModelSchema(V1_stereotypePtrModelSchema))),
        taggedValues: optional(list(usingModelSchema(V1_taggedValueModelSchema))),
        sortByOption: optional(primitive()),
    }), {
        deserializeNullAsUndefined: true,
    });
}
//# sourceMappingURL=V1_QuerySearchSpecification.js.map