pharmaobservatory 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +118 -7
  3. data/docs/ApiV1WhoamiGet200Response.md +13 -1
  4. data/docs/ApiV1WhoamiGet200ResponseLimits.md +32 -0
  5. data/docs/ApiV1WhoamiGet200ResponseQuota.md +20 -0
  6. data/docs/ApiV1WhoamiGet200ResponseQuotaBuckets.md +28 -0
  7. data/docs/ApiV1WhoamiGet200ResponseQuotaBucketsRequestsPerMinute.md +28 -0
  8. data/docs/BiomarkerAssayEvidenceResponse.md +58 -0
  9. data/docs/{BiomarkerCdxAssertionsResponseBuild.md → BiomarkerAssayEvidenceResponseBuild.md} +2 -2
  10. data/docs/{BiomarkerCdxAssertionsResponseFreshness.md → BiomarkerAssayEvidenceResponseFreshness.md} +2 -2
  11. data/docs/{BiomarkerCdxAssertionsResponseScope.md → BiomarkerAssayEvidenceResponseScope.md} +2 -2
  12. data/docs/BiomarkerAssayEvidenceRow.md +68 -0
  13. data/docs/BiomarkerAssayWhitespaceResponse.md +58 -0
  14. data/docs/BiomarkerAssayWhitespaceRow.md +66 -0
  15. data/docs/BiomarkerBqpAssertionsResponse.md +3 -3
  16. data/docs/BiomarkerCdxAssertionsResponse.md +3 -3
  17. data/docs/BiomarkerEvidenceResponse.md +3 -3
  18. data/docs/BiomarkerLiteratureResponse.md +3 -3
  19. data/docs/BiomarkerPublishingCompaniesResponse.md +3 -3
  20. data/docs/BiomarkerPublishingCompaniesRow.md +9 -1
  21. data/docs/BiomarkerRelationsResponse.md +3 -3
  22. data/docs/BiomarkerSampleCoverageResponse.md +3 -3
  23. data/docs/BiomarkerSamplePrevalenceResponse.md +3 -3
  24. data/docs/BiomarkerValidationResponse.md +3 -3
  25. data/docs/BiomarkerVariantMentionsResponse.md +3 -3
  26. data/docs/BiomarkersApi.md +160 -0
  27. data/docs/BiomarkersRecord.md +2 -2
  28. data/docs/BiomarkersResponse.md +3 -3
  29. data/docs/BiomarkersRow.md +2 -0
  30. data/docs/CellLinesRecord.md +2 -2
  31. data/docs/CellLinesResponse.md +3 -3
  32. data/docs/CompaniesApi.md +246 -0
  33. data/docs/CompaniesRecord.md +2 -2
  34. data/docs/CompaniesResponse.md +3 -3
  35. data/docs/CompaniesRow.md +1 -1
  36. data/docs/CompanyAssetsResponse.md +3 -3
  37. data/docs/CompanyFundingEventsResponse.md +3 -3
  38. data/docs/CompanyFundingEventsRow.md +1 -1
  39. data/docs/CompanyFundingSummaryResponse.md +3 -3
  40. data/docs/CompanyMembersResponse.md +3 -3
  41. data/docs/CompanyProgramsResponse.md +3 -3
  42. data/docs/CompanyTargetsResponse.md +3 -3
  43. data/docs/CompanyTargetsRow.md +5 -1
  44. data/docs/ConditionAdverseEventsResponse.md +3 -3
  45. data/docs/ConditionBurdenResponse.md +3 -3
  46. data/docs/ConditionDeliveryResponse.md +3 -3
  47. data/docs/ConditionDrugsResponse.md +3 -3
  48. data/docs/ConditionPrevalenceResponse.md +3 -3
  49. data/docs/ConditionPrevalenceRow.md +1 -1
  50. data/docs/ConditionPublicationsResponse.md +3 -3
  51. data/docs/ConditionRecruitmentByPhaseResponse.md +58 -0
  52. data/docs/ConditionRecruitmentByPhaseRow.md +50 -0
  53. data/docs/ConditionRecruitmentDurationResponse.md +58 -0
  54. data/docs/ConditionRecruitmentDurationRow.md +86 -0
  55. data/docs/ConditionSitesResponse.md +3 -3
  56. data/docs/ConditionTrialStartForecastResponse.md +58 -0
  57. data/docs/ConditionTrialStartForecastRow.md +70 -0
  58. data/docs/ConditionTrialsResponse.md +3 -3
  59. data/docs/ConditionTrialsRow.md +4 -2
  60. data/docs/ConditionsApi.md +240 -0
  61. data/docs/ConditionsRecord.md +2 -2
  62. data/docs/ConditionsRecordAttributes.md +3 -1
  63. data/docs/ConditionsResponse.md +3 -3
  64. data/docs/DrugPatentCliffResponse.md +3 -3
  65. data/docs/InstitutionalHoldingsResponse.md +3 -3
  66. data/docs/InstitutionalHoldingsRow.md +7 -1
  67. data/docs/InvestorFundsResponse.md +58 -0
  68. data/docs/InvestorFundsRow.md +24 -0
  69. data/docs/InvestorPortfolioResponse.md +58 -0
  70. data/docs/InvestorPortfolioRow.md +42 -0
  71. data/docs/InvestorPrivateFundsResponse.md +58 -0
  72. data/docs/InvestorPrivateFundsRow.md +44 -0
  73. data/docs/InvestorsApi.md +633 -0
  74. data/docs/InvestorsRecord.md +38 -0
  75. data/docs/InvestorsResponse.md +58 -0
  76. data/docs/InvestorsRow.md +54 -0
  77. data/docs/LegalEntitiesApi.md +240 -0
  78. data/docs/LegalEntitiesRecord.md +2 -2
  79. data/docs/LegalEntitiesResponse.md +3 -3
  80. data/docs/LegalEntitiesRow.md +1 -1
  81. data/docs/ManagersApi.md +233 -0
  82. data/docs/ManagersRecord.md +38 -0
  83. data/docs/ManagersResponse.md +58 -0
  84. data/docs/ManagersRow.md +46 -0
  85. data/docs/OrgDisclosuresResponse.md +58 -0
  86. data/docs/OrgDisclosuresRow.md +56 -0
  87. data/docs/OrgRelationshipsResponse.md +58 -0
  88. data/docs/OrgRelationshipsRow.md +68 -0
  89. data/docs/OwnershipPositionsResponse.md +3 -3
  90. data/docs/OwnershipPositionsRow.md +16 -14
  91. data/docs/PdufaDatesResponse.md +3 -3
  92. data/docs/SiteBedsYearlyResponse.md +3 -3
  93. data/docs/SiteCroTrialsResponse.md +3 -3
  94. data/docs/SiteHospitalsResponse.md +3 -3
  95. data/docs/SiteInvestigatorsResponse.md +3 -3
  96. data/docs/SiteTrialConditionsResponse.md +3 -3
  97. data/docs/SiteTrialDrugsResponse.md +3 -3
  98. data/docs/SiteTrialsResponse.md +3 -3
  99. data/docs/SiteTrialsRow.md +3 -1
  100. data/docs/SitesRecord.md +2 -2
  101. data/docs/SitesResponse.md +3 -3
  102. data/docs/SponsorRecruitmentByPhaseResponse.md +3 -3
  103. data/docs/SponsorRecruitmentDurationResponse.md +3 -3
  104. data/docs/SponsorTrialStartForecastResponse.md +3 -3
  105. data/docs/SponsorTrialsResponse.md +3 -3
  106. data/docs/SponsorTrialsRow.md +4 -2
  107. data/docs/SupplierCapabilityEsgResponse.md +58 -0
  108. data/docs/SupplierCapabilityEsgRow.md +64 -0
  109. data/docs/SupplierServicesResponse.md +58 -0
  110. data/docs/SupplierServicesRow.md +30 -0
  111. data/docs/SupplierSitesResponse.md +58 -0
  112. data/docs/SupplierSitesRow.md +42 -0
  113. data/docs/SuppliersApi.md +313 -0
  114. data/docs/SuppliersRecord.md +38 -0
  115. data/docs/SuppliersResponse.md +58 -0
  116. data/docs/SuppliersRow.md +76 -0
  117. data/docs/TargetAssociationsResponse.md +58 -0
  118. data/docs/TargetAssociationsRow.md +26 -0
  119. data/docs/TargetCrowdingResponse.md +58 -0
  120. data/docs/TargetCrowdingRow.md +30 -0
  121. data/docs/TargetDrugsResponse.md +58 -0
  122. data/docs/TargetDrugsRow.md +38 -0
  123. data/docs/TargetEvidenceResponse.md +58 -0
  124. data/docs/TargetEvidenceRow.md +52 -0
  125. data/docs/TargetPatentMentionsResponse.md +58 -0
  126. data/docs/TargetPatentMentionsRow.md +34 -0
  127. data/docs/TargetProgramsResponse.md +58 -0
  128. data/docs/TargetProgramsRow.md +58 -0
  129. data/docs/TargetPublicationsResponse.md +58 -0
  130. data/docs/TargetPublicationsRow.md +32 -0
  131. data/docs/TargetRegulatoryPrecedentResponse.md +58 -0
  132. data/docs/TargetRegulatoryPrecedentRow.md +38 -0
  133. data/docs/TargetTrialsResponse.md +58 -0
  134. data/docs/TargetTrialsRow.md +46 -0
  135. data/docs/TargetsApi.md +1033 -0
  136. data/docs/TargetsRecord.md +38 -0
  137. data/docs/TargetsResponse.md +58 -0
  138. data/docs/TargetsRow.md +68 -0
  139. data/docs/TrialAdverseEventsResponse.md +3 -3
  140. data/docs/TrialChangesResponse.md +3 -3
  141. data/docs/TrialDeliveryResponse.md +3 -3
  142. data/docs/TrialDeliveryRow.md +7 -5
  143. data/docs/TrialDemographicsResponse.md +3 -3
  144. data/docs/TrialDrugClassesResponse.md +58 -0
  145. data/docs/TrialDrugClassesRow.md +28 -0
  146. data/docs/TrialDrugsResponse.md +3 -3
  147. data/docs/TrialEnrollmentHistoryResponse.md +3 -3
  148. data/docs/TrialEnrollmentRateResponse.md +3 -3
  149. data/docs/TrialEnrollmentRateRow.md +5 -3
  150. data/docs/TrialExtractedEndpointsResponse.md +3 -3
  151. data/docs/TrialKolsResponse.md +58 -0
  152. data/docs/TrialKolsRow.md +32 -0
  153. data/docs/TrialOutcomeMeasuresResponse.md +3 -3
  154. data/docs/TrialResearchPaymentsResponse.md +58 -0
  155. data/docs/TrialResearchPaymentsRow.md +44 -0
  156. data/docs/TrialSiteHistoryResponse.md +58 -0
  157. data/docs/TrialSiteHistoryRow.md +50 -0
  158. data/docs/TrialSitesResponse.md +3 -3
  159. data/docs/TrialsApi.md +320 -0
  160. data/docs/TrialsRecord.md +2 -2
  161. data/docs/TrialsResponse.md +3 -3
  162. data/docs/TrialsRow.md +3 -3
  163. data/lib/pharmaobservatory/api/biomarkers_api.rb +168 -0
  164. data/lib/pharmaobservatory/api/companies_api.rb +273 -0
  165. data/lib/pharmaobservatory/api/conditions_api.rb +252 -0
  166. data/lib/pharmaobservatory/api/investors_api.rb +665 -0
  167. data/lib/pharmaobservatory/api/legal_entities_api.rb +252 -0
  168. data/lib/pharmaobservatory/api/managers_api.rb +245 -0
  169. data/lib/pharmaobservatory/api/suppliers_api.rb +329 -0
  170. data/lib/pharmaobservatory/api/targets_api.rb +1085 -0
  171. data/lib/pharmaobservatory/api/trials_api.rb +336 -0
  172. data/lib/pharmaobservatory/models/api_v1_whoami_get200_response.rb +62 -4
  173. data/lib/pharmaobservatory/models/api_v1_whoami_get200_response_limits.rb +419 -0
  174. data/lib/pharmaobservatory/models/api_v1_whoami_get200_response_quota.rb +263 -0
  175. data/lib/pharmaobservatory/models/api_v1_whoami_get200_response_quota_buckets.rb +367 -0
  176. data/lib/pharmaobservatory/models/api_v1_whoami_get200_response_quota_buckets_requests_per_minute.rb +367 -0
  177. data/lib/pharmaobservatory/models/biomarker_assay_evidence_response.rb +478 -0
  178. data/lib/pharmaobservatory/models/{biomarker_cdx_assertions_response_build.rb → biomarker_assay_evidence_response_build.rb} +3 -3
  179. data/lib/pharmaobservatory/models/{biomarker_cdx_assertions_response_freshness.rb → biomarker_assay_evidence_response_freshness.rb} +3 -3
  180. data/lib/pharmaobservatory/models/{biomarker_cdx_assertions_response_scope.rb → biomarker_assay_evidence_response_scope.rb} +3 -3
  181. data/lib/pharmaobservatory/models/biomarker_assay_evidence_row.rb +506 -0
  182. data/lib/pharmaobservatory/models/biomarker_assay_whitespace_response.rb +478 -0
  183. data/lib/pharmaobservatory/models/biomarker_assay_whitespace_row.rb +499 -0
  184. data/lib/pharmaobservatory/models/biomarker_bqp_assertions_response.rb +3 -3
  185. data/lib/pharmaobservatory/models/biomarker_cdx_assertions_response.rb +3 -3
  186. data/lib/pharmaobservatory/models/biomarker_evidence_response.rb +3 -3
  187. data/lib/pharmaobservatory/models/biomarker_literature_response.rb +3 -3
  188. data/lib/pharmaobservatory/models/biomarker_publishing_companies_response.rb +3 -3
  189. data/lib/pharmaobservatory/models/biomarker_publishing_companies_row.rb +49 -5
  190. data/lib/pharmaobservatory/models/biomarker_relations_response.rb +3 -3
  191. data/lib/pharmaobservatory/models/biomarker_sample_coverage_response.rb +3 -3
  192. data/lib/pharmaobservatory/models/biomarker_sample_prevalence_response.rb +3 -3
  193. data/lib/pharmaobservatory/models/biomarker_validation_response.rb +3 -3
  194. data/lib/pharmaobservatory/models/biomarker_variant_mentions_response.rb +3 -3
  195. data/lib/pharmaobservatory/models/biomarkers_record.rb +2 -2
  196. data/lib/pharmaobservatory/models/biomarkers_response.rb +3 -3
  197. data/lib/pharmaobservatory/models/biomarkers_row.rb +12 -1
  198. data/lib/pharmaobservatory/models/cell_lines_record.rb +2 -2
  199. data/lib/pharmaobservatory/models/cell_lines_response.rb +3 -3
  200. data/lib/pharmaobservatory/models/companies_record.rb +2 -2
  201. data/lib/pharmaobservatory/models/companies_response.rb +3 -3
  202. data/lib/pharmaobservatory/models/companies_row.rb +1 -1
  203. data/lib/pharmaobservatory/models/company_assets_response.rb +3 -3
  204. data/lib/pharmaobservatory/models/company_funding_events_response.rb +3 -3
  205. data/lib/pharmaobservatory/models/company_funding_events_row.rb +1 -1
  206. data/lib/pharmaobservatory/models/company_funding_summary_response.rb +3 -3
  207. data/lib/pharmaobservatory/models/company_members_response.rb +3 -3
  208. data/lib/pharmaobservatory/models/company_programs_response.rb +3 -3
  209. data/lib/pharmaobservatory/models/company_targets_response.rb +3 -3
  210. data/lib/pharmaobservatory/models/company_targets_row.rb +27 -5
  211. data/lib/pharmaobservatory/models/condition_adverse_events_response.rb +3 -3
  212. data/lib/pharmaobservatory/models/condition_burden_response.rb +3 -3
  213. data/lib/pharmaobservatory/models/condition_delivery_response.rb +3 -3
  214. data/lib/pharmaobservatory/models/condition_drugs_response.rb +3 -3
  215. data/lib/pharmaobservatory/models/condition_prevalence_response.rb +3 -3
  216. data/lib/pharmaobservatory/models/condition_prevalence_row.rb +1 -1
  217. data/lib/pharmaobservatory/models/condition_publications_response.rb +3 -3
  218. data/lib/pharmaobservatory/models/condition_recruitment_by_phase_response.rb +478 -0
  219. data/lib/pharmaobservatory/models/condition_recruitment_by_phase_row.rb +399 -0
  220. data/lib/pharmaobservatory/models/condition_recruitment_duration_response.rb +478 -0
  221. data/lib/pharmaobservatory/models/condition_recruitment_duration_row.rb +597 -0
  222. data/lib/pharmaobservatory/models/condition_sites_response.rb +3 -3
  223. data/lib/pharmaobservatory/models/condition_trial_start_forecast_response.rb +478 -0
  224. data/lib/pharmaobservatory/models/condition_trial_start_forecast_row.rb +509 -0
  225. data/lib/pharmaobservatory/models/condition_trials_response.rb +3 -3
  226. data/lib/pharmaobservatory/models/condition_trials_row.rb +14 -3
  227. data/lib/pharmaobservatory/models/conditions_record.rb +2 -2
  228. data/lib/pharmaobservatory/models/conditions_record_attributes.rb +13 -4
  229. data/lib/pharmaobservatory/models/conditions_response.rb +3 -3
  230. data/lib/pharmaobservatory/models/drug_patent_cliff_response.rb +3 -3
  231. data/lib/pharmaobservatory/models/institutional_holdings_response.rb +3 -3
  232. data/lib/pharmaobservatory/models/institutional_holdings_row.rb +35 -2
  233. data/lib/pharmaobservatory/models/investor_funds_response.rb +478 -0
  234. data/lib/pharmaobservatory/models/investor_funds_row.rb +256 -0
  235. data/lib/pharmaobservatory/models/investor_portfolio_response.rb +478 -0
  236. data/lib/pharmaobservatory/models/investor_portfolio_row.rb +357 -0
  237. data/lib/pharmaobservatory/models/investor_private_funds_response.rb +478 -0
  238. data/lib/pharmaobservatory/models/investor_private_funds_row.rb +366 -0
  239. data/lib/pharmaobservatory/models/investors_record.rb +385 -0
  240. data/lib/pharmaobservatory/models/investors_response.rb +478 -0
  241. data/lib/pharmaobservatory/models/investors_row.rb +421 -0
  242. data/lib/pharmaobservatory/models/legal_entities_record.rb +2 -2
  243. data/lib/pharmaobservatory/models/legal_entities_response.rb +3 -3
  244. data/lib/pharmaobservatory/models/legal_entities_row.rb +1 -1
  245. data/lib/pharmaobservatory/models/managers_record.rb +385 -0
  246. data/lib/pharmaobservatory/models/managers_response.rb +478 -0
  247. data/lib/pharmaobservatory/models/managers_row.rb +377 -0
  248. data/lib/pharmaobservatory/models/org_disclosures_response.rb +478 -0
  249. data/lib/pharmaobservatory/models/org_disclosures_row.rb +432 -0
  250. data/lib/pharmaobservatory/models/org_relationships_response.rb +478 -0
  251. data/lib/pharmaobservatory/models/org_relationships_row.rb +498 -0
  252. data/lib/pharmaobservatory/models/ownership_positions_response.rb +3 -3
  253. data/lib/pharmaobservatory/models/ownership_positions_row.rb +26 -15
  254. data/lib/pharmaobservatory/models/pdufa_dates_response.rb +3 -3
  255. data/lib/pharmaobservatory/models/site_beds_yearly_response.rb +3 -3
  256. data/lib/pharmaobservatory/models/site_cro_trials_response.rb +3 -3
  257. data/lib/pharmaobservatory/models/site_hospitals_response.rb +3 -3
  258. data/lib/pharmaobservatory/models/site_investigators_response.rb +3 -3
  259. data/lib/pharmaobservatory/models/site_trial_conditions_response.rb +3 -3
  260. data/lib/pharmaobservatory/models/site_trial_drugs_response.rb +3 -3
  261. data/lib/pharmaobservatory/models/site_trials_response.rb +3 -3
  262. data/lib/pharmaobservatory/models/site_trials_row.rb +13 -2
  263. data/lib/pharmaobservatory/models/sites_record.rb +2 -2
  264. data/lib/pharmaobservatory/models/sites_response.rb +3 -3
  265. data/lib/pharmaobservatory/models/sponsor_recruitment_by_phase_response.rb +3 -3
  266. data/lib/pharmaobservatory/models/sponsor_recruitment_duration_response.rb +3 -3
  267. data/lib/pharmaobservatory/models/sponsor_trial_start_forecast_response.rb +3 -3
  268. data/lib/pharmaobservatory/models/sponsor_trials_response.rb +3 -3
  269. data/lib/pharmaobservatory/models/sponsor_trials_row.rb +14 -3
  270. data/lib/pharmaobservatory/models/supplier_capability_esg_response.rb +478 -0
  271. data/lib/pharmaobservatory/models/supplier_capability_esg_row.rb +480 -0
  272. data/lib/pharmaobservatory/models/supplier_services_response.rb +478 -0
  273. data/lib/pharmaobservatory/models/supplier_services_row.rb +289 -0
  274. data/lib/pharmaobservatory/models/supplier_sites_response.rb +478 -0
  275. data/lib/pharmaobservatory/models/supplier_sites_row.rb +357 -0
  276. data/lib/pharmaobservatory/models/suppliers_record.rb +385 -0
  277. data/lib/pharmaobservatory/models/suppliers_response.rb +478 -0
  278. data/lib/pharmaobservatory/models/suppliers_row.rb +544 -0
  279. data/lib/pharmaobservatory/models/target_associations_response.rb +478 -0
  280. data/lib/pharmaobservatory/models/target_associations_row.rb +267 -0
  281. data/lib/pharmaobservatory/models/target_crowding_response.rb +478 -0
  282. data/lib/pharmaobservatory/models/target_crowding_row.rb +289 -0
  283. data/lib/pharmaobservatory/models/target_drugs_response.rb +478 -0
  284. data/lib/pharmaobservatory/models/target_drugs_row.rb +335 -0
  285. data/lib/pharmaobservatory/models/target_evidence_response.rb +478 -0
  286. data/lib/pharmaobservatory/models/target_evidence_row.rb +410 -0
  287. data/lib/pharmaobservatory/models/target_patent_mentions_response.rb +478 -0
  288. data/lib/pharmaobservatory/models/target_patent_mentions_row.rb +311 -0
  289. data/lib/pharmaobservatory/models/target_programs_response.rb +478 -0
  290. data/lib/pharmaobservatory/models/target_programs_row.rb +447 -0
  291. data/lib/pharmaobservatory/models/target_publications_response.rb +478 -0
  292. data/lib/pharmaobservatory/models/target_publications_row.rb +300 -0
  293. data/lib/pharmaobservatory/models/target_regulatory_precedent_response.rb +478 -0
  294. data/lib/pharmaobservatory/models/target_regulatory_precedent_row.rb +333 -0
  295. data/lib/pharmaobservatory/models/target_trials_response.rb +478 -0
  296. data/lib/pharmaobservatory/models/target_trials_row.rb +377 -0
  297. data/lib/pharmaobservatory/models/targets_record.rb +385 -0
  298. data/lib/pharmaobservatory/models/targets_response.rb +478 -0
  299. data/lib/pharmaobservatory/models/targets_row.rb +498 -0
  300. data/lib/pharmaobservatory/models/trial_adverse_events_response.rb +3 -3
  301. data/lib/pharmaobservatory/models/trial_changes_response.rb +3 -3
  302. data/lib/pharmaobservatory/models/trial_delivery_response.rb +3 -3
  303. data/lib/pharmaobservatory/models/trial_delivery_row.rb +22 -11
  304. data/lib/pharmaobservatory/models/trial_demographics_response.rb +3 -3
  305. data/lib/pharmaobservatory/models/trial_drug_classes_response.rb +478 -0
  306. data/lib/pharmaobservatory/models/trial_drug_classes_row.rb +278 -0
  307. data/lib/pharmaobservatory/models/trial_drugs_response.rb +3 -3
  308. data/lib/pharmaobservatory/models/trial_enrollment_history_response.rb +3 -3
  309. data/lib/pharmaobservatory/models/trial_enrollment_rate_response.rb +3 -3
  310. data/lib/pharmaobservatory/models/trial_enrollment_rate_row.rb +15 -4
  311. data/lib/pharmaobservatory/models/trial_extracted_endpoints_response.rb +3 -3
  312. data/lib/pharmaobservatory/models/trial_kols_response.rb +478 -0
  313. data/lib/pharmaobservatory/models/trial_kols_row.rb +302 -0
  314. data/lib/pharmaobservatory/models/trial_outcome_measures_response.rb +3 -3
  315. data/lib/pharmaobservatory/models/trial_research_payments_response.rb +478 -0
  316. data/lib/pharmaobservatory/models/trial_research_payments_row.rb +366 -0
  317. data/lib/pharmaobservatory/models/trial_site_history_response.rb +478 -0
  318. data/lib/pharmaobservatory/models/trial_site_history_row.rb +401 -0
  319. data/lib/pharmaobservatory/models/trial_sites_response.rb +3 -3
  320. data/lib/pharmaobservatory/models/trials_record.rb +2 -2
  321. data/lib/pharmaobservatory/models/trials_response.rb +3 -3
  322. data/lib/pharmaobservatory/models/trials_row.rb +3 -3
  323. data/lib/pharmaobservatory/version.rb +1 -1
  324. data/lib/pharmaobservatory.rb +75 -3
  325. metadata +152 -8
