pharmaobservatory 0.1.6 → 0.1.7

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 (357) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +269 -4
  3. data/docs/BrandCompaniesResponse.md +58 -0
  4. data/docs/BrandCompaniesRow.md +50 -0
  5. data/docs/BrandRevenueResponse.md +58 -0
  6. data/docs/BrandRevenueRow.md +60 -0
  7. data/docs/CatalystsResponse.md +58 -0
  8. data/docs/CatalystsRow.md +90 -0
  9. data/docs/CliaCertificatesResponse.md +58 -0
  10. data/docs/CliaCertificatesRow.md +80 -0
  11. data/docs/CompaniesApi.md +1675 -117
  12. data/docs/CompaniesRecordAttributes.md +3 -1
  13. data/docs/CompanyFundingEventsRow.md +2 -0
  14. data/docs/CompanyTrialGeographyResponse.md +58 -0
  15. data/docs/CompanyTrialGeographyRow.md +52 -0
  16. data/docs/CompanyTrialSitesResponse.md +58 -0
  17. data/docs/CompanyTrialSitesRow.md +52 -0
  18. data/docs/ConditionsApi.md +320 -0
  19. data/docs/CroFootprintResponse.md +58 -0
  20. data/docs/CroFootprintRow.md +34 -0
  21. data/docs/CroTrialsResponse.md +58 -0
  22. data/docs/CroTrialsRow.md +46 -0
  23. data/docs/DebarmentsResponse.md +58 -0
  24. data/docs/DebarmentsRow.md +44 -0
  25. data/docs/DrugApprovalsResponse.md +58 -0
  26. data/docs/DrugApprovalsRow.md +28 -0
  27. data/docs/DrugAspCodesResponse.md +58 -0
  28. data/docs/DrugAspCodesRow.md +28 -0
  29. data/docs/DrugBrandsResponse.md +58 -0
  30. data/docs/DrugBrandsRow.md +60 -0
  31. data/docs/DrugCombinationsResponse.md +58 -0
  32. data/docs/DrugCombinationsRow.md +32 -0
  33. data/docs/DrugDeclaredPatentsResponse.md +58 -0
  34. data/docs/DrugDeclaredPatentsRow.md +58 -0
  35. data/docs/DrugLabelSafetyResponse.md +58 -0
  36. data/docs/DrugLabelSafetyRow.md +32 -0
  37. data/docs/DrugMedicareSpendResponse.md +58 -0
  38. data/docs/DrugMedicareSpendRow.md +28 -0
  39. data/docs/DrugPatentCliffRow.md +3 -1
  40. data/docs/DrugPatentMentionsResponse.md +58 -0
  41. data/docs/DrugPatentMentionsRow.md +28 -0
  42. data/docs/DrugPatentOwnersResponse.md +58 -0
  43. data/docs/DrugPatentOwnersRow.md +42 -0
  44. data/docs/DrugPricingResponse.md +58 -0
  45. data/docs/DrugPricingRow.md +32 -0
  46. data/docs/DrugRecallsResponse.md +58 -0
  47. data/docs/DrugRecallsRow.md +34 -0
  48. data/docs/DrugRegulatoryResponse.md +58 -0
  49. data/docs/DrugRegulatoryRow.md +38 -0
  50. data/docs/DrugSitesResponse.md +58 -0
  51. data/docs/DrugSitesRow.md +28 -0
  52. data/docs/DrugTargetsResponse.md +58 -0
  53. data/docs/DrugTargetsRow.md +36 -0
  54. data/docs/DrugTrialConditionsResponse.md +58 -0
  55. data/docs/DrugTrialConditionsRow.md +30 -0
  56. data/docs/DrugTrialsResponse.md +58 -0
  57. data/docs/DrugTrialsRow.md +58 -0
  58. data/docs/DrugVariantsResponse.md +58 -0
  59. data/docs/DrugVariantsRow.md +38 -0
  60. data/docs/DrugsApi.md +2153 -0
  61. data/docs/DrugsRecord.md +38 -0
  62. data/docs/DrugsRecordAttributes.md +20 -0
  63. data/docs/DrugsResponse.md +58 -0
  64. data/docs/DrugsRow.md +82 -0
  65. data/docs/EnforcementEventsResponse.md +58 -0
  66. data/docs/EnforcementEventsRow.md +64 -0
  67. data/docs/GxpFacilitiesResponse.md +58 -0
  68. data/docs/GxpFacilitiesRow.md +152 -0
  69. data/docs/HospitalBedsYearlyResponse.md +58 -0
  70. data/docs/HospitalBedsYearlyRow.md +28 -0
  71. data/docs/HospitalFacilityChangesResponse.md +58 -0
  72. data/docs/HospitalFacilityChangesRow.md +30 -0
  73. data/docs/HospitalsApi.md +393 -0
  74. data/docs/HospitalsRecord.md +38 -0
  75. data/docs/HospitalsResponse.md +58 -0
  76. data/docs/HospitalsRow.md +40 -0
  77. data/docs/ImportRefusalsResponse.md +58 -0
  78. data/docs/ImportRefusalsRow.md +60 -0
  79. data/docs/InspectionFindingsResponse.md +58 -0
  80. data/docs/InspectionFindingsRow.md +48 -0
  81. data/docs/InspectionsResponse.md +58 -0
  82. data/docs/InspectionsRow.md +60 -0
  83. data/docs/InstitutionalQuarterTotalsResponse.md +58 -0
  84. data/docs/InstitutionalQuarterTotalsRow.md +58 -0
  85. data/docs/LegalEntitiesApi.md +1379 -179
  86. data/docs/LegalEntitiesRecordAttributes.md +2 -0
  87. data/docs/OrgRelationshipsRow.md +1 -1
  88. data/docs/OwnershipPercentagesResponse.md +58 -0
  89. data/docs/OwnershipPercentagesRow.md +74 -0
  90. data/docs/PdufaDatesRow.md +1 -1
  91. data/docs/ProgramLicensingCandidatesResponse.md +58 -0
  92. data/docs/ProgramLicensingCandidatesRow.md +58 -0
  93. data/docs/ProgramsResponse.md +58 -0
  94. data/docs/ProgramsRow.md +46 -0
  95. data/docs/RareDiseaseGenesResponse.md +58 -0
  96. data/docs/RareDiseaseGenesRow.md +50 -0
  97. data/docs/RareDiseaseHierarchyResponse.md +58 -0
  98. data/docs/RareDiseaseHierarchyRow.md +40 -0
  99. data/docs/RareDiseaseInvestigatorCoverageResponse.md +58 -0
  100. data/docs/RareDiseaseInvestigatorCoverageRow.md +38 -0
  101. data/docs/RareDiseaseInvestigatorsResponse.md +58 -0
  102. data/docs/RareDiseaseInvestigatorsRow.md +56 -0
  103. data/docs/RareDiseaseMappingsResponse.md +58 -0
  104. data/docs/RareDiseaseMappingsRow.md +44 -0
  105. data/docs/RareDiseaseOrganizationsResponse.md +58 -0
  106. data/docs/RareDiseaseOrganizationsRow.md +60 -0
  107. data/docs/RareDiseasePrevalenceResponse.md +58 -0
  108. data/docs/RareDiseasePrevalenceRow.md +62 -0
  109. data/docs/RareDiseaseRarityEvidenceResponse.md +58 -0
  110. data/docs/RareDiseaseRarityEvidenceRow.md +36 -0
  111. data/docs/RareDiseaseRarityResponse.md +58 -0
  112. data/docs/RareDiseaseRarityRow.md +54 -0
  113. data/docs/RareDiseaseReplacementsResponse.md +58 -0
  114. data/docs/RareDiseaseReplacementsRow.md +40 -0
  115. data/docs/RareDiseaseSiteCoverageResponse.md +58 -0
  116. data/docs/RareDiseaseSiteCoverageRow.md +54 -0
  117. data/docs/RareDiseaseSponsorsResponse.md +58 -0
  118. data/docs/RareDiseaseSponsorsRow.md +82 -0
  119. data/docs/RareDiseaseTrialCoverageResponse.md +58 -0
  120. data/docs/RareDiseaseTrialCoverageRow.md +58 -0
  121. data/docs/RareDiseaseTrialSitesResponse.md +58 -0
  122. data/docs/RareDiseaseTrialSitesRow.md +52 -0
  123. data/docs/RareDiseaseTrialsResponse.md +58 -0
  124. data/docs/RareDiseaseTrialsRow.md +90 -0
  125. data/docs/RareDiseasesApi.md +1353 -0
  126. data/docs/RareDiseasesRecord.md +38 -0
  127. data/docs/RareDiseasesRecordAttributes.md +22 -0
  128. data/docs/RareDiseasesResponse.md +58 -0
  129. data/docs/RareDiseasesRow.md +68 -0
  130. data/docs/RecallsResponse.md +58 -0
  131. data/docs/RecallsRow.md +54 -0
  132. data/docs/RwdCoverageResponse.md +58 -0
  133. data/docs/RwdCoverageRow.md +52 -0
  134. data/docs/RwdRegisterProvenanceResponse.md +58 -0
  135. data/docs/RwdRegisterProvenanceRow.md +74 -0
  136. data/docs/RwdRegistersApi.md +313 -0
  137. data/docs/RwdRegistersRecord.md +38 -0
  138. data/docs/RwdSourceAgeBandsResponse.md +58 -0
  139. data/docs/RwdSourceAgeBandsRow.md +40 -0
  140. data/docs/RwdSourceConditionsResponse.md +58 -0
  141. data/docs/RwdSourceConditionsRow.md +68 -0
  142. data/docs/RwdSourceEtlMappingsResponse.md +58 -0
  143. data/docs/RwdSourceEtlMappingsRow.md +44 -0
  144. data/docs/RwdSourceLinkagesResponse.md +58 -0
  145. data/docs/RwdSourceLinkagesRow.md +64 -0
  146. data/docs/RwdSourceTypesResponse.md +58 -0
  147. data/docs/RwdSourceTypesRow.md +34 -0
  148. data/docs/RwdSourceVocabulariesResponse.md +58 -0
  149. data/docs/RwdSourceVocabulariesRow.md +42 -0
  150. data/docs/RwdSourcesApi.md +713 -0
  151. data/docs/RwdSourcesRecord.md +38 -0
  152. data/docs/RwdSourcesResponse.md +58 -0
  153. data/docs/RwdSourcesRow.md +280 -0
  154. data/docs/RwdStudiesApi.md +473 -0
  155. data/docs/RwdStudiesRecord.md +38 -0
  156. data/docs/RwdStudiesResponse.md +58 -0
  157. data/docs/RwdStudiesRow.md +180 -0
  158. data/docs/RwdStudyConditionsResponse.md +58 -0
  159. data/docs/RwdStudyConditionsRow.md +54 -0
  160. data/docs/RwdStudyDataSourcesResponse.md +58 -0
  161. data/docs/RwdStudyDataSourcesRow.md +54 -0
  162. data/docs/RwdStudyDrugsResponse.md +58 -0
  163. data/docs/RwdStudyDrugsRow.md +50 -0
  164. data/docs/RwdStudyMilestonesResponse.md +58 -0
  165. data/docs/RwdStudyMilestonesRow.md +54 -0
  166. data/docs/RwdWithheldFieldsResponse.md +58 -0
  167. data/docs/RwdWithheldFieldsRow.md +36 -0
  168. data/docs/SecPdufaDatesResponse.md +58 -0
  169. data/docs/SecPdufaDatesRow.md +64 -0
  170. data/docs/TrialChangesRow.md +5 -1
  171. data/docs/TrialsApi.md +80 -0
  172. data/docs/TrialsRow.md +9 -1
  173. data/docs/UnmatchedProductRevenueResponse.md +58 -0
  174. data/docs/UnmatchedProductRevenueRow.md +80 -0
  175. data/docs/UntitledLettersResponse.md +58 -0
  176. data/docs/UntitledLettersRow.md +44 -0
  177. data/docs/WarningLettersResponse.md +58 -0
  178. data/docs/WarningLettersRow.md +50 -0
  179. data/lib/pharmaobservatory/api/companies_api.rb +1936 -207
  180. data/lib/pharmaobservatory/api/conditions_api.rb +336 -0
  181. data/lib/pharmaobservatory/api/drugs_api.rb +2261 -0
  182. data/lib/pharmaobservatory/api/hospitals_api.rb +413 -0
  183. data/lib/pharmaobservatory/api/legal_entities_api.rb +1442 -182
  184. data/lib/pharmaobservatory/api/rare_diseases_api.rb +1421 -0
  185. data/lib/pharmaobservatory/api/rwd_registers_api.rb +329 -0
  186. data/lib/pharmaobservatory/api/rwd_sources_api.rb +749 -0
  187. data/lib/pharmaobservatory/api/rwd_studies_api.rb +497 -0
  188. data/lib/pharmaobservatory/api/trials_api.rb +84 -0
  189. data/lib/pharmaobservatory/models/brand_companies_response.rb +478 -0
  190. data/lib/pharmaobservatory/models/brand_companies_row.rb +401 -0
  191. data/lib/pharmaobservatory/models/brand_revenue_response.rb +478 -0
  192. data/lib/pharmaobservatory/models/brand_revenue_row.rb +454 -0
  193. data/lib/pharmaobservatory/models/catalysts_response.rb +478 -0
  194. data/lib/pharmaobservatory/models/catalysts_row.rb +623 -0
  195. data/lib/pharmaobservatory/models/clia_certificates_response.rb +478 -0
  196. data/lib/pharmaobservatory/models/clia_certificates_row.rb +568 -0
  197. data/lib/pharmaobservatory/models/companies_record_attributes.rb +13 -4
  198. data/lib/pharmaobservatory/models/company_funding_events_row.rb +12 -1
  199. data/lib/pharmaobservatory/models/company_trial_geography_response.rb +478 -0
  200. data/lib/pharmaobservatory/models/company_trial_geography_row.rb +410 -0
  201. data/lib/pharmaobservatory/models/company_trial_sites_response.rb +478 -0
  202. data/lib/pharmaobservatory/models/company_trial_sites_row.rb +410 -0
  203. data/lib/pharmaobservatory/models/cro_footprint_response.rb +478 -0
  204. data/lib/pharmaobservatory/models/cro_footprint_row.rb +311 -0
  205. data/lib/pharmaobservatory/models/cro_trials_response.rb +478 -0
  206. data/lib/pharmaobservatory/models/cro_trials_row.rb +381 -0
  207. data/lib/pharmaobservatory/models/debarments_response.rb +478 -0
  208. data/lib/pharmaobservatory/models/debarments_row.rb +366 -0
  209. data/lib/pharmaobservatory/models/drug_approvals_response.rb +478 -0
  210. data/lib/pharmaobservatory/models/drug_approvals_row.rb +278 -0
  211. data/lib/pharmaobservatory/models/drug_asp_codes_response.rb +478 -0
  212. data/lib/pharmaobservatory/models/drug_asp_codes_row.rb +278 -0
  213. data/lib/pharmaobservatory/models/drug_brands_response.rb +478 -0
  214. data/lib/pharmaobservatory/models/drug_brands_row.rb +454 -0
  215. data/lib/pharmaobservatory/models/drug_combinations_response.rb +478 -0
  216. data/lib/pharmaobservatory/models/drug_combinations_row.rb +300 -0
  217. data/lib/pharmaobservatory/models/drug_declared_patents_response.rb +478 -0
  218. data/lib/pharmaobservatory/models/drug_declared_patents_row.rb +447 -0
  219. data/lib/pharmaobservatory/models/drug_label_safety_response.rb +478 -0
  220. data/lib/pharmaobservatory/models/drug_label_safety_row.rb +300 -0
  221. data/lib/pharmaobservatory/models/drug_medicare_spend_response.rb +478 -0
  222. data/lib/pharmaobservatory/models/drug_medicare_spend_row.rb +280 -0
  223. data/lib/pharmaobservatory/models/drug_patent_cliff_row.rb +13 -2
  224. data/lib/pharmaobservatory/models/drug_patent_mentions_response.rb +478 -0
  225. data/lib/pharmaobservatory/models/drug_patent_mentions_row.rb +278 -0
  226. data/lib/pharmaobservatory/models/drug_patent_owners_response.rb +478 -0
  227. data/lib/pharmaobservatory/models/drug_patent_owners_row.rb +357 -0
  228. data/lib/pharmaobservatory/models/drug_pricing_response.rb +478 -0
  229. data/lib/pharmaobservatory/models/drug_pricing_row.rb +300 -0
  230. data/lib/pharmaobservatory/models/drug_recalls_response.rb +478 -0
  231. data/lib/pharmaobservatory/models/drug_recalls_row.rb +311 -0
  232. data/lib/pharmaobservatory/models/drug_regulatory_response.rb +478 -0
  233. data/lib/pharmaobservatory/models/drug_regulatory_row.rb +333 -0
  234. data/lib/pharmaobservatory/models/drug_sites_response.rb +478 -0
  235. data/lib/pharmaobservatory/models/drug_sites_row.rb +278 -0
  236. data/lib/pharmaobservatory/models/drug_targets_response.rb +478 -0
  237. data/lib/pharmaobservatory/models/drug_targets_row.rb +324 -0
  238. data/lib/pharmaobservatory/models/drug_trial_conditions_response.rb +478 -0
  239. data/lib/pharmaobservatory/models/drug_trial_conditions_row.rb +289 -0
  240. data/lib/pharmaobservatory/models/drug_trials_response.rb +478 -0
  241. data/lib/pharmaobservatory/models/drug_trials_row.rb +445 -0
  242. data/lib/pharmaobservatory/models/drug_variants_response.rb +478 -0
  243. data/lib/pharmaobservatory/models/drug_variants_row.rb +333 -0
  244. data/lib/pharmaobservatory/models/drugs_record.rb +385 -0
  245. data/lib/pharmaobservatory/models/drugs_record_attributes.rb +229 -0
  246. data/lib/pharmaobservatory/models/drugs_response.rb +478 -0
  247. data/lib/pharmaobservatory/models/drugs_row.rb +581 -0
  248. data/lib/pharmaobservatory/models/enforcement_events_response.rb +478 -0
  249. data/lib/pharmaobservatory/models/enforcement_events_row.rb +476 -0
  250. data/lib/pharmaobservatory/models/gxp_facilities_response.rb +478 -0
  251. data/lib/pharmaobservatory/models/gxp_facilities_row.rb +968 -0
  252. data/lib/pharmaobservatory/models/hospital_beds_yearly_response.rb +478 -0
  253. data/lib/pharmaobservatory/models/hospital_beds_yearly_row.rb +278 -0
  254. data/lib/pharmaobservatory/models/hospital_facility_changes_response.rb +478 -0
  255. data/lib/pharmaobservatory/models/hospital_facility_changes_row.rb +289 -0
  256. data/lib/pharmaobservatory/models/hospitals_record.rb +385 -0
  257. data/lib/pharmaobservatory/models/hospitals_response.rb +478 -0
  258. data/lib/pharmaobservatory/models/hospitals_row.rb +344 -0
  259. data/lib/pharmaobservatory/models/import_refusals_response.rb +478 -0
  260. data/lib/pharmaobservatory/models/import_refusals_row.rb +454 -0
  261. data/lib/pharmaobservatory/models/inspection_findings_response.rb +478 -0
  262. data/lib/pharmaobservatory/models/inspection_findings_row.rb +388 -0
  263. data/lib/pharmaobservatory/models/inspections_response.rb +478 -0
  264. data/lib/pharmaobservatory/models/inspections_row.rb +454 -0
  265. data/lib/pharmaobservatory/models/institutional_quarter_totals_response.rb +478 -0
  266. data/lib/pharmaobservatory/models/institutional_quarter_totals_row.rb +443 -0
  267. data/lib/pharmaobservatory/models/legal_entities_record_attributes.rb +10 -1
  268. data/lib/pharmaobservatory/models/org_relationships_row.rb +1 -1
  269. data/lib/pharmaobservatory/models/ownership_percentages_response.rb +478 -0
  270. data/lib/pharmaobservatory/models/ownership_percentages_row.rb +531 -0
  271. data/lib/pharmaobservatory/models/pdufa_dates_row.rb +1 -1
  272. data/lib/pharmaobservatory/models/program_licensing_candidates_response.rb +478 -0
  273. data/lib/pharmaobservatory/models/program_licensing_candidates_row.rb +445 -0
  274. data/lib/pharmaobservatory/models/programs_response.rb +478 -0
  275. data/lib/pharmaobservatory/models/programs_row.rb +377 -0
  276. data/lib/pharmaobservatory/models/rare_disease_genes_response.rb +478 -0
  277. data/lib/pharmaobservatory/models/rare_disease_genes_row.rb +399 -0
  278. data/lib/pharmaobservatory/models/rare_disease_hierarchy_response.rb +478 -0
  279. data/lib/pharmaobservatory/models/rare_disease_hierarchy_row.rb +344 -0
  280. data/lib/pharmaobservatory/models/rare_disease_investigator_coverage_response.rb +478 -0
  281. data/lib/pharmaobservatory/models/rare_disease_investigator_coverage_row.rb +333 -0
  282. data/lib/pharmaobservatory/models/rare_disease_investigators_response.rb +478 -0
  283. data/lib/pharmaobservatory/models/rare_disease_investigators_row.rb +436 -0
  284. data/lib/pharmaobservatory/models/rare_disease_mappings_response.rb +478 -0
  285. data/lib/pharmaobservatory/models/rare_disease_mappings_row.rb +366 -0
  286. data/lib/pharmaobservatory/models/rare_disease_organizations_response.rb +478 -0
  287. data/lib/pharmaobservatory/models/rare_disease_organizations_row.rb +454 -0
  288. data/lib/pharmaobservatory/models/rare_disease_prevalence_response.rb +478 -0
  289. data/lib/pharmaobservatory/models/rare_disease_prevalence_row.rb +465 -0
  290. data/lib/pharmaobservatory/models/rare_disease_rarity_evidence_response.rb +478 -0
  291. data/lib/pharmaobservatory/models/rare_disease_rarity_evidence_row.rb +322 -0
  292. data/lib/pharmaobservatory/models/rare_disease_rarity_response.rb +478 -0
  293. data/lib/pharmaobservatory/models/rare_disease_rarity_row.rb +421 -0
  294. data/lib/pharmaobservatory/models/rare_disease_replacements_response.rb +478 -0
  295. data/lib/pharmaobservatory/models/rare_disease_replacements_row.rb +344 -0
  296. data/lib/pharmaobservatory/models/rare_disease_site_coverage_response.rb +478 -0
  297. data/lib/pharmaobservatory/models/rare_disease_site_coverage_row.rb +421 -0
  298. data/lib/pharmaobservatory/models/rare_disease_sponsors_response.rb +478 -0
  299. data/lib/pharmaobservatory/models/rare_disease_sponsors_row.rb +575 -0
  300. data/lib/pharmaobservatory/models/rare_disease_trial_coverage_response.rb +478 -0
  301. data/lib/pharmaobservatory/models/rare_disease_trial_coverage_row.rb +449 -0
  302. data/lib/pharmaobservatory/models/rare_disease_trial_sites_response.rb +478 -0
  303. data/lib/pharmaobservatory/models/rare_disease_trial_sites_row.rb +412 -0
  304. data/lib/pharmaobservatory/models/rare_disease_trials_response.rb +478 -0
  305. data/lib/pharmaobservatory/models/rare_disease_trials_row.rb +623 -0
  306. data/lib/pharmaobservatory/models/rare_diseases_record.rb +385 -0
  307. data/lib/pharmaobservatory/models/rare_diseases_record_attributes.rb +238 -0
  308. data/lib/pharmaobservatory/models/rare_diseases_response.rb +478 -0
  309. data/lib/pharmaobservatory/models/rare_diseases_row.rb +500 -0
  310. data/lib/pharmaobservatory/models/recalls_response.rb +478 -0
  311. data/lib/pharmaobservatory/models/recalls_row.rb +421 -0
  312. data/lib/pharmaobservatory/models/rwd_coverage_response.rb +478 -0
  313. data/lib/pharmaobservatory/models/rwd_coverage_row.rb +410 -0
  314. data/lib/pharmaobservatory/models/rwd_register_provenance_response.rb +478 -0
  315. data/lib/pharmaobservatory/models/rwd_register_provenance_row.rb +531 -0
  316. data/lib/pharmaobservatory/models/rwd_registers_record.rb +385 -0
  317. data/lib/pharmaobservatory/models/rwd_source_age_bands_response.rb +478 -0
  318. data/lib/pharmaobservatory/models/rwd_source_age_bands_row.rb +344 -0
  319. data/lib/pharmaobservatory/models/rwd_source_conditions_response.rb +478 -0
  320. data/lib/pharmaobservatory/models/rwd_source_conditions_row.rb +502 -0
  321. data/lib/pharmaobservatory/models/rwd_source_etl_mappings_response.rb +478 -0
  322. data/lib/pharmaobservatory/models/rwd_source_etl_mappings_row.rb +366 -0
  323. data/lib/pharmaobservatory/models/rwd_source_linkages_response.rb +478 -0
  324. data/lib/pharmaobservatory/models/rwd_source_linkages_row.rb +476 -0
  325. data/lib/pharmaobservatory/models/rwd_source_types_response.rb +478 -0
  326. data/lib/pharmaobservatory/models/rwd_source_types_row.rb +311 -0
  327. data/lib/pharmaobservatory/models/rwd_source_vocabularies_response.rb +478 -0
  328. data/lib/pharmaobservatory/models/rwd_source_vocabularies_row.rb +355 -0
  329. data/lib/pharmaobservatory/models/rwd_sources_record.rb +385 -0
  330. data/lib/pharmaobservatory/models/rwd_sources_response.rb +478 -0
  331. data/lib/pharmaobservatory/models/rwd_sources_row.rb +1674 -0
  332. data/lib/pharmaobservatory/models/rwd_studies_record.rb +385 -0
  333. data/lib/pharmaobservatory/models/rwd_studies_response.rb +478 -0
  334. data/lib/pharmaobservatory/models/rwd_studies_row.rb +1138 -0
  335. data/lib/pharmaobservatory/models/rwd_study_conditions_response.rb +478 -0
  336. data/lib/pharmaobservatory/models/rwd_study_conditions_row.rb +421 -0
  337. data/lib/pharmaobservatory/models/rwd_study_data_sources_response.rb +478 -0
  338. data/lib/pharmaobservatory/models/rwd_study_data_sources_row.rb +423 -0
  339. data/lib/pharmaobservatory/models/rwd_study_drugs_response.rb +478 -0
  340. data/lib/pharmaobservatory/models/rwd_study_drugs_row.rb +401 -0
  341. data/lib/pharmaobservatory/models/rwd_study_milestones_response.rb +478 -0
  342. data/lib/pharmaobservatory/models/rwd_study_milestones_row.rb +421 -0
  343. data/lib/pharmaobservatory/models/rwd_withheld_fields_response.rb +478 -0
  344. data/lib/pharmaobservatory/models/rwd_withheld_fields_row.rb +322 -0
  345. data/lib/pharmaobservatory/models/sec_pdufa_dates_response.rb +478 -0
  346. data/lib/pharmaobservatory/models/sec_pdufa_dates_row.rb +476 -0
  347. data/lib/pharmaobservatory/models/trial_changes_row.rb +24 -2
  348. data/lib/pharmaobservatory/models/trials_row.rb +47 -3
  349. data/lib/pharmaobservatory/models/unmatched_product_revenue_response.rb +478 -0
  350. data/lib/pharmaobservatory/models/unmatched_product_revenue_row.rb +564 -0
  351. data/lib/pharmaobservatory/models/untitled_letters_response.rb +478 -0
  352. data/lib/pharmaobservatory/models/untitled_letters_row.rb +366 -0
  353. data/lib/pharmaobservatory/models/warning_letters_response.rb +478 -0
  354. data/lib/pharmaobservatory/models/warning_letters_row.rb +399 -0
  355. data/lib/pharmaobservatory/version.rb +1 -1
  356. data/lib/pharmaobservatory.rb +164 -0
  357. metadata +330 -2
