/* tslint:disable */
/* eslint-disable */
/**
 * 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 { FacetColumnResultFromJSON, FacetColumnResultToJSON, } from './FacetColumnResult';
import { SumFileSizesFromJSON, SumFileSizesToJSON, } from './SumFileSizes';
import { ActionRequiredCountFromJSON, ActionRequiredCountToJSON, } from './ActionRequiredCount';
import { ColumnModelFromJSON, ColumnModelToJSON, } from './ColumnModel';
import { TableQueryResultFromJSON, TableQueryResultToJSON, } from './TableQueryResult';
import { TableSelectColumnFromJSON, TableSelectColumnToJSON, } from './TableSelectColumn';
/**
 * @export
 */
export const QueryResultBundleConcreteTypeEnum = {
    org_sagebionetworks_repo_model_table_QueryResultBundle: 'org.sagebionetworks.repo.model.table.QueryResultBundle'
};
/**
 * Check if a given object implements the QueryResultBundle interface.
 */
export function instanceOfQueryResultBundle(value) {
    if (!('concreteType' in value) || value['concreteType'] === undefined)
        return false;
    if (!Object.values(QueryResultBundleConcreteTypeEnum).includes(value["concreteType"])) {
        return false;
    }
    return true;
}
export function QueryResultBundleFromJSON(json) {
    return QueryResultBundleFromJSONTyped(json, false);
}
export function QueryResultBundleFromJSONTyped(json, ignoreDiscriminator) {
    if (json == null) {
        return json;
    }
    return {
        'concreteType': json['concreteType'],
        'queryResult': json['queryResult'] == null ? undefined : TableQueryResultFromJSON(json['queryResult']),
        'queryCount': json['queryCount'] == null ? undefined : json['queryCount'],
        'selectColumns': json['selectColumns'] == null ? undefined : (json['selectColumns'].map(TableSelectColumnFromJSON)),
        'maxRowsPerPage': json['maxRowsPerPage'] == null ? undefined : json['maxRowsPerPage'],
        'columnModels': json['columnModels'] == null ? undefined : (json['columnModels'].map(ColumnModelFromJSON)),
        'facets': json['facets'] == null ? undefined : (json['facets'].map(FacetColumnResultFromJSON)),
        'sumFileSizes': json['sumFileSizes'] == null ? undefined : SumFileSizesFromJSON(json['sumFileSizes']),
        'lastUpdatedOn': json['lastUpdatedOn'] == null ? undefined : json['lastUpdatedOn'],
        'combinedSql': json['combinedSql'] == null ? undefined : json['combinedSql'],
        'actionsRequired': json['actionsRequired'] == null ? undefined : (json['actionsRequired'].map(ActionRequiredCountFromJSON)),
    };
}
export function QueryResultBundleToJSON(json) {
    return QueryResultBundleToJSONTyped(json, false);
}
export function QueryResultBundleToJSONTyped(value, ignoreDiscriminator = false) {
    if (value == null) {
        return value;
    }
    return {
        'concreteType': value['concreteType'],
        'queryResult': TableQueryResultToJSON(value['queryResult']),
        'queryCount': value['queryCount'],
        'selectColumns': value['selectColumns'] == null ? undefined : (value['selectColumns'].map(TableSelectColumnToJSON)),
        'maxRowsPerPage': value['maxRowsPerPage'],
        'columnModels': value['columnModels'] == null ? undefined : (value['columnModels'].map(ColumnModelToJSON)),
        'facets': value['facets'] == null ? undefined : (value['facets'].map(FacetColumnResultToJSON)),
        'sumFileSizes': SumFileSizesToJSON(value['sumFileSizes']),
        'lastUpdatedOn': value['lastUpdatedOn'],
        'combinedSql': value['combinedSql'],
        'actionsRequired': value['actionsRequired'] == null ? undefined : (value['actionsRequired'].map(ActionRequiredCountToJSON)),
    };
}
//# sourceMappingURL=QueryResultBundle.js.map