@@ -0,0 +1,498 @@
1
+ =begin
2
+ #Pharma Observatory Public REST API
3
+
4
+ #Read-only REST API over the Pharma Observatory biomedical data platform. Reference: https://pharmaobservatory.com/api-reference
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.13.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module PharmaObservatory
17
+ # One row of the targets dataset: one row per target (an Ensembl gene in the Open Targets roster). A grouped request returns the group columns and the measures instead, as additional properties.
18
+ class TargetsRow
19
+ # The target's Ensembl gene id (ENSG followed by eleven digits): the entry key for the targets object type. A gene symbol is not a value here; it is a separate column.
20
+ attr_accessor :target_id
21
+
22
+ # The target's HGNC gene symbol; the target page address accepts it.
23
+ attr_accessor :symbol
24
+
25
+ # The gene's name.
26
+ attr_accessor :name
27
+
28
+ # Open Targets biotype of the gene (protein_coding and so on); null where the source gives none.
29
+ attr_accessor :biotype
30
+
31
+ # The UniProt accession of the gene's canonical protein; null where there is none.
32
+ attr_accessor :uniprot_accession
33
+
34
+ # The protein's recommended name from UniProt; null where the gene has no protein record.
35
+ attr_accessor :protein_name
36
+
37
+ # The HGNC gene id (HGNC:nnnn) from UniProt; null where the gene has no protein record.
38
+ attr_accessor :hgnc_id
39
+
40
+ # The NCBI Gene id from UniProt; null where the gene has no protein record.
41
+ attr_accessor :ncbi_gene_id
42
+
43
+ # Whether the gene has a biomarker record; the biomarkers datasets enter on the gene symbol.
44
+ attr_accessor :has_biomarker
45
+
46
+ # Distinct drugs that act on the target, any evidence tier.
47
+ attr_accessor :n_drugs
48
+
49
+ # Of n_drugs, those with a curated Open Targets mechanism edge (the floor).
50
+ attr_accessor :n_drugs_curated
51
+
52
+ # Of n_drugs, those found only through ChEMBL or the curated investigational assets.
53
+ attr_accessor :n_drugs_investigational
54
+
55
+ # True when no drug beyond the curated floor is known for the target.
56
+ attr_accessor :moa_floor_only
57
+
58
+ # Distinct trials whose drug interventions act on the target.
59
+ attr_accessor :n_trials
60
+
61
+ # Of n_trials, those reached through a curated mechanism edge.
62
+ attr_accessor :n_trials_curated
63
+
64
+ # Of n_trials, those reached only through ChEMBL or curated investigational assets.
65
+ attr_accessor :n_trials_investigational
66
+
67
+ # Distinct drug and indication programs against the target (a specific indication with at least two trials); the crowding headline.
68
+ attr_accessor :n_programs
69
+
70
+ # Of n_programs, those with no terminated, withdrawn or suspended trial.
71
+ attr_accessor :n_active_programs
72
+
73
+ # The furthest phase band (0 to 4) that carries any program; 0 when the target has none.
74
+ attr_accessor :lead_phase
75
+
76
+ # Rank of n_programs among targets that have programs (1 is the most crowded); null when the target has none.
77
+ attr_accessor :programs_rank
78
+
79
+ # Share of programmed targets with fewer programs than this one, 0 to 1; null when the target has none.
80
+ attr_accessor :programs_pctile
81
+
82
+ # Distinct approved drugs with a curated mechanism edge to the target.
83
+ attr_accessor :n_approved_drugs
84
+
85
+ # Distinct papers with a gene mention in the trial-cited PubMed corpus.
86
+ attr_accessor :n_publication_mention_papers
87
+
88
+ # True when any Open Targets datasource has a target-disease association for the gene.
89
+ attr_accessor :has_ot_association
90
+
91
+ # Protein Data Bank structures mapped to the gene's protein.
92
+ attr_accessor :n_pdb
93
+
94
+ # True when at least one Protein Data Bank structure maps to the gene's protein.
95
+ attr_accessor :has_pdb
96
+
97
+ # Attribute mapping from ruby-style variable name to JSON key.
98
+ def self.attribute_map
99
+ {
100
+ :'target_id' => :'target_id',
101
+ :'symbol' => :'symbol',
102
+ :'name' => :'name',
103
+ :'biotype' => :'biotype',
104
+ :'uniprot_accession' => :'uniprot_accession',
105
+ :'protein_name' => :'protein_name',
106
+ :'hgnc_id' => :'hgnc_id',
107
+ :'ncbi_gene_id' => :'ncbi_gene_id',
108
+ :'has_biomarker' => :'has_biomarker',
109
+ :'n_drugs' => :'n_drugs',
110
+ :'n_drugs_curated' => :'n_drugs_curated',
111
+ :'n_drugs_investigational' => :'n_drugs_investigational',
112
+ :'moa_floor_only' => :'moa_floor_only',
113
+ :'n_trials' => :'n_trials',
114
+ :'n_trials_curated' => :'n_trials_curated',
115
+ :'n_trials_investigational' => :'n_trials_investigational',
116
+ :'n_programs' => :'n_programs',
117
+ :'n_active_programs' => :'n_active_programs',
118
+ :'lead_phase' => :'lead_phase',
119
+ :'programs_rank' => :'programs_rank',
120
+ :'programs_pctile' => :'programs_pctile',
121
+ :'n_approved_drugs' => :'n_approved_drugs',
122
+ :'n_publication_mention_papers' => :'n_publication_mention_papers',
123
+ :'has_ot_association' => :'has_ot_association',
124
+ :'n_pdb' => :'n_pdb',
125
+ :'has_pdb' => :'has_pdb'
126
+ }
127
+ end
128
+
129
+ # Returns attribute mapping this model knows about
130
+ def self.acceptable_attribute_map
131
+ attribute_map
132
+ end
133
+
134
+ # Returns all the JSON keys this model knows about
135
+ def self.acceptable_attributes
136
+ acceptable_attribute_map.values
137
+ end
138
+
139
+ # Attribute type mapping.
140
+ def self.openapi_types
141
+ {
142
+ :'target_id' => :'String',
143
+ :'symbol' => :'String',
144
+ :'name' => :'String',
145
+ :'biotype' => :'String',
146
+ :'uniprot_accession' => :'String',
147
+ :'protein_name' => :'String',
148
+ :'hgnc_id' => :'String',
149
+ :'ncbi_gene_id' => :'String',
150
+ :'has_biomarker' => :'Boolean',
151
+ :'n_drugs' => :'Integer',
152
+ :'n_drugs_curated' => :'Integer',
153
+ :'n_drugs_investigational' => :'Integer',
154
+ :'moa_floor_only' => :'Boolean',
155
+ :'n_trials' => :'Integer',
156
+ :'n_trials_curated' => :'Integer',
157
+ :'n_trials_investigational' => :'Integer',
158
+ :'n_programs' => :'Float',
159
+ :'n_active_programs' => :'Float',
160
+ :'lead_phase' => :'Integer',
161
+ :'programs_rank' => :'Integer',
162
+ :'programs_pctile' => :'Float',
163
+ :'n_approved_drugs' => :'Integer',
164
+ :'n_publication_mention_papers' => :'Integer',
165
+ :'has_ot_association' => :'Boolean',
166
+ :'n_pdb' => :'Integer',
167
+ :'has_pdb' => :'Boolean'
168
+ }
169
+ end
170
+
171
+ # List of attributes with nullable: true
172
+ def self.openapi_nullable
173
+ Set.new([
174
+ :'target_id',
175
+ :'symbol',
176
+ :'name',
177
+ :'biotype',
178
+ :'uniprot_accession',
179
+ :'protein_name',
180
+ :'hgnc_id',
181
+ :'ncbi_gene_id',
182
+ :'has_biomarker',
183
+ :'n_drugs',
184
+ :'n_drugs_curated',
185
+ :'n_drugs_investigational',
186
+ :'moa_floor_only',
187
+ :'n_trials',
188
+ :'n_trials_curated',
189
+ :'n_trials_investigational',
190
+ :'n_programs',
191
+ :'n_active_programs',
192
+ :'lead_phase',
193
+ :'programs_rank',
194
+ :'programs_pctile',
195
+ :'n_approved_drugs',
196
+ :'n_publication_mention_papers',
197
+ :'has_ot_association',
198
+ :'n_pdb',
199
+ :'has_pdb'
200
+ ])
201
+ end
202
+
203
+ # Initializes the object
204
+ # @param [Hash] attributes Model attributes in the form of hash
205
+ def initialize(attributes = {})
206
+ if (!attributes.is_a?(Hash))
207
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PharmaObservatory::TargetsRow` initialize method"
208
+ end
209
+
210
+ # check to see if the attribute exists and convert string to symbol for hash key
211
+ acceptable_attribute_map = self.class.acceptable_attribute_map
212
+ attributes = attributes.each_with_object({}) { |(k, v), h|
213
+ if (!acceptable_attribute_map.key?(k.to_sym))
214
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PharmaObservatory::TargetsRow`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
215
+ end
216
+ h[k.to_sym] = v
217
+ }
218
+
219
+ if attributes.key?(:'target_id')
220
+ self.target_id = attributes[:'target_id']
221
+ end
222
+
223
+ if attributes.key?(:'symbol')
224
+ self.symbol = attributes[:'symbol']
225
+ end
226
+
227
+ if attributes.key?(:'name')
228
+ self.name = attributes[:'name']
229
+ end
230
+
231
+ if attributes.key?(:'biotype')
232
+ self.biotype = attributes[:'biotype']
233
+ end
234
+
235
+ if attributes.key?(:'uniprot_accession')
236
+ self.uniprot_accession = attributes[:'uniprot_accession']
237
+ end
238
+
239
+ if attributes.key?(:'protein_name')
240
+ self.protein_name = attributes[:'protein_name']
241
+ end
242
+
243
+ if attributes.key?(:'hgnc_id')
244
+ self.hgnc_id = attributes[:'hgnc_id']
245
+ end
246
+
247
+ if attributes.key?(:'ncbi_gene_id')
248
+ self.ncbi_gene_id = attributes[:'ncbi_gene_id']
249
+ end
250
+
251
+ if attributes.key?(:'has_biomarker')
252
+ self.has_biomarker = attributes[:'has_biomarker']
253
+ end
254
+
255
+ if attributes.key?(:'n_drugs')
256
+ self.n_drugs = attributes[:'n_drugs']
257
+ end
258
+
259
+ if attributes.key?(:'n_drugs_curated')
260
+ self.n_drugs_curated = attributes[:'n_drugs_curated']
261
+ end
262
+
263
+ if attributes.key?(:'n_drugs_investigational')
264
+ self.n_drugs_investigational = attributes[:'n_drugs_investigational']
265
+ end
266
+
267
+ if attributes.key?(:'moa_floor_only')
268
+ self.moa_floor_only = attributes[:'moa_floor_only']
269
+ end
270
+
271
+ if attributes.key?(:'n_trials')
272
+ self.n_trials = attributes[:'n_trials']
273
+ end
274
+
275
+ if attributes.key?(:'n_trials_curated')
276
+ self.n_trials_curated = attributes[:'n_trials_curated']
277
+ end
278
+
279
+ if attributes.key?(:'n_trials_investigational')
280
+ self.n_trials_investigational = attributes[:'n_trials_investigational']
281
+ end
282
+
283
+ if attributes.key?(:'n_programs')
284
+ self.n_programs = attributes[:'n_programs']
285
+ end
286
+
287
+ if attributes.key?(:'n_active_programs')
288
+ self.n_active_programs = attributes[:'n_active_programs']
289
+ end
290
+
291
+ if attributes.key?(:'lead_phase')
292
+ self.lead_phase = attributes[:'lead_phase']
293
+ end
294
+
295
+ if attributes.key?(:'programs_rank')
296
+ self.programs_rank = attributes[:'programs_rank']
297
+ end
298
+
299
+ if attributes.key?(:'programs_pctile')
300
+ self.programs_pctile = attributes[:'programs_pctile']
301
+ end
302
+
303
+ if attributes.key?(:'n_approved_drugs')
304
+ self.n_approved_drugs = attributes[:'n_approved_drugs']
305
+ end
306
+
307
+ if attributes.key?(:'n_publication_mention_papers')
308
+ self.n_publication_mention_papers = attributes[:'n_publication_mention_papers']
309
+ end
310
+
311
+ if attributes.key?(:'has_ot_association')
312
+ self.has_ot_association = attributes[:'has_ot_association']
313
+ end
314
+
315
+ if attributes.key?(:'n_pdb')
316
+ self.n_pdb = attributes[:'n_pdb']
317
+ end
318
+
319
+ if attributes.key?(:'has_pdb')
320
+ self.has_pdb = attributes[:'has_pdb']
321
+ end
322
+ end
323
+
324
+ # Show invalid properties with the reasons. Usually used together with valid?
325
+ # @return Array for valid properties with the reasons
326
+ def list_invalid_properties
327
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
328
+ invalid_properties = Array.new
329
+ invalid_properties
330
+ end
331
+
332
+ # Check to see if the all the properties in the model are valid
333
+ # @return true if the model is valid
334
+ def valid?
335
+ warn '[DEPRECATED] the `valid?` method is obsolete'
336
+ true
337
+ end
338
+
339
+ # Checks equality by comparing each attribute.
340
+ # @param [Object] Object to be compared
341
+ def ==(o)
342
+ return true if self.equal?(o)
343
+ self.class == o.class &&
344
+ target_id == o.target_id &&
345
+ symbol == o.symbol &&
346
+ name == o.name &&
347
+ biotype == o.biotype &&
348
+ uniprot_accession == o.uniprot_accession &&
349
+ protein_name == o.protein_name &&
350
+ hgnc_id == o.hgnc_id &&
351
+ ncbi_gene_id == o.ncbi_gene_id &&
352
+ has_biomarker == o.has_biomarker &&
353
+ n_drugs == o.n_drugs &&
354
+ n_drugs_curated == o.n_drugs_curated &&
355
+ n_drugs_investigational == o.n_drugs_investigational &&
356
+ moa_floor_only == o.moa_floor_only &&
357
+ n_trials == o.n_trials &&
358
+ n_trials_curated == o.n_trials_curated &&
359
+ n_trials_investigational == o.n_trials_investigational &&
360
+ n_programs == o.n_programs &&
361
+ n_active_programs == o.n_active_programs &&
362
+ lead_phase == o.lead_phase &&
363
+ programs_rank == o.programs_rank &&
364
+ programs_pctile == o.programs_pctile &&
365
+ n_approved_drugs == o.n_approved_drugs &&
366
+ n_publication_mention_papers == o.n_publication_mention_papers &&
367
+ has_ot_association == o.has_ot_association &&
368
+ n_pdb == o.n_pdb &&
369
+ has_pdb == o.has_pdb
370
+ end
371
+
372
+ # @see the `==` method
373
+ # @param [Object] Object to be compared
374
+ def eql?(o)
375
+ self == o
376
+ end
377
+
378
+ # Calculates hash code according to all attributes.
379
+ # @return [Integer] Hash code
380
+ def hash
381
+ [target_id, symbol, name, biotype, uniprot_accession, protein_name, hgnc_id, ncbi_gene_id, has_biomarker, n_drugs, n_drugs_curated, n_drugs_investigational, moa_floor_only, n_trials, n_trials_curated, n_trials_investigational, n_programs, n_active_programs, lead_phase, programs_rank, programs_pctile, n_approved_drugs, n_publication_mention_papers, has_ot_association, n_pdb, has_pdb].hash
382
+ end
383
+
384
+ # Builds the object from hash
385
+ # @param [Hash] attributes Model attributes in the form of hash
386
+ # @return [Object] Returns the model itself
387
+ def self.build_from_hash(attributes)
388
+ return nil unless attributes.is_a?(Hash)
389
+ attributes = attributes.transform_keys(&:to_sym)
390
+ transformed_hash = {}
391
+ openapi_types.each_pair do |key, type|
392
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
393
+ transformed_hash["#{key}"] = nil
394
+ elsif type =~ /\AArray<(.*)>/i
395
+ # check to ensure the input is an array given that the attribute
396
+ # is documented as an array but the input is not
397
+ if attributes[attribute_map[key]].is_a?(Array)
398
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
399
+ end
400
+ elsif !attributes[attribute_map[key]].nil?
401
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
402
+ end
403
+ end
404
+ new(transformed_hash)
405
+ end
406
+
407
+ # Deserializes the data based on type
408
+ # @param string type Data type
409
+ # @param string value Value to be deserialized
410
+ # @return [Object] Deserialized data
411
+ def self._deserialize(type, value)
412
+ case type.to_sym
413
+ when :Time
414
+ Time.parse(value)
415
+ when :Date
416
+ Date.parse(value)
417
+ when :String
418
+ value.to_s
419
+ when :Integer
420
+ value.to_i
421
+ when :Float
422
+ value.to_f
423
+ when :Boolean
424
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
425
+ true
426
+ else
427
+ false
428
+ end
429
+ when :Object
430
+ # generic object (usually a Hash), return directly
431
+ value
432
+ when /\AArray<(?<inner_type>.+)>\z/
433
+ inner_type = Regexp.last_match[:inner_type]
434
+ value.map { |v| _deserialize(inner_type, v) }
435
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
436
+ k_type = Regexp.last_match[:k_type]
437
+ v_type = Regexp.last_match[:v_type]
438
+ {}.tap do |hash|
439
+ value.each do |k, v|
440
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
441
+ end
442
+ end
443
+ else # model
444
+ # models (e.g. Pet) or oneOf
445
+ klass = PharmaObservatory.const_get(type)
446
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
447
+ end
448
+ end
449
+
450
+ # Returns the string representation of the object
451
+ # @return [String] String presentation of the object
452
+ def to_s
453
+ to_hash.to_s
454
+ end
455
+
456
+ # to_body is an alias to to_hash (backward compatibility)
457
+ # @return [Hash] Returns the object in the form of hash
458
+ def to_body
459
+ to_hash
460
+ end
461
+
462
+ # Returns the object in the form of hash
463
+ # @return [Hash] Returns the object in the form of hash
464
+ def to_hash
465
+ hash = {}
466
+ self.class.attribute_map.each_pair do |attr, param|
467
+ value = self.send(attr)
468
+ if value.nil?
469
+ is_nullable = self.class.openapi_nullable.include?(attr)
470
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
471
+ end
472
+
473
+ hash[param] = _to_hash(value)
474
+ end
475
+ hash
476
+ end
477
+
478
+ # Outputs non-array value in the form of hash
479
+ # For object, use to_hash. Otherwise, just return the value
480
+ # @param [Object] value Any valid value
481
+ # @return [Hash] Returns the value in the form of hash
482
+ def _to_hash(value)
483
+ if value.is_a?(Array)
484
+ value.compact.map { |v| _to_hash(v) }
485
+ elsif value.is_a?(Hash)
486
+ {}.tap do |hash|
487
+ value.each { |k, v| hash[k] = _to_hash(v) }
488
+ end
489
+ elsif value.respond_to? :to_hash
490
+ value.to_hash
491
+ else
492
+ value
493
+ end
494
+ end
495
+
496
+ end
497
+
498
+ end
@@ -102,7 +102,7 @@ module PharmaObservatory
102
102
  :'grain' => :'String',
