/* 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 { AccessControlListFromJSON, AccessControlListToJSON, } from './AccessControlList';
import { EntityFromJSON, EntityToJSON, } from './Entity';
import { RestrictionInformationResponseFromJSON, RestrictionInformationResponseToJSON, } from './RestrictionInformationResponse';
import { EntityPathFromJSON, EntityPathToJSON, } from './EntityPath';
import { V2AnnotationsFromJSON, V2AnnotationsToJSON, } from './V2Annotations';
import { FileHandleFromJSON, FileHandleToJSON, } from './FileHandle';
import { ActivityFromJSON, ActivityToJSON, } from './Activity';
import { TableBundleFromJSON, TableBundleToJSON, } from './TableBundle';
import { DoiAssociationFromJSON, DoiAssociationToJSON, } from './DoiAssociation';
import { UserEntityPermissionsFromJSON, UserEntityPermissionsToJSON, } from './UserEntityPermissions';
/**
 * @export
 */
export const EntityBundleEntityTypeEnum = {
    project: 'project',
    folder: 'folder',
    file: 'file',
    table: 'table',
    link: 'link',
    entityview: 'entityview',
    dockerrepo: 'dockerrepo',
    submissionview: 'submissionview',
    dataset: 'dataset',
    datasetcollection: 'datasetcollection',
    materializedview: 'materializedview',
    virtualtable: 'virtualtable',
    recordset: 'recordset',
    searchindex: 'searchindex'
};
/**
 * Check if a given object implements the EntityBundle interface.
 */
export function instanceOfEntityBundle(value) {
    return true;
}
export function EntityBundleFromJSON(json) {
    return EntityBundleFromJSONTyped(json, false);
}
export function EntityBundleFromJSONTyped(json, ignoreDiscriminator) {
    if (json == null) {
        return json;
    }
    return {
        'entity': json['entity'] == null ? undefined : EntityFromJSON(json['entity']),
        'entityType': json['entityType'] == null ? undefined : json['entityType'],
        'annotations': json['annotations'] == null ? undefined : V2AnnotationsFromJSON(json['annotations']),
        'permissions': json['permissions'] == null ? undefined : UserEntityPermissionsFromJSON(json['permissions']),
        'path': json['path'] == null ? undefined : EntityPathFromJSON(json['path']),
        'hasChildren': json['hasChildren'] == null ? undefined : json['hasChildren'],
        'accessControlList': json['accessControlList'] == null ? undefined : AccessControlListFromJSON(json['accessControlList']),
        'fileHandles': json['fileHandles'] == null ? undefined : (json['fileHandles'].map(FileHandleFromJSON)),
        'tableBundle': json['tableBundle'] == null ? undefined : TableBundleFromJSON(json['tableBundle']),
        'rootWikiId': json['rootWikiId'] == null ? undefined : json['rootWikiId'],
        'benefactorAcl': json['benefactorAcl'] == null ? undefined : AccessControlListFromJSON(json['benefactorAcl']),
        'doiAssociation': json['doiAssociation'] == null ? undefined : DoiAssociationFromJSON(json['doiAssociation']),
        'fileName': json['fileName'] == null ? undefined : json['fileName'],
        'threadCount': json['threadCount'] == null ? undefined : json['threadCount'],
        'restrictionInformation': json['restrictionInformation'] == null ? undefined : RestrictionInformationResponseFromJSON(json['restrictionInformation']),
        'activity': json['activity'] == null ? undefined : ActivityFromJSON(json['activity']),
    };
}
export function EntityBundleToJSON(json) {
    return EntityBundleToJSONTyped(json, false);
}
export function EntityBundleToJSONTyped(value, ignoreDiscriminator = false) {
    if (value == null) {
        return value;
    }
    return {
        'entity': EntityToJSON(value['entity']),
        'entityType': value['entityType'],
        'annotations': V2AnnotationsToJSON(value['annotations']),
        'permissions': UserEntityPermissionsToJSON(value['permissions']),
        'path': EntityPathToJSON(value['path']),
        'hasChildren': value['hasChildren'],
        'accessControlList': AccessControlListToJSON(value['accessControlList']),
        'fileHandles': value['fileHandles'] == null ? undefined : (value['fileHandles'].map(FileHandleToJSON)),
        'tableBundle': TableBundleToJSON(value['tableBundle']),
        'rootWikiId': value['rootWikiId'],
        'benefactorAcl': AccessControlListToJSON(value['benefactorAcl']),
        'doiAssociation': DoiAssociationToJSON(value['doiAssociation']),
        'fileName': value['fileName'],
        'threadCount': value['threadCount'],
        'restrictionInformation': RestrictionInformationResponseToJSON(value['restrictionInformation']),
        'activity': ActivityToJSON(value['activity']),
    };
}
//# sourceMappingURL=EntityBundle.js.map