export interface File { name?: string; url: string; index?: number; contentType: string; checksum?: string; checksumType?: string; contentLength?: string; resourceId?: string; encoding?: string; compression?: string; } export interface MetaDataAlgorithm { url?: string; rawcode?: string; language?: string; format?: string; version?: string; container: { entrypoint: string; image: string; tag: string; }; } export interface MetaDataMain { name: string; type: 'dataset' | 'algorithm'; dateCreated: string; datePublished?: string; author: string; license: string; price: string; files: File[]; algorithm?: MetaDataAlgorithm; } export interface Curation { rating: number; numVotes: number; schema?: string; isListed?: boolean; } export interface AdditionalInformation { description?: string; copyrightHolder?: string; workExample?: string; links?: { [name: string]: string; }[]; inLanguage?: string; categories?: string[]; tags?: string[]; updateFrequency?: string; structuredMarkup?: { uri: string; mediaType: string; }[]; } export interface MetaData { main: MetaDataMain; encryptedFiles?: string; additionalInformation?: AdditionalInformation; curation?: Curation; } export interface ServicePrices { serviceIndex: number; price: string; } export interface EditableMetaDataLinks { name: string; url: string; type: string; } export interface EditableMetaData { description?: string; title?: string; links?: EditableMetaDataLinks[]; servicePrices?: ServicePrices[]; }