/* tslint:disable */
/* eslint-disable */
/**
 * AskNews API
 * AskNews API [![status](https://status.asknews.app/api/badge/2/status?style=for-the-badge)](https://status.asknews.app/status/prod)
 *
 * The version of the OpenAPI document: 0.24.66
 * Contact: contact@emergentmethods.ai
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { mapValues } from '../runtime';
/**
 * 
 * @export
 * @interface CirrusMetadata
 */
export interface CirrusMetadata {
    /**
     * 
     * @type {Date}
     * @memberof CirrusMetadata
     */
    createTimestamp: Date;
    /**
     * 
     * @type {string}
     * @memberof CirrusMetadata
     */
    wikibaseItem: string;
    /**
     * 
     * @type {number}
     * @memberof CirrusMetadata
     */
    version: number;
    /**
     * 
     * @type {number}
     * @memberof CirrusMetadata
     */
    popularityScore: number;
    /**
     * 
     * @type {number}
     * @memberof CirrusMetadata
     */
    textBytes: number;
}

/**
 * Check if a given object implements the CirrusMetadata interface.
 */
export function instanceOfCirrusMetadata(value: object): value is CirrusMetadata {
    if (!('createTimestamp' in value) || value['createTimestamp'] === undefined) return false;
    if (!('wikibaseItem' in value) || value['wikibaseItem'] === undefined) return false;
    if (!('version' in value) || value['version'] === undefined) return false;
    if (!('popularityScore' in value) || value['popularityScore'] === undefined) return false;
    if (!('textBytes' in value) || value['textBytes'] === undefined) return false;
    return true;
}

export function CirrusMetadataFromJSON(json: any): CirrusMetadata {
    return CirrusMetadataFromJSONTyped(json, false);
}

export function CirrusMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): CirrusMetadata {
    if (json == null) {
        return json;
    }
    return {
        
        'createTimestamp': (new Date(json['create_timestamp'])),
        'wikibaseItem': json['wikibase_item'],
        'version': json['version'],
        'popularityScore': json['popularity_score'],
        'textBytes': json['text_bytes'],
    };
}

export function CirrusMetadataToJSON(json: any): CirrusMetadata {
    return CirrusMetadataToJSONTyped(json, false);
}

export function CirrusMetadataToJSONTyped(value?: CirrusMetadata | null, ignoreDiscriminator: boolean = false): any {
    if (value == null) {
        return value;
    }

    return {
        
        'create_timestamp': ((value['createTimestamp']).toISOString()),
        'wikibase_item': value['wikibaseItem'],
        'version': value['version'],
        'popularity_score': value['popularityScore'],
        'text_bytes': value['textBytes'],
    };
}