@@ -0,0 +1,333 @@
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 drug_variants dataset: one row per molecule and folded member record. A grouped request returns the group columns and the measures instead, as additional properties.
18
+ class DrugVariantsRow
19
+ # The molecule key: the resolved drug a brand, a salt form or an investigational arm resolves to, and the entry key for the drugs object type. A member id (a salt or a folded trial arm) is not a value here; it redirects to its molecule.
20
+ attr_accessor :molecule_id
21
+
22
+ # The id of the folded drug record: the drug_id other datasets carry.
23
+ attr_accessor :member_id
24
+
25
+ # The folded record's display name.
26
+ attr_accessor :member_name
27
+
28
+ # single for a one-to-one fold; component_of_compound for a combination arm listing the molecule.
29
+ attr_accessor :role
30
+
31
+ # How the fold was made (for example rxnorm_synonym, unii_synonym, brand, override, registered_substance).
32
+ attr_accessor :method
33
+
34
+ # The resolver tier that made the fold (1 to 4); 4 is the model backstop.
35
+ attr_accessor :tier
36
+
37
+ # The resolver's confidence for the method, from 0 to 1.
38
+ attr_accessor :confidence
39
+
40
+ # Registered trials of the member record.
41
+ attr_accessor :member_trials
42
+
43
+ # The member's highest development phase.
44
+ attr_accessor :member_max_phase
45
+
46
+ # True when the member is approved somewhere.
47
+ attr_accessor :member_approved
48
+
49
+ # True when the member is a biologic substance.
50
+ attr_accessor :member_biologic
51
+
52
+ # Attribute mapping from ruby-style variable name to JSON key.
53
+ def self.attribute_map
54
+ {
55
+ :'molecule_id' => :'molecule_id',
56
+ :'member_id' => :'member_id',
57
+ :'member_name' => :'member_name',
58
+ :'role' => :'role',
59
+ :'method' => :'method',
60
+ :'tier' => :'tier',
61
+ :'confidence' => :'confidence',
62
+ :'member_trials' => :'member_trials',
63
+ :'member_max_phase' => :'member_max_phase',
64
+ :'member_approved' => :'member_approved',
65
+ :'member_biologic' => :'member_biologic'
66
+ }
67
+ end
68
+
69
+ # Returns attribute mapping this model knows about
70
+ def self.acceptable_attribute_map
71
+ attribute_map
72
+ end
73
+
74
+ # Returns all the JSON keys this model knows about
75
+ def self.acceptable_attributes
76
+ acceptable_attribute_map.values
77
+ end
78
+
79
+ # Attribute type mapping.
80
+ def self.openapi_types
81
+ {
82
+ :'molecule_id' => :'String',
83
+ :'member_id' => :'String',
84
+ :'member_name' => :'String',
85
+ :'role' => :'String',
86
+ :'method' => :'String',
87
+ :'tier' => :'Integer',
88
+ :'confidence' => :'Float',
89
+ :'member_trials' => :'Integer',
90
+ :'member_max_phase' => :'Integer',
91
+ :'member_approved' => :'Boolean',
92
+ :'member_biologic' => :'Boolean'
93
+ }
94
+ end
95
+
96
+ # List of attributes with nullable: true
97
+ def self.openapi_nullable
98
+ Set.new([
99
+ :'molecule_id',
100
+ :'member_id',
101
+ :'member_name',
102
+ :'role',
103
+ :'method',
104
+ :'tier',
105
+ :'confidence',
106
+ :'member_trials',
107
+ :'member_max_phase',
108
+ :'member_approved',
109
+ :'member_biologic'
110
+ ])
111
+ end
112
+
113
+ # Initializes the object
114
+ # @param [Hash] attributes Model attributes in the form of hash
115
+ def initialize(attributes = {})
116
+ if (!attributes.is_a?(Hash))
117
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PharmaObservatory::DrugVariantsRow` initialize method"
118
+ end
119
+
120
+ # check to see if the attribute exists and convert string to symbol for hash key
121
+ acceptable_attribute_map = self.class.acceptable_attribute_map
122
+ attributes = attributes.each_with_object({}) { |(k, v), h|
123
+ if (!acceptable_attribute_map.key?(k.to_sym))
124
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PharmaObservatory::DrugVariantsRow`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
125
+ end
126
+ h[k.to_sym] = v
127
+ }
128
+
129
+ if attributes.key?(:'molecule_id')
130
+ self.molecule_id = attributes[:'molecule_id']
131
+ end
132
+
133
+ if attributes.key?(:'member_id')
134
+ self.member_id = attributes[:'member_id']
135
+ end
136
+
137
+ if attributes.key?(:'member_name')
138
+ self.member_name = attributes[:'member_name']
139
+ end
140
+
141
+ if attributes.key?(:'role')
142
+ self.role = attributes[:'role']
143
+ end
144
+
145
+ if attributes.key?(:'method')
146
+ self.method = attributes[:'method']
147
+ end
148
+
149
+ if attributes.key?(:'tier')
150
+ self.tier = attributes[:'tier']
151
+ end
152
+
153
+ if attributes.key?(:'confidence')
154
+ self.confidence = attributes[:'confidence']
155
+ end
156
+
157
+ if attributes.key?(:'member_trials')
158
+ self.member_trials = attributes[:'member_trials']
159
+ end
160
+
161
+ if attributes.key?(:'member_max_phase')
162
+ self.member_max_phase = attributes[:'member_max_phase']
163
+ end
164
+
165
+ if attributes.key?(:'member_approved')
166
+ self.member_approved = attributes[:'member_approved']
167
+ end
168
+
169
+ if attributes.key?(:'member_biologic')
170
+ self.member_biologic = attributes[:'member_biologic']
171
+ end
172
+ end
173
+
174
+ # Show invalid properties with the reasons. Usually used together with valid?
175
+ # @return Array for valid properties with the reasons
176
+ def list_invalid_properties
177
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
178
+ invalid_properties = Array.new
179
+ invalid_properties
180
+ end
181
+
182
+ # Check to see if the all the properties in the model are valid
183
+ # @return true if the model is valid
184
+ def valid?
185
+ warn '[DEPRECATED] the `valid?` method is obsolete'
186
+ true
187
+ end
188
+
189
+ # Checks equality by comparing each attribute.
190
+ # @param [Object] Object to be compared
191
+ def ==(o)
192
+ return true if self.equal?(o)
193
+ self.class == o.class &&
194
+ molecule_id == o.molecule_id &&
195
+ member_id == o.member_id &&
196
+ member_name == o.member_name &&
197
+ role == o.role &&
198
+ method == o.method &&
199
+ tier == o.tier &&
200
+ confidence == o.confidence &&
201
+ member_trials == o.member_trials &&
202
+ member_max_phase == o.member_max_phase &&
203
+ member_approved == o.member_approved &&
204
+ member_biologic == o.member_biologic
205
+ end
206
+
207
+ # @see the `==` method
208
+ # @param [Object] Object to be compared
209
+ def eql?(o)
210
+ self == o
211
+ end
212
+
213
+ # Calculates hash code according to all attributes.
214
+ # @return [Integer] Hash code
215
+ def hash
216
+ [molecule_id, member_id, member_name, role, method, tier, confidence, member_trials, member_max_phase, member_approved, member_biologic].hash
217
+ end
218
+
219
+ # Builds the object from hash
220
+ # @param [Hash] attributes Model attributes in the form of hash
221
+ # @return [Object] Returns the model itself
222
+ def self.build_from_hash(attributes)
223
+ return nil unless attributes.is_a?(Hash)
224
+ attributes = attributes.transform_keys(&:to_sym)
225
+ transformed_hash = {}
226
+ openapi_types.each_pair do |key, type|
227
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
228
+ transformed_hash["#{key}"] = nil
229
+ elsif type =~ /\AArray<(.*)>/i
230
+ # check to ensure the input is an array given that the attribute
231
+ # is documented as an array but the input is not
232
+ if attributes[attribute_map[key]].is_a?(Array)
233
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
234
+ end
235
+ elsif !attributes[attribute_map[key]].nil?
236
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
237
+ end
238
+ end
239
+ new(transformed_hash)
240
+ end
241
+
242
+ # Deserializes the data based on type
243
+ # @param string type Data type
244
+ # @param string value Value to be deserialized
245
+ # @return [Object] Deserialized data
246
+ def self._deserialize(type, value)
247
+ case type.to_sym
248
+ when :Time
249
+ Time.parse(value)
250
+ when :Date
251
+ Date.parse(value)
252
+ when :String
253
+ value.to_s
254
+ when :Integer
255
+ value.to_i
256
+ when :Float
257
+ value.to_f
258
+ when :Boolean
259
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
260
+ true
261
+ else
262
+ false
263
+ end
264
+ when :Object
265
+ # generic object (usually a Hash), return directly
266
+ value
267
+ when /\AArray<(?<inner_type>.+)>\z/
268
+ inner_type = Regexp.last_match[:inner_type]
269
+ value.map { |v| _deserialize(inner_type, v) }
270
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
271
+ k_type = Regexp.last_match[:k_type]
272
+ v_type = Regexp.last_match[:v_type]
273
+ {}.tap do |hash|
274
+ value.each do |k, v|
275
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
276
+ end
277
+ end
278
+ else # model
279
+ # models (e.g. Pet) or oneOf
280
+ klass = PharmaObservatory.const_get(type)
281
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
282
+ end
283
+ end
284
+
285
+ # Returns the string representation of the object
286
+ # @return [String] String presentation of the object
287
+ def to_s
288
+ to_hash.to_s
289
+ end
290
+
291
+ # to_body is an alias to to_hash (backward compatibility)
292
+ # @return [Hash] Returns the object in the form of hash
293
+ def to_body
294
+ to_hash
295
+ end
296
+
297
+ # Returns the object in the form of hash
298
+ # @return [Hash] Returns the object in the form of hash
299
+ def to_hash
300
+ hash = {}
301
+ self.class.attribute_map.each_pair do |attr, param|
302
+ value = self.send(attr)
303
+ if value.nil?
304
+ is_nullable = self.class.openapi_nullable.include?(attr)
305
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
306
+ end
307
+
308
+ hash[param] = _to_hash(value)
309
+ end
310
+ hash
311
+ end
312
+
313
+ # Outputs non-array value in the form of hash
314
+ # For object, use to_hash. Otherwise, just return the value
315
+ # @param [Object] value Any valid value
316
+ # @return [Hash] Returns the value in the form of hash
317
+ def _to_hash(value)
318
+ if value.is_a?(Array)
319
+ value.compact.map { |v| _to_hash(v) }
320
+ elsif value.is_a?(Hash)
321
+ {}.tap do |hash|
322
+ value.each { |k, v| hash[k] = _to_hash(v) }
323
+ end
324
+ elsif value.respond_to? :to_hash
325
+ value.to_hash
326
+ else
327
+ value
328
+ end
329
+ end
330
+
331
+ end
332
+
333
+ end
@@ -0,0 +1,385 @@
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
+ class DrugsRecord
18
+ attr_accessor :object_type
19
+
20
+ attr_accessor :id
21
+
22
+ attr_accessor :record
23
+
24
+ attr_accessor :attributes
25
+
26
+ attr_accessor :datasets
27
+
28
+ attr_accessor :attribution
29
+
30
+ attr_accessor :source_credit
31
+
32
+ attr_accessor :freshness
33
+
34
+ attr_accessor :build
35
+
36
+ attr_accessor :build_state
37
+
38
+ attr_accessor :restriction
39
+
40
+ # Attribute mapping from ruby-style variable name to JSON key.
41
+ def self.attribute_map
42
+ {
43
+ :'object_type' => :'object_type',
44
+ :'id' => :'id',
45
+ :'record' => :'record',
46
+ :'attributes' => :'attributes',
47
+ :'datasets' => :'datasets',
48
+ :'attribution' => :'attribution',
49
+ :'source_credit' => :'source_credit',
50
+ :'freshness' => :'freshness',
51
+ :'build' => :'build',
52
+ :'build_state' => :'build_state',
53
+ :'restriction' => :'restriction'
54
+ }
55
+ end
56
+
57
+ # Returns attribute mapping this model knows about
58
+ def self.acceptable_attribute_map
59
+ attribute_map
60
+ end
61
+
62
+ # Returns all the JSON keys this model knows about
63
+ def self.acceptable_attributes
64
+ acceptable_attribute_map.values
65
+ end
66
+
67
+ # Attribute type mapping.
68
+ def self.openapi_types
69
+ {
70
+ :'object_type' => :'String',
71
+ :'id' => :'String',
72
+ :'record' => :'DrugsRow',
73
+ :'attributes' => :'DrugsRecordAttributes',
74
+ :'datasets' => :'Array<DatasetListing>',
75
+ :'attribution' => :'Array<DatasetAttribution>',
76
+ :'source_credit' => :'String',
77
+ :'freshness' => :'BiomarkerAssayEvidenceResponseFreshness',
78
+ :'build' => :'BiomarkerAssayEvidenceResponseBuild',
79
+ :'build_state' => :'DatasetBuildState',
80
+ :'restriction' => :'Hash<String, Object>'
81
+ }
82
+ end
83
+
84
+ # List of attributes with nullable: true
85
+ def self.openapi_nullable
86
+ Set.new([
87
+ :'restriction'
88
+ ])
89
+ end
90
+
91
+ # Initializes the object
92
+ # @param [Hash] attributes Model attributes in the form of hash
93
+ def initialize(attributes = {})
94
+ if (!attributes.is_a?(Hash))
95
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PharmaObservatory::DrugsRecord` initialize method"
96
+ end
97
+
98
+ # check to see if the attribute exists and convert string to symbol for hash key
99
+ acceptable_attribute_map = self.class.acceptable_attribute_map
100
+ attributes = attributes.each_with_object({}) { |(k, v), h|
101
+ if (!acceptable_attribute_map.key?(k.to_sym))
102
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PharmaObservatory::DrugsRecord`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
103
+ end
104
+ h[k.to_sym] = v
105
+ }
106
+
107
+ if attributes.key?(:'object_type')
108
+ self.object_type = attributes[:'object_type']
109
+ else
110
+ self.object_type = nil
111
+ end
112
+
113
+ if attributes.key?(:'id')
114
+ self.id = attributes[:'id']
115
+ else
116
+ self.id = nil
117
+ end
118
+
119
+ if attributes.key?(:'record')
120
+ self.record = attributes[:'record']
121
+ else
122
+ self.record = nil
123
+ end
124
+
125
+ if attributes.key?(:'attributes')
126
+ self.attributes = attributes[:'attributes']
127
+ end
128
+
129
+ if attributes.key?(:'datasets')
130
+ if (value = attributes[:'datasets']).is_a?(Array)
131
+ self.datasets = value
132
+ end
133
+ else
134
+ self.datasets = nil
135
+ end
136
+
137
+ if attributes.key?(:'attribution')
138
+ if (value = attributes[:'attribution']).is_a?(Array)
139
+ self.attribution = value
140
+ end
141
+ end
142
+
143
+ if attributes.key?(:'source_credit')
144
+ self.source_credit = attributes[:'source_credit']
145
+ end
146
+
147
+ if attributes.key?(:'freshness')
148
+ self.freshness = attributes[:'freshness']
149
+ end
150
+
151
+ if attributes.key?(:'build')
152
+ self.build = attributes[:'build']
153
+ end
154
+
155
+ if attributes.key?(:'build_state')
156
+ self.build_state = attributes[:'build_state']
157
+ end
158
+
159
+ if attributes.key?(:'restriction')
160
+ if (value = attributes[:'restriction']).is_a?(Hash)
161
+ self.restriction = value
162
+ end
163
+ end
164
+ end
165
+
166
+ # Show invalid properties with the reasons. Usually used together with valid?
167
+ # @return Array for valid properties with the reasons
168
+ def list_invalid_properties
169
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
170
+ invalid_properties = Array.new
171
+ if @object_type.nil?
172
+ invalid_properties.push('invalid value for "object_type", object_type cannot be nil.')
173
+ end
174
+
175
+ if @id.nil?
176
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
177
+ end
178
+
179
+ if @record.nil?
180
+ invalid_properties.push('invalid value for "record", record cannot be nil.')
181
+ end
182
+
183
+ if @datasets.nil?
184
+ invalid_properties.push('invalid value for "datasets", datasets cannot be nil.')
185
+ end
186
+
187
+ invalid_properties
188
+ end
189
+
190
+ # Check to see if the all the properties in the model are valid
191
+ # @return true if the model is valid
192
+ def valid?
193
+ warn '[DEPRECATED] the `valid?` method is obsolete'
194
+ return false if @object_type.nil?
195
+ return false if @id.nil?
196
+ return false if @record.nil?
197
+ return false if @datasets.nil?
198
+ true
199
+ end
200
+
201
+ # Custom attribute writer method with validation
202
+ # @param [Object] object_type Value to be assigned
203
+ def object_type=(object_type)
204
+ if object_type.nil?
205
+ fail ArgumentError, 'object_type cannot be nil'
206
+ end
207
+
208
+ @object_type = object_type
209
+ end
210
+
211
+ # Custom attribute writer method with validation
212
+ # @param [Object] id Value to be assigned
213
+ def id=(id)
214
+ if id.nil?
215
+ fail ArgumentError, 'id cannot be nil'
216
+ end
217
+
218
+ @id = id
219
+ end
220
+
221
+ # Custom attribute writer method with validation
222
+ # @param [Object] record Value to be assigned
223
+ def record=(record)
224
+ if record.nil?
225
+ fail ArgumentError, 'record cannot be nil'
226
+ end
227
+
228
+ @record = record
229
+ end
230
+
231
+ # Custom attribute writer method with validation
232
+ # @param [Object] datasets Value to be assigned
233
+ def datasets=(datasets)
234
+ if datasets.nil?
235
+ fail ArgumentError, 'datasets cannot be nil'
236
+ end
237
+
238
+ @datasets = datasets
239
+ end
240
+
241
+ # Checks equality by comparing each attribute.
242
+ # @param [Object] Object to be compared
243
+ def ==(o)
244
+ return true if self.equal?(o)
245
+ self.class == o.class &&
246
+ object_type == o.object_type &&
247
+ id == o.id &&
248
+ record == o.record &&
249
+ attributes == o.attributes &&
250
+ datasets == o.datasets &&
251
+ attribution == o.attribution &&
252
+ source_credit == o.source_credit &&
253
+ freshness == o.freshness &&
254
+ build == o.build &&
255
+ build_state == o.build_state &&
256
+ restriction == o.restriction
257
+ end
258
+
259
+ # @see the `==` method
260
+ # @param [Object] Object to be compared
261
+ def eql?(o)
262
+ self == o
263
+ end
264
+
265
+ # Calculates hash code according to all attributes.
266
+ # @return [Integer] Hash code
267
+ def hash
268
+ [object_type, id, record, attributes, datasets, attribution, source_credit, freshness, build, build_state, restriction].hash
269
+ end
270
+
271
+ # Builds the object from hash
272
+ # @param [Hash] attributes Model attributes in the form of hash
273
+ # @return [Object] Returns the model itself
274
+ def self.build_from_hash(attributes)
275
+ return nil unless attributes.is_a?(Hash)
276
+ attributes = attributes.transform_keys(&:to_sym)
277
+ transformed_hash = {}
278
+ openapi_types.each_pair do |key, type|
279
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
280
+ transformed_hash["#{key}"] = nil
281
+ elsif type =~ /\AArray<(.*)>/i
282
+ # check to ensure the input is an array given that the attribute
283
+ # is documented as an array but the input is not
284
+ if attributes[attribute_map[key]].is_a?(Array)
285
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
286
+ end
287
+ elsif !attributes[attribute_map[key]].nil?
288
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
289
+ end
290
+ end
291
+ new(transformed_hash)
292
+ end
293
+
294
+ # Deserializes the data based on type
295
+ # @param string type Data type
296
+ # @param string value Value to be deserialized
297
+ # @return [Object] Deserialized data
298
+ def self._deserialize(type, value)
299
+ case type.to_sym
300
+ when :Time
301
+ Time.parse(value)
302
+ when :Date
303
+ Date.parse(value)
304
+ when :String
305
+ value.to_s
306
+ when :Integer
307
+ value.to_i
308
+ when :Float
309
+ value.to_f
310
+ when :Boolean
311
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
312
+ true
313
+ else
314
+ false
315
+ end
316
+ when :Object
317
+ # generic object (usually a Hash), return directly
318
+ value
319
+ when /\AArray<(?<inner_type>.+)>\z/
320
+ inner_type = Regexp.last_match[:inner_type]
321
+ value.map { |v| _deserialize(inner_type, v) }
322
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
323
+ k_type = Regexp.last_match[:k_type]
324
+ v_type = Regexp.last_match[:v_type]
325
+ {}.tap do |hash|
326
+ value.each do |k, v|
327
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
328
+ end
329
+ end
330
+ else # model
331
+ # models (e.g. Pet) or oneOf
332
+ klass = PharmaObservatory.const_get(type)
333
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
334
+ end
335
+ end
336
+
337
+ # Returns the string representation of the object
338
+ # @return [String] String presentation of the object
339
+ def to_s
340
+ to_hash.to_s
341
+ end
342
+
343
+ # to_body is an alias to to_hash (backward compatibility)
344
+ # @return [Hash] Returns the object in the form of hash
345
+ def to_body
346
+ to_hash
347
+ end
348
+
349
+ # Returns the object in the form of hash
350
+ # @return [Hash] Returns the object in the form of hash
351
+ def to_hash
352
+ hash = {}
353
+ self.class.attribute_map.each_pair do |attr, param|
354
+ value = self.send(attr)
355
+ if value.nil?
356
+ is_nullable = self.class.openapi_nullable.include?(attr)
357
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
358
+ end
359
+
360
+ hash[param] = _to_hash(value)
361
+ end
362
+ hash
363
+ end
364
+
365
+ # Outputs non-array value in the form of hash
366
+ # For object, use to_hash. Otherwise, just return the value
367
+ # @param [Object] value Any valid value
368
+ # @return [Hash] Returns the value in the form of hash
369
+ def _to_hash(value)
370
+ if value.is_a?(Array)
371
+ value.compact.map { |v| _to_hash(v) }
372
+ elsif value.is_a?(Hash)
373
+ {}.tap do |hash|
374
+ value.each { |k, v| hash[k] = _to_hash(v) }
375
+ end
376
+ elsif value.respond_to? :to_hash
377
+ value.to_hash
378
+ else
379
+ value
380
+ end
381
+ end
382
+
383
+ end
384
+
385
+ end