namespace java eu.dnetlib.openaire.thrift // deposition struct Institution { 1: string id, 2: string name, 3: string shortName, 4: string url } struct Repository { 1: string id, 2: string url, 3: string name, 4: list institution, 5: list country, 6: i64 size, 7: i64 countDate, 8: bool openAireCompliant, 9: string type } struct RepositoryFull { 1: string id, 2: string url, 3: string name, 4: list institution, 5: list country, 6: i64 size, 7: i64 countDate, 8: bool openAireCompliant, 9: string description, 10: string oaipmh, 11: string content, 12: string languages, 13: string policies, 14: string type } struct ProjectSummary { 1: string id, 2: string name, 3: string acronym, 4: string grantAgreementNumber } struct Project { 1: string id, 2: string name, 3: string acronym, 4: string grantAgreementNumber, 5: string call, 6: i64 startDate, 7: i64 endDate, 8: bool sc39, 9: string scientificArea, 10: string programme, 11: string coordinator, 12: map funding } /* for now, we are reading the articles from the search model */ /*struct Article { 1: string id, 2: list titles, 3: list urls, 3: list authors, 4: list publicationYears, 5: list publishers, 6: list languages, 7: list subjects, 8: list descriptions, 9: list repositories, 10: list projects 11: string accessmode } */ struct Author { 1: string id, 2: string lastName, 3: string firstName } struct Publication { 1: string id, 2: map> urls, 3: list titles, 4: list authors, 5: list publicationYears, 6: list projects, 7: list descriptions } // statistics struct PublicationsByAccessMode { 1: string accessMode, 2: string name, 3: i64 publications } struct PublicationsByCategory { 1: string acronym, 2: string name, 3: i64 totalPublications, 4: i64 projects, 5: i64 openPublications, 6: double openPublicationsRatio } struct Statistics { 1: i64 totalPublications, 5: i64 sc39Projects, 6: double averagePublicationsPerProject, 7: double averagePublicationsPerYear } // alerts struct AlertSubscription { 1: string templateId, 2: string notificationService, 3: string queryId, 4: string resultId, 5: string alertMode, 6: string subscriber } struct ResultPage { 1: i32 limit, 2: i32 offset, 3: list columns, 4: list> rows } // connector service OpenAIREConnector { // deposition list getRepositories(), list searchInstitutions(1: string term, 2: i32 limit), Institution getInstitution(1: string id), RepositoryFull getRepository(1: string id), list getInstitutionRepositories(1: string institution), list searchProjects(1: string term, 2: i32 limit), Project getProject(1: string id), list getProjectPublications(1: string project), // claim list getClaimedPublications(1: string user), // string insertDocument(1: string source, 2: string id), // void updateDocument(1:string id, 2: string source, 3: string title, 4: string description, 5: string access_mode, 6: string embargoEndDate, 7: list authors, 8: string url), // void claimDocument(1: string id, 2: string userName, 3: string userEmail, 4: list projects), void insertAndClaimDocument(1: string id, 2: string source, 3: string title, 4: string description, 5: string access_mode, 6: string embargoEndDate, 7: list authors, 8: string url, 9: string dcSource, 10: string userName, 11: string userEmail, 12: list projects), // statistics Statistics getStatistics(), list getPublicationsByAccessMode(), list getPublicationsByProgramme(1: i32 limit), list getPublicationsByScientificArea(1: i32 limit), list getPublicationsByCountry(1: i32 limit), list getPublicationsByInstitution(1: i32 limit) // alerts list getSubscriptions(1: string alertMode, 2: string subscriber, 3: i32 limit, 4: i32 offset), void addSubscription(1: AlertSubscription subscription), void removeSubscription(1: AlertSubscription subscription), i32 countAlertResults(1: string notificationService, 2: string queryId, 3: i64 date, 5: string resultId), ResultPage getAlertResults(1: string notificationService, 2: string queryId, 3: string resultId, 4: i64 fromDate, 5: i64 toDate, 6: i32 limit, 7: i32 offset), }