103
103
  :'object_type' => :'String',
104
104
  :'id' => :'String',
105
- :'scope' => :'BiomarkerCdxAssertionsResponseScope',
105
+ :'scope' => :'BiomarkerAssayEvidenceResponseScope',
106
106
  :'columns' => :'Array<DatasetColumn>',
107
107
  :'rows' => :'Array<TrialAdverseEventsRow>',
108
108
  :'total' => :'Integer',
@@ -115,8 +115,8 @@ module PharmaObservatory
115
115
  :'source_credit' => :'String',
116
116
  :'withheld_tiers' => :'Array<String>',
117
117
  :'withheld_columns' => :'Array<String>',
118
- :'freshness' => :'BiomarkerCdxAssertionsResponseFreshness',
119
- :'build' => :'BiomarkerCdxAssertionsResponseBuild',
118
+ :'freshness' => :'BiomarkerAssayEvidenceResponseFreshness',
119
+ :'build' => :'BiomarkerAssayEvidenceResponseBuild',
120
120
  :'build_state' => :'DatasetBuildState',
121
121
  :'restriction' => :'Hash<String, Object>'
122
122
  }
@@ -102,7 +102,7 @@ module PharmaObservatory
102
102
  :'grain' => :'String',
103
103
  :'object_type' => :'String',
104
104
  :'id' => :'String',
105
- :'scope' => :'BiomarkerCdxAssertionsResponseScope',
105
+ :'scope' => :'BiomarkerAssayEvidenceResponseScope',
106
106
  :'columns' => :'Array<DatasetColumn>',
107
107
  :'rows' => :'Array<TrialChangesRow>',
108
108
  :'total' => :'Integer',
@@ -115,8 +115,8 @@ module PharmaObservatory
115
115
  :'source_credit' => :'String',
116
116
  :'withheld_tiers' => :'Array<String>',
117
117
  :'withheld_columns' => :'Array<String>',
118
- :'freshness' => :'BiomarkerCdxAssertionsResponseFreshness',
119
- :'build' => :'BiomarkerCdxAssertionsResponseBuild',
118
+ :'freshness' => :'BiomarkerAssayEvidenceResponseFreshness',
119
+ :'build' => :'BiomarkerAssayEvidenceResponseBuild',
120
120
  :'build_state' => :'DatasetBuildState',
121
121
  :'restriction' => :'Hash<String, Object>'
122
122
  }
@@ -102,7 +102,7 @@ module PharmaObservatory
102
102
  :'grain' => :'String',
103
103
  :'object_type' => :'String',
104
104
  :'id' => :'String',
105
- :'scope' => :'BiomarkerCdxAssertionsResponseScope',
105
+ :'scope' => :'BiomarkerAssayEvidenceResponseScope',
106
106
  :'columns' => :'Array<DatasetColumn>',
107
107
  :'rows' => :'Array<TrialDeliveryRow>',
108
108
  :'total' => :'Integer',
@@ -115,8 +115,8 @@ module PharmaObservatory
115
115
  :'source_credit' => :'String',
116
116
  :'withheld_tiers' => :'Array<String>',
117
117
  :'withheld_columns' => :'Array<String>',
118
- :'freshness' => :'BiomarkerCdxAssertionsResponseFreshness',
119
- :'build' => :'BiomarkerCdxAssertionsResponseBuild',
118
+ :'freshness' => :'BiomarkerAssayEvidenceResponseFreshness',
119
+ :'build' => :'BiomarkerAssayEvidenceResponseBuild',
120
120
  :'build_state' => :'DatasetBuildState',
121
121
  :'restriction' => :'Hash<String, Object>'
122
122
  }