pharmaobservatory 0.1.0

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 (348) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +314 -0
  3. data/docs/ApiV1BaseApi.md +72 -0
  4. data/docs/ApiV1BiomarkerAssayScreenApi.md +87 -0
  5. data/docs/ApiV1BiomarkerAssayScreenGet200Response.md +26 -0
  6. data/docs/ApiV1BiomarkerAssayScreenGet200ResponseBuildState.md +22 -0
  7. data/docs/ApiV1BiomarkerAssayScreenGet200ResponseEvidenceInner.md +48 -0
  8. data/docs/ApiV1BiomarkerAssayScreenGet200ResponseEvidenceInnerSourceRef.md +28 -0
  9. data/docs/ApiV1BiomarkerAssayScreenGet200ResponseFilters.md +28 -0
  10. data/docs/ApiV1BiomarkerAssayWhitespaceApi.md +87 -0
  11. data/docs/ApiV1BiomarkerAssayWhitespaceGet200Response.md +76 -0
  12. data/docs/ApiV1BiomarkerAssayWhitespaceGet200ResponseBucketCounts.md +34 -0
  13. data/docs/ApiV1BiomarkerAssayWhitespaceGet200ResponseFilters.md +26 -0
  14. data/docs/ApiV1BiomarkerAssayWhitespaceGet200ResponseGenesInner.md +38 -0
  15. data/docs/ApiV1BiomarkerAssayWhitespaceGet200ResponseLiteratureEvidenceInner.md +24 -0
  16. data/docs/ApiV1BiomarkerAssayWhitespaceGet200ResponseProfileLink.md +20 -0
  17. data/docs/ApiV1BiomarkerAssayWhitespaceGet200ResponseSupplierDeclarationsInner.md +22 -0
  18. data/docs/ApiV1BiomarkerAssayWhitespaceGet200ResponseValidatedEvidenceInner.md +34 -0
  19. data/docs/ApiV1CandidateSiteApi.md +83 -0
  20. data/docs/ApiV1CandidateSitesGet200Response.md +32 -0
  21. data/docs/ApiV1CandidateSitesGet200ResponseFilters.md +22 -0
  22. data/docs/ApiV1CandidateSitesGet200ResponseSitesInner.md +46 -0
  23. data/docs/ApiV1ConditionApi.md +211 -0
  24. data/docs/ApiV1ConditionsConditionIdBurdenVsEvidenceGet200Response.md +36 -0
  25. data/docs/ApiV1ConditionsConditionIdBurdenVsEvidenceGet200ResponseRestriction.md +22 -0
  26. data/docs/ApiV1ConditionsConditionIdEvidenceFreshnessGet200Response.md +26 -0
  27. data/docs/ApiV1ConditionsConditionIdEvidenceFreshnessGet200ResponseBuildState.md +18 -0
  28. data/docs/ApiV1ConditionsConditionIdEvidenceFreshnessGet200ResponseSections.md +20 -0
  29. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200Response.md +40 -0
  30. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseActiveYearSpan.md +20 -0
  31. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponsePhaseBreakdownInner.md +20 -0
  32. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseRecruitmentRollup.md +74 -0
  33. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseRecruitmentRollupFiguresInner.md +22 -0
  34. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseRecruitmentRollupPhasesInner.md +48 -0
  35. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseRecruitmentRollupPredicted.md +24 -0
  36. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseRecruitmentRollupRealized.md +22 -0
  37. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseRecruitmentRollupStatuses.md +32 -0
  38. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseSections.md +28 -0
  39. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseSponsorsInner.md +22 -0
  40. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseTrialStartForecast.md +32 -0
  41. data/docs/ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseTrialsByYearInner.md +20 -0
  42. data/docs/ApiV1EnrollmentBenchmarkApi.md +79 -0
  43. data/docs/ApiV1EnrollmentBenchmarkGet200Response.md +28 -0
  44. data/docs/ApiV1EnrollmentBenchmarkGet200ResponseBenchmark.md +42 -0
  45. data/docs/ApiV1EnrollmentBenchmarkGet200ResponseBenchmarkAccrualRatePerSiteMonth.md +26 -0
  46. data/docs/ApiV1EnrollmentBenchmarkGet200ResponseBenchmarkConfidence.md +24 -0
  47. data/docs/ApiV1EnrollmentBenchmarkGet200ResponseBenchmarkEnrollment.md +22 -0
  48. data/docs/ApiV1EnrollmentBenchmarkGet200ResponseBenchmarkTypicalDurationMonths.md +28 -0
  49. data/docs/ApiV1EnrollmentBenchmarkGet200ResponseFilters.md +20 -0
  50. data/docs/ApiV1InvestorProfileGet200Response.md +38 -0
  51. data/docs/ApiV1InvestorProfileGet200ResponseFunds.md +20 -0
  52. data/docs/ApiV1InvestorProfileGet200ResponseFundsRollupInner.md +22 -0
  53. data/docs/ApiV1InvestorProfileGet200ResponseOwnership.md +22 -0
  54. data/docs/ApiV1InvestorProfileGet200ResponseOwnershipHoldings.md +22 -0
  55. data/docs/ApiV1InvestorProfileGet200ResponseOwnershipOwners.md +22 -0
  56. data/docs/ApiV1InvestorProfileGet200ResponseOwnershipOwnersRowsInner.md +52 -0
  57. data/docs/ApiV1InvestorProfileGet200ResponseProfile.md +44 -0
  58. data/docs/ApiV1InvestorProfileGet200ResponseResolution.md +24 -0
  59. data/docs/ApiV1InvestorProfileGet200ResponseSections.md +24 -0
  60. data/docs/ApiV1InvestorProfileGet200ResponseSemantics.md +20 -0
  61. data/docs/ApiV1InvestorProfileGet200ResponseSemanticsOwnershipDimension.md +20 -0
  62. data/docs/ApiV1InvestorProfileGet200ResponseSemanticsSourceClass.md +18 -0
  63. data/docs/ApiV1InvestorProfileGet200ResponseSemanticsSourceClassSecFormAdv.md +20 -0
  64. data/docs/ApiV1LicensingCandidatesGet200Response.md +26 -0
  65. data/docs/ApiV1LicensingCandidatesGet200ResponseCandidatesInner.md +42 -0
  66. data/docs/ApiV1OrgFinancingAndOwnershipGet200Response.md +48 -0
  67. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseFinancing.md +24 -0
  68. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseFinancingRoundsInner.md +40 -0
  69. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseFinancingSummary.md +38 -0
  70. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseInvestors.md +26 -0
  71. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseOwnershipPercentages.md +30 -0
  72. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseOwnershipPercentagesInsider.md +40 -0
  73. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseOwnershipPercentagesInstitutional.md +42 -0
  74. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseOwnershipPercentagesNotes.md +30 -0
  75. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseOwnershipPercentagesSharesOutstanding.md +28 -0
  76. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseOwnershipPositions.md +24 -0
  77. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseOwnershipPositionsInstitutional13f.md +22 -0
  78. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseOwnershipPositionsPositionsInner.md +50 -0
  79. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseSections.md +36 -0
  80. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseSemantics.md +20 -0
  81. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseSemanticsOwnershipDimension.md +22 -0
  82. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseSemanticsSourceClass.md +22 -0
  83. data/docs/ApiV1OrgFinancingAndOwnershipGet200ResponseUnmatchedProductRevenue.md +24 -0
  84. data/docs/ApiV1OrgFinancingAndOwnershipOwnershipPositionsInstitutional13fHoldersInner.md +34 -0
  85. data/docs/ApiV1OrgPipelineStagesGet200Response.md +48 -0
  86. data/docs/ApiV1OrgPipelineStagesGet200ResponseApprovedMarketedInner.md +30 -0
  87. data/docs/ApiV1OrgPipelineStagesGet200ResponseInDevelopmentInner.md +34 -0
  88. data/docs/ApiV1OrgPipelineStagesGet200ResponseRecruitmentRollup.md +74 -0
  89. data/docs/ApiV1OrgPipelineStagesGet200ResponseRecruitmentRollupPhasesInner.md +48 -0
  90. data/docs/ApiV1OrgPipelineStagesGet200ResponseRecruitmentRollupPredicted.md +24 -0
  91. data/docs/ApiV1OrgPipelineStagesGet200ResponseSections.md +30 -0
  92. data/docs/ApiV1OrgPipelineStagesGet200ResponseTrialStartForecast.md +32 -0
  93. data/docs/ApiV1OrgPipelineStagesGet200ResponseTrialStartForecastYearsInner.md +50 -0
  94. data/docs/ApiV1OwnershipApi.md +155 -0
  95. data/docs/ApiV1PatentCliffExposureGet200Response.md +28 -0
  96. data/docs/ApiV1PatentCliffExposureGet200ResponseExposuresInner.md +46 -0
  97. data/docs/ApiV1ProgramCatalystApi.md +291 -0
  98. data/docs/ApiV1ProgramCatalystsGet200Response.md +32 -0
  99. data/docs/ApiV1ProgramCatalystsGet200ResponseCalendarInner.md +46 -0
  100. data/docs/ApiV1ProgramCatalystsGet200ResponsePdufa.md +26 -0
  101. data/docs/ApiV1ProgramCatalystsGet200ResponseSections.md +22 -0
  102. data/docs/ApiV1ResolveEntityApi.md +83 -0
  103. data/docs/ApiV1ResolveEntityGet200Response.md +36 -0
  104. data/docs/ApiV1ResolveEntityGet200ResponseCandidatesInner.md +26 -0
  105. data/docs/ApiV1ResolveEntityGet200ResponseCandidatesInnerRestriction.md +22 -0
  106. data/docs/ApiV1ResolveEntityGet200ResponseResolutionConfidence.md +20 -0
  107. data/docs/ApiV1RwdApi.md +153 -0
  108. data/docs/ApiV1RwdConductorTrackRecordGet200Response.md +42 -0
  109. data/docs/ApiV1RwdConductorTrackRecordGet200ResponseConductor.md +28 -0
  110. data/docs/ApiV1RwdConductorTrackRecordGet200ResponseDeliveryByMandate.md +22 -0
  111. data/docs/ApiV1RwdConductorTrackRecordGet200ResponseDeliveryByMandateAll.md +52 -0
  112. data/docs/ApiV1RwdConductorTrackRecordGet200ResponseDeliveryByMandateMandated.md +52 -0
  113. data/docs/ApiV1RwdConductorTrackRecordGet200ResponseDeliveryByMandateVoluntary.md +52 -0
  114. data/docs/ApiV1RwdConductorTrackRecordGet200ResponseFootprint.md +20 -0
  115. data/docs/ApiV1RwdConductorTrackRecordGet200ResponseFootprintDeliveredCountriesInner.md +20 -0
  116. data/docs/ApiV1RwdStudyScreenGet200Response.md +34 -0
  117. data/docs/ApiV1RwdStudyScreenGet200ResponseDeliveryDistribution.md +34 -0
  118. data/docs/ApiV1RwdStudyScreenGet200ResponseFilters.md +24 -0
  119. data/docs/ApiV1SiteRecordApi.md +83 -0
  120. data/docs/ApiV1SiteRecordGet200Response.md +36 -0
  121. data/docs/ApiV1SiteRecordGet200ResponseDetailSections.md +26 -0
  122. data/docs/ApiV1SiteRecordGet200ResponseDetailSectionsTrials.md +20 -0
  123. data/docs/ApiV1SiteRecordGet200ResponseSiteKeyRedirect.md +20 -0
  124. data/docs/ApiV1SiteRecordGet200ResponseSitesInner.md +46 -0
  125. data/docs/ApiV1SiteRecordGet200ResponseSitesInnerActiveYears.md +20 -0
  126. data/docs/ApiV1SiteRecordGet200ResponseSitesInnerDrugsInner.md +22 -0
  127. data/docs/ApiV1SiteRecordGet200ResponseSitesInnerEstimatedEnrollment.md +22 -0
  128. data/docs/ApiV1SiteRecordGet200ResponseSitesInnerIndicationsInner.md +22 -0
  129. data/docs/ApiV1SiteRecordGet200ResponseSitesInnerInvestigatorsInner.md +26 -0
  130. data/docs/ApiV1SiteRecordGet200ResponseSitesInnerTrialsInner.md +24 -0
  131. data/docs/ApiV1SponsorLandscapeRecruitmentRollupPredictedAtHorizonCap.md +22 -0
  132. data/docs/ApiV1SponsorLandscapeRecruitmentRollupStatusCountsInner.md +22 -0
  133. data/docs/ApiV1TrialApi.md +363 -0
  134. data/docs/ApiV1TrialsDiscontinuationReasonsGet200Response.md +34 -0
  135. data/docs/ApiV1TrialsDiscontinuationReasonsGet200ResponseFilters.md +20 -0
  136. data/docs/ApiV1TrialsDiscontinuationReasonsGet200ResponseTrialsInner.md +28 -0
  137. data/docs/ApiV1TrialsEligibilityGeneralizabilityScanGet200Response.md +32 -0
  138. data/docs/ApiV1TrialsEligibilityGeneralizabilityScanGet200ResponseFilters.md +18 -0
  139. data/docs/ApiV1TrialsEligibilityGeneralizabilityScanGet200ResponseTrialsInner.md +32 -0
  140. data/docs/ApiV1TrialsHistoryAndPredictionGet200Response.md +36 -0
  141. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponsePredictionsInner.md +54 -0
  142. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponsePredictionsInnerBaseline.md +24 -0
  143. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponsePredictionsInnerFigure.md +28 -0
  144. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponsePredictionsInnerInputsAsRegistered.md +38 -0
  145. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponsePredictionsInnerMeasuredError.md +26 -0
  146. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponsePredictionsInnerMeasuredErrorPhase.md +34 -0
  147. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponsePredictionsInnerMeasuredErrorSize.md +34 -0
  148. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponsePredictionsInnerReason.md +28 -0
  149. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponsePredictionsStatus.md +28 -0
  150. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponseRecordHistory.md +36 -0
  151. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponseRecordHistoryChangesInner.md +24 -0
  152. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponseRecordHistoryObservationsInner.md +32 -0
  153. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponseRecordHistoryObservationsInnerEnrollment.md +28 -0
  154. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponseRecordHistoryObservationsInnerSites.md +32 -0
  155. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponseRecordHistoryObservationsInnerStartDate.md +28 -0
  156. data/docs/ApiV1TrialsHistoryAndPredictionGet200ResponseSections.md +26 -0
  157. data/docs/ApiV1TrialsHistoryPredictionsInnerRegisteredPrimaryCompletion.md +22 -0
  158. data/docs/ApiV1TrialsHistoryRecordHistoryObservationsInnerOverallStatus.md +24 -0
  159. data/docs/ApiV1TrialsRecordsGet200Response.md +28 -0
  160. data/docs/ApiV1TrialsRecordsGet200ResponseBuildState.md +22 -0
  161. data/docs/ApiV1TrialsRecordsGet200ResponseExtractionCoverage.md +32 -0
  162. data/docs/ApiV1TrialsRecordsGet200ResponseSections.md +20 -0
  163. data/docs/ApiV1TrialsRecordsGet200ResponseSectionsExtracted.md +22 -0
  164. data/docs/ApiV1TrialsRecordsGet200ResponseTrialsInner.md +114 -0
  165. data/docs/ApiV1TrialsRecordsGet200ResponseTrialsInnerExtracted.md +46 -0
  166. data/docs/ApiV1TrialsRecordsGet200ResponseTrialsInnerLinkedDrugsInner.md +28 -0
  167. data/docs/ApiV1TrialsRecordsGet200ResponseTrialsInnerLinkedDrugsInnerBrandsInner.md +20 -0
  168. data/docs/ApiV1TrialsReportingCompletenessGet200Response.md +32 -0
  169. data/docs/ApiV1TrialsReportingCompletenessGet200ResponseDemographicFieldPopulationRate.md +24 -0
  170. data/docs/ApiV1WhoamiGet200Response.md +22 -0
  171. data/docs/AuthError.md +18 -0
  172. data/docs/NotEntitledError.md +24 -0
  173. data/lib/pharmaobservatory/api/api_v1_base_api.rb +77 -0
  174. data/lib/pharmaobservatory/api/api_v1_biomarker_assay_screen_api.rb +95 -0
  175. data/lib/pharmaobservatory/api/api_v1_biomarker_assay_whitespace_api.rb +95 -0
  176. data/lib/pharmaobservatory/api/api_v1_candidate_site_api.rb +89 -0
  177. data/lib/pharmaobservatory/api/api_v1_condition_api.rb +205 -0
  178. data/lib/pharmaobservatory/api/api_v1_enrollment_benchmark_api.rb +83 -0
  179. data/lib/pharmaobservatory/api/api_v1_ownership_api.rb +150 -0
  180. data/lib/pharmaobservatory/api/api_v1_program_catalyst_api.rb +260 -0
  181. data/lib/pharmaobservatory/api/api_v1_resolve_entity_api.rb +89 -0
  182. data/lib/pharmaobservatory/api/api_v1_rwd_api.rb +147 -0
  183. data/lib/pharmaobservatory/api/api_v1_site_record_api.rb +89 -0
  184. data/lib/pharmaobservatory/api/api_v1_trial_api.rb +321 -0
  185. data/lib/pharmaobservatory/api_client.rb +437 -0
  186. data/lib/pharmaobservatory/api_error.rb +58 -0
  187. data/lib/pharmaobservatory/configuration.rb +393 -0
  188. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_screen_get200_response.rb +343 -0
  189. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_screen_get200_response_build_state.rb +275 -0
  190. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_screen_get200_response_evidence_inner.rb +507 -0
  191. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_screen_get200_response_evidence_inner_source_ref.rb +369 -0
  192. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_screen_get200_response_filters.rb +283 -0
  193. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_whitespace_get200_response.rb +525 -0
  194. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_whitespace_get200_response_bucket_counts.rb +445 -0
  195. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_whitespace_get200_response_filters.rb +285 -0
  196. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_whitespace_get200_response_genes_inner.rb +469 -0
  197. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_whitespace_get200_response_literature_evidence_inner.rb +317 -0
  198. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_whitespace_get200_response_profile_link.rb +263 -0
  199. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_whitespace_get200_response_supplier_declarations_inner.rb +289 -0
  200. data/lib/pharmaobservatory/models/api_v1_biomarker_assay_whitespace_get200_response_validated_evidence_inner.rb +431 -0
  201. data/lib/pharmaobservatory/models/api_v1_candidate_sites_get200_response.rb +302 -0
  202. data/lib/pharmaobservatory/models/api_v1_candidate_sites_get200_response_filters.rb +289 -0
  203. data/lib/pharmaobservatory/models/api_v1_candidate_sites_get200_response_sites_inner.rb +573 -0
  204. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_burden_vs_evidence_get200_response.rb +471 -0
  205. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_burden_vs_evidence_get200_response_restriction.rb +289 -0
  206. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_evidence_freshness_get200_response.rb +327 -0
  207. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_evidence_freshness_get200_response_build_state.rb +237 -0
  208. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_evidence_freshness_get200_response_sections.rb +263 -0
  209. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response.rb +398 -0
  210. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_active_year_span.rb +235 -0
  211. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_phase_breakdown_inner.rb +263 -0
  212. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_recruitment_rollup.rb +954 -0
  213. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_recruitment_rollup_figures_inner.rb +289 -0
  214. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_recruitment_rollup_phases_inner.rb +512 -0
  215. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_recruitment_rollup_predicted.rb +259 -0
  216. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_recruitment_rollup_realized.rb +289 -0
  217. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_recruitment_rollup_statuses.rb +419 -0
  218. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_sections.rb +299 -0
  219. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_sponsors_inner.rb +289 -0
  220. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_trial_start_forecast.rb +421 -0
  221. data/lib/pharmaobservatory/models/api_v1_conditions_condition_id_sponsor_landscape_get200_response_trials_by_year_inner.rb +263 -0
  222. data/lib/pharmaobservatory/models/api_v1_enrollment_benchmark_get200_response.rb +282 -0
  223. data/lib/pharmaobservatory/models/api_v1_enrollment_benchmark_get200_response_benchmark.rb +549 -0
  224. data/lib/pharmaobservatory/models/api_v1_enrollment_benchmark_get200_response_benchmark_accrual_rate_per_site_month.rb +341 -0
  225. data/lib/pharmaobservatory/models/api_v1_enrollment_benchmark_get200_response_benchmark_confidence.rb +301 -0
  226. data/lib/pharmaobservatory/models/api_v1_enrollment_benchmark_get200_response_benchmark_enrollment.rb +289 -0
  227. data/lib/pharmaobservatory/models/api_v1_enrollment_benchmark_get200_response_benchmark_typical_duration_months.rb +367 -0
  228. data/lib/pharmaobservatory/models/api_v1_enrollment_benchmark_get200_response_filters.rb +263 -0
  229. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response.rb +401 -0
  230. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_funds.rb +265 -0
  231. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_funds_rollup_inner.rb +289 -0
  232. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_ownership.rb +289 -0
  233. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_ownership_holdings.rb +291 -0
  234. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_ownership_owners.rb +291 -0
  235. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_ownership_owners_rows_inner.rb +595 -0
  236. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_profile.rb +561 -0
  237. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_resolution.rb +303 -0
  238. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_sections.rb +315 -0
  239. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_semantics.rb +263 -0
  240. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_semantics_ownership_dimension.rb +229 -0
  241. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_semantics_source_class.rb +220 -0
  242. data/lib/pharmaobservatory/models/api_v1_investor_profile_get200_response_semantics_source_class_sec_form_adv.rb +263 -0
  243. data/lib/pharmaobservatory/models/api_v1_licensing_candidates_get200_response.rb +343 -0
  244. data/lib/pharmaobservatory/models/api_v1_licensing_candidates_get200_response_candidates_inner.rb +549 -0
  245. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response.rb +481 -0
  246. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_financing.rb +303 -0
  247. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_financing_rounds_inner.rb +509 -0
  248. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_financing_summary.rb +497 -0
  249. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_investors.rb +343 -0
  250. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_ownership_percentages.rb +365 -0
  251. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_ownership_percentages_insider.rb +453 -0
  252. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_ownership_percentages_institutional.rb +437 -0
  253. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_ownership_percentages_notes.rb +393 -0
  254. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_ownership_percentages_shares_outstanding.rb +339 -0
  255. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_ownership_positions.rb +317 -0
  256. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_ownership_positions_institutional13f.rb +291 -0
  257. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_ownership_positions_positions_inner.rb +597 -0
  258. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_sections.rb +403 -0
  259. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_semantics.rb +263 -0
  260. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_semantics_ownership_dimension.rb +238 -0
  261. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_semantics_source_class.rb +238 -0
  262. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_get200_response_unmatched_product_revenue.rb +301 -0
  263. data/lib/pharmaobservatory/models/api_v1_org_financing_and_ownership_ownership_positions_institutional13f_holders_inner.rb +417 -0
  264. data/lib/pharmaobservatory/models/api_v1_org_pipeline_stages_get200_response.rb +449 -0
  265. data/lib/pharmaobservatory/models/api_v1_org_pipeline_stages_get200_response_approved_marketed_inner.rb +393 -0
  266. data/lib/pharmaobservatory/models/api_v1_org_pipeline_stages_get200_response_in_development_inner.rb +445 -0
  267. data/lib/pharmaobservatory/models/api_v1_org_pipeline_stages_get200_response_recruitment_rollup.rb +940 -0
  268. data/lib/pharmaobservatory/models/api_v1_org_pipeline_stages_get200_response_recruitment_rollup_phases_inner.rb +512 -0
  269. data/lib/pharmaobservatory/models/api_v1_org_pipeline_stages_get200_response_recruitment_rollup_predicted.rb +315 -0
  270. data/lib/pharmaobservatory/models/api_v1_org_pipeline_stages_get200_response_sections.rb +325 -0
  271. data/lib/pharmaobservatory/models/api_v1_org_pipeline_stages_get200_response_trial_start_forecast.rb +421 -0
  272. data/lib/pharmaobservatory/models/api_v1_org_pipeline_stages_get200_response_trial_start_forecast_years_inner.rb +611 -0
  273. data/lib/pharmaobservatory/models/api_v1_patent_cliff_exposure_get200_response.rb +339 -0
  274. data/lib/pharmaobservatory/models/api_v1_patent_cliff_exposure_get200_response_exposures_inner.rb +531 -0
  275. data/lib/pharmaobservatory/models/api_v1_program_catalysts_get200_response.rb +377 -0
  276. data/lib/pharmaobservatory/models/api_v1_program_catalysts_get200_response_calendar_inner.rb +429 -0
  277. data/lib/pharmaobservatory/models/api_v1_program_catalysts_get200_response_pdufa.rb +324 -0
  278. data/lib/pharmaobservatory/models/api_v1_program_catalysts_get200_response_sections.rb +289 -0
  279. data/lib/pharmaobservatory/models/api_v1_resolve_entity_get200_response.rb +383 -0
  280. data/lib/pharmaobservatory/models/api_v1_resolve_entity_get200_response_candidates_inner.rb +283 -0
  281. data/lib/pharmaobservatory/models/api_v1_resolve_entity_get200_response_candidates_inner_restriction.rb +289 -0
  282. data/lib/pharmaobservatory/models/api_v1_resolve_entity_get200_response_resolution_confidence.rb +249 -0
  283. data/lib/pharmaobservatory/models/api_v1_rwd_conductor_track_record_get200_response.rb +467 -0
  284. data/lib/pharmaobservatory/models/api_v1_rwd_conductor_track_record_get200_response_conductor.rb +371 -0
  285. data/lib/pharmaobservatory/models/api_v1_rwd_conductor_track_record_get200_response_delivery_by_mandate.rb +272 -0
  286. data/lib/pharmaobservatory/models/api_v1_rwd_conductor_track_record_get200_response_delivery_by_mandate_all.rb +595 -0
  287. data/lib/pharmaobservatory/models/api_v1_rwd_conductor_track_record_get200_response_delivery_by_mandate_mandated.rb +609 -0
  288. data/lib/pharmaobservatory/models/api_v1_rwd_conductor_track_record_get200_response_delivery_by_mandate_voluntary.rb +665 -0
  289. data/lib/pharmaobservatory/models/api_v1_rwd_conductor_track_record_get200_response_footprint.rb +267 -0
  290. data/lib/pharmaobservatory/models/api_v1_rwd_conductor_track_record_get200_response_footprint_delivered_countries_inner.rb +263 -0
  291. data/lib/pharmaobservatory/models/api_v1_rwd_study_screen_get200_response.rb +387 -0
  292. data/lib/pharmaobservatory/models/api_v1_rwd_study_screen_get200_response_delivery_distribution.rb +403 -0
  293. data/lib/pharmaobservatory/models/api_v1_rwd_study_screen_get200_response_filters.rb +259 -0
  294. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response.rb +320 -0
  295. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_detail_sections.rb +341 -0
  296. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_detail_sections_trials.rb +265 -0
  297. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_site_key_redirect.rb +263 -0
  298. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_sites_inner.rb +477 -0
  299. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_sites_inner_active_years.rb +235 -0
  300. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_sites_inner_drugs_inner.rb +289 -0
  301. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_sites_inner_estimated_enrollment.rb +289 -0
  302. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_sites_inner_indications_inner.rb +289 -0
  303. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_sites_inner_investigators_inner.rb +327 -0
  304. data/lib/pharmaobservatory/models/api_v1_site_record_get200_response_sites_inner_trials_inner.rb +301 -0
  305. data/lib/pharmaobservatory/models/api_v1_sponsor_landscape_recruitment_rollup_predicted_at_horizon_cap.rb +289 -0
  306. data/lib/pharmaobservatory/models/api_v1_sponsor_landscape_recruitment_rollup_status_counts_inner.rb +289 -0
  307. data/lib/pharmaobservatory/models/api_v1_trials_discontinuation_reasons_get200_response.rb +311 -0
  308. data/lib/pharmaobservatory/models/api_v1_trials_discontinuation_reasons_get200_response_filters.rb +265 -0
  309. data/lib/pharmaobservatory/models/api_v1_trials_discontinuation_reasons_get200_response_trials_inner.rb +353 -0
  310. data/lib/pharmaobservatory/models/api_v1_trials_eligibility_generalizability_scan_get200_response.rb +302 -0
  311. data/lib/pharmaobservatory/models/api_v1_trials_eligibility_generalizability_scan_get200_response_filters.rb +237 -0
  312. data/lib/pharmaobservatory/models/api_v1_trials_eligibility_generalizability_scan_get200_response_trials_inner.rb +351 -0
  313. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response.rb +340 -0
  314. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_predictions_inner.rb +579 -0
  315. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_predictions_inner_baseline.rb +315 -0
  316. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_predictions_inner_figure.rb +367 -0
  317. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_predictions_inner_inputs_as_registered.rb +343 -0
  318. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_predictions_inner_measured_error.rb +299 -0
  319. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_predictions_inner_measured_error_phase.rb +361 -0
  320. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_predictions_inner_measured_error_size.rb +375 -0
  321. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_predictions_inner_reason.rb +311 -0
  322. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_predictions_status.rb +311 -0
  323. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_record_history.rb +433 -0
  324. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_record_history_changes_inner.rb +315 -0
  325. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_record_history_observations_inner.rb +419 -0
  326. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_record_history_observations_inner_enrollment.rb +311 -0
  327. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_record_history_observations_inner_sites.rb +321 -0
  328. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_record_history_observations_inner_start_date.rb +311 -0
  329. data/lib/pharmaobservatory/models/api_v1_trials_history_and_prediction_get200_response_sections.rb +273 -0
  330. data/lib/pharmaobservatory/models/api_v1_trials_history_predictions_inner_registered_primary_completion.rb +261 -0
  331. data/lib/pharmaobservatory/models/api_v1_trials_history_record_history_observations_inner_overall_status.rb +287 -0
  332. data/lib/pharmaobservatory/models/api_v1_trials_records_get200_response.rb +339 -0
  333. data/lib/pharmaobservatory/models/api_v1_trials_records_get200_response_build_state.rb +256 -0
  334. data/lib/pharmaobservatory/models/api_v1_trials_records_get200_response_extraction_coverage.rb +300 -0
  335. data/lib/pharmaobservatory/models/api_v1_trials_records_get200_response_sections.rb +263 -0
  336. data/lib/pharmaobservatory/models/api_v1_trials_records_get200_response_sections_extracted.rb +275 -0
  337. data/lib/pharmaobservatory/models/api_v1_trials_records_get200_response_trials_inner.rb +1189 -0
  338. data/lib/pharmaobservatory/models/api_v1_trials_records_get200_response_trials_inner_extracted.rb +382 -0
  339. data/lib/pharmaobservatory/models/api_v1_trials_records_get200_response_trials_inner_linked_drugs_inner.rb +343 -0
  340. data/lib/pharmaobservatory/models/api_v1_trials_records_get200_response_trials_inner_linked_drugs_inner_brands_inner.rb +263 -0
  341. data/lib/pharmaobservatory/models/api_v1_trials_reporting_completeness_get200_response.rb +300 -0
  342. data/lib/pharmaobservatory/models/api_v1_trials_reporting_completeness_get200_response_demographic_field_population_rate.rb +315 -0
  343. data/lib/pharmaobservatory/models/api_v1_whoami_get200_response.rb +291 -0
  344. data/lib/pharmaobservatory/models/auth_error.rb +237 -0
  345. data/lib/pharmaobservatory/models/not_entitled_error.rb +315 -0
  346. data/lib/pharmaobservatory/version.rb +15 -0
  347. data/lib/pharmaobservatory.rb +209 -0
  348. metadata +461 -0
@@ -0,0 +1,940 @@
1
+ =begin
2
+ #Pharma Observatory Public REST API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
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 ApiV1OrgPipelineStagesGet200ResponseRecruitmentRollup
18
+ attr_accessor :kind
19
+
20
+ attr_accessor :state
21
+
22
+ attr_accessor :realized_state
23
+
24
+ attr_accessor :cutoff
25
+
26
+ attr_accessor :min_n
27
+
28
+ attr_accessor :cap_months
29
+
30
+ attr_accessor :model_version
31
+
32
+ attr_accessor :method
33
+
34
+ attr_accessor :n_trials
35
+
36
+ attr_accessor :n_evaluated
37
+
38
+ attr_accessor :n_not_evaluated
39
+
40
+ attr_accessor :statuses
41
+
42
+ attr_accessor :n_superseded
43
+
44
+ attr_accessor :n_open
45
+
46
+ attr_accessor :n_at_cap
47
+
48
+ attr_accessor :n_overdue
49
+
50
+ attr_accessor :n_error_measured
51
+
52
+ attr_accessor :predicted
53
+
54
+ attr_accessor :n_realized
55
+
56
+ attr_accessor :n_realized_over_cap
57
+
58
+ attr_accessor :realized
59
+
60
+ attr_accessor :phases
61
+
62
+ attr_accessor :scope
63
+
64
+ attr_accessor :title
65
+
66
+ attr_accessor :body
67
+
68
+ attr_accessor :figures
69
+
70
+ attr_accessor :status_counts
71
+
72
+ attr_accessor :source
73
+
74
+ attr_accessor :predicted_at_horizon_cap
75
+
76
+ # Attribute mapping from ruby-style variable name to JSON key.
77
+ def self.attribute_map
78
+ {
79
+ :'kind' => :'kind',
80
+ :'state' => :'state',
81
+ :'realized_state' => :'realized_state',
82
+ :'cutoff' => :'cutoff',
83
+ :'min_n' => :'min_n',
84
+ :'cap_months' => :'cap_months',
85
+ :'model_version' => :'model_version',
86
+ :'method' => :'method',
87
+ :'n_trials' => :'n_trials',
88
+ :'n_evaluated' => :'n_evaluated',
89
+ :'n_not_evaluated' => :'n_not_evaluated',
90
+ :'statuses' => :'statuses',
91
+ :'n_superseded' => :'n_superseded',
92
+ :'n_open' => :'n_open',
93
+ :'n_at_cap' => :'n_at_cap',
94
+ :'n_overdue' => :'n_overdue',
95
+ :'n_error_measured' => :'n_error_measured',
96
+ :'predicted' => :'predicted',
97
+ :'n_realized' => :'n_realized',
98
+ :'n_realized_over_cap' => :'n_realized_over_cap',
99
+ :'realized' => :'realized',
100
+ :'phases' => :'phases',
101
+ :'scope' => :'scope',
102
+ :'title' => :'title',
103
+ :'body' => :'body',
104
+ :'figures' => :'figures',
105
+ :'status_counts' => :'status_counts',
106
+ :'source' => :'source',
107
+ :'predicted_at_horizon_cap' => :'predicted_at_horizon_cap'
108
+ }
109
+ end
110
+
111
+ # Returns attribute mapping this model knows about
112
+ def self.acceptable_attribute_map
113
+ attribute_map
114
+ end
115
+
116
+ # Returns all the JSON keys this model knows about
117
+ def self.acceptable_attributes
118
+ acceptable_attribute_map.values
119
+ end
120
+
121
+ # Attribute type mapping.
122
+ def self.openapi_types
123
+ {
124
+ :'kind' => :'String',
125
+ :'state' => :'String',
126
+ :'realized_state' => :'String',
127
+ :'cutoff' => :'String',
128
+ :'min_n' => :'Integer',
129
+ :'cap_months' => :'Integer',
130
+ :'model_version' => :'String',
131
+ :'method' => :'String',
132
+ :'n_trials' => :'Integer',
133
+ :'n_evaluated' => :'Integer',
134
+ :'n_not_evaluated' => :'Integer',
135
+ :'statuses' => :'ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseRecruitmentRollupStatuses',
136
+ :'n_superseded' => :'Integer',
137
+ :'n_open' => :'Integer',
138
+ :'n_at_cap' => :'Integer',
139
+ :'n_overdue' => :'Integer',
140
+ :'n_error_measured' => :'Integer',
141
+ :'predicted' => :'ApiV1OrgPipelineStagesGet200ResponseRecruitmentRollupPredicted',
142
+ :'n_realized' => :'Integer',
143
+ :'n_realized_over_cap' => :'Integer',
144
+ :'realized' => :'ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseRecruitmentRollupRealized',
145
+ :'phases' => :'Array<ApiV1OrgPipelineStagesGet200ResponseRecruitmentRollupPhasesInner>',
146
+ :'scope' => :'String',
147
+ :'title' => :'Object',
148
+ :'body' => :'String',
149
+ :'figures' => :'Array<ApiV1ConditionsConditionIdSponsorLandscapeGet200ResponseRecruitmentRollupFiguresInner>',
150
+ :'status_counts' => :'Array<ApiV1SponsorLandscapeRecruitmentRollupStatusCountsInner>',
151
+ :'source' => :'String',
152
+ :'predicted_at_horizon_cap' => :'ApiV1SponsorLandscapeRecruitmentRollupPredictedAtHorizonCap'
153
+ }
154
+ end
155
+
156
+ # List of attributes with nullable: true
157
+ def self.openapi_nullable
158
+ Set.new([
159
+ :'title',
160
+ ])
161
+ end
162
+
163
+ # Initializes the object
164
+ # @param [Hash] attributes Model attributes in the form of hash
165
+ def initialize(attributes = {})
166
+ if (!attributes.is_a?(Hash))
167
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PharmaObservatory::ApiV1OrgPipelineStagesGet200ResponseRecruitmentRollup` initialize method"
168
+ end
169
+
170
+ # check to see if the attribute exists and convert string to symbol for hash key
171
+ acceptable_attribute_map = self.class.acceptable_attribute_map
172
+ attributes = attributes.each_with_object({}) { |(k, v), h|
173
+ if (!acceptable_attribute_map.key?(k.to_sym))
174
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PharmaObservatory::ApiV1OrgPipelineStagesGet200ResponseRecruitmentRollup`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
175
+ end
176
+ h[k.to_sym] = v
177
+ }
178
+
179
+ if attributes.key?(:'kind')
180
+ self.kind = attributes[:'kind']
181
+ else
182
+ self.kind = nil
183
+ end
184
+
185
+ if attributes.key?(:'state')
186
+ self.state = attributes[:'state']
187
+ else
188
+ self.state = nil
189
+ end
190
+
191
+ if attributes.key?(:'realized_state')
192
+ self.realized_state = attributes[:'realized_state']
193
+ else
194
+ self.realized_state = nil
195
+ end
196
+
197
+ if attributes.key?(:'cutoff')
198
+ self.cutoff = attributes[:'cutoff']
199
+ else
200
+ self.cutoff = nil
201
+ end
202
+
203
+ if attributes.key?(:'min_n')
204
+ self.min_n = attributes[:'min_n']
205
+ else
206
+ self.min_n = nil
207
+ end
208
+
209
+ if attributes.key?(:'cap_months')
210
+ self.cap_months = attributes[:'cap_months']
211
+ else
212
+ self.cap_months = nil
213
+ end
214
+
215
+ if attributes.key?(:'model_version')
216
+ self.model_version = attributes[:'model_version']
217
+ else
218
+ self.model_version = nil
219
+ end
220
+
221
+ if attributes.key?(:'method')
222
+ self.method = attributes[:'method']
223
+ else
224
+ self.method = nil
225
+ end
226
+
227
+ if attributes.key?(:'n_trials')
228
+ self.n_trials = attributes[:'n_trials']
229
+ else
230
+ self.n_trials = nil
231
+ end
232
+
233
+ if attributes.key?(:'n_evaluated')
234
+ self.n_evaluated = attributes[:'n_evaluated']
235
+ else
236
+ self.n_evaluated = nil
237
+ end
238
+
239
+ if attributes.key?(:'n_not_evaluated')
240
+ self.n_not_evaluated = attributes[:'n_not_evaluated']
241
+ else
242
+ self.n_not_evaluated = nil
243
+ end
244
+
245
+ if attributes.key?(:'statuses')
246
+ self.statuses = attributes[:'statuses']
247
+ else
248
+ self.statuses = nil
249
+ end
250
+
251
+ if attributes.key?(:'n_superseded')
252
+ self.n_superseded = attributes[:'n_superseded']
253
+ else
254
+ self.n_superseded = nil
255
+ end
256
+
257
+ if attributes.key?(:'n_open')
258
+ self.n_open = attributes[:'n_open']
259
+ else
260
+ self.n_open = nil
261
+ end
262
+
263
+ if attributes.key?(:'n_at_cap')
264
+ self.n_at_cap = attributes[:'n_at_cap']
265
+ else
266
+ self.n_at_cap = nil
267
+ end
268
+
269
+ if attributes.key?(:'n_overdue')
270
+ self.n_overdue = attributes[:'n_overdue']
271
+ else
272
+ self.n_overdue = nil
273
+ end
274
+
275
+ if attributes.key?(:'n_error_measured')
276
+ self.n_error_measured = attributes[:'n_error_measured']
277
+ else
278
+ self.n_error_measured = nil
279
+ end
280
+
281
+ if attributes.key?(:'predicted')
282
+ self.predicted = attributes[:'predicted']
283
+ else
284
+ self.predicted = nil
285
+ end
286
+
287
+ if attributes.key?(:'n_realized')
288
+ self.n_realized = attributes[:'n_realized']
289
+ else
290
+ self.n_realized = nil
291
+ end
292
+
293
+ if attributes.key?(:'n_realized_over_cap')
294
+ self.n_realized_over_cap = attributes[:'n_realized_over_cap']
295
+ else
296
+ self.n_realized_over_cap = nil
297
+ end
298
+
299
+ if attributes.key?(:'realized')
300
+ self.realized = attributes[:'realized']
301
+ else
302
+ self.realized = nil
303
+ end
304
+
305
+ if attributes.key?(:'phases')
306
+ if (value = attributes[:'phases']).is_a?(Array)
307
+ self.phases = value
308
+ end
309
+ else
310
+ self.phases = nil
311
+ end
312
+
313
+ if attributes.key?(:'scope')
314
+ self.scope = attributes[:'scope']
315
+ else
316
+ self.scope = nil
317
+ end
318
+
319
+ if attributes.key?(:'title')
320
+ self.title = attributes[:'title']
321
+ else
322
+ self.title = nil
323
+ end
324
+
325
+ if attributes.key?(:'body')
326
+ self.body = attributes[:'body']
327
+ else
328
+ self.body = nil
329
+ end
330
+
331
+ if attributes.key?(:'figures')
332
+ if (value = attributes[:'figures']).is_a?(Array)
333
+ self.figures = value
334
+ end
335
+ else
336
+ self.figures = nil
337
+ end
338
+
339
+ if attributes.key?(:'status_counts')
340
+ if (value = attributes[:'status_counts']).is_a?(Array)
341
+ self.status_counts = value
342
+ end
343
+ else
344
+ self.status_counts = nil
345
+ end
346
+
347
+ if attributes.key?(:'source')
348
+ self.source = attributes[:'source']
349
+ else
350
+ self.source = nil
351
+ end
352
+
353
+ if attributes.key?(:'predicted_at_horizon_cap')
354
+ self.predicted_at_horizon_cap = attributes[:'predicted_at_horizon_cap']
355
+ end
356
+ end
357
+
358
+ # Show invalid properties with the reasons. Usually used together with valid?
359
+ # @return Array for valid properties with the reasons
360
+ def list_invalid_properties
361
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
362
+ invalid_properties = Array.new
363
+ if @kind.nil?
364
+ invalid_properties.push('invalid value for "kind", kind cannot be nil.')
365
+ end
366
+
367
+ if @state.nil?
368
+ invalid_properties.push('invalid value for "state", state cannot be nil.')
369
+ end
370
+
371
+ if @realized_state.nil?
372
+ invalid_properties.push('invalid value for "realized_state", realized_state cannot be nil.')
373
+ end
374
+
375
+ if @cutoff.nil?
376
+ invalid_properties.push('invalid value for "cutoff", cutoff cannot be nil.')
377
+ end
378
+
379
+ if @min_n.nil?
380
+ invalid_properties.push('invalid value for "min_n", min_n cannot be nil.')
381
+ end
382
+
383
+ if @cap_months.nil?
384
+ invalid_properties.push('invalid value for "cap_months", cap_months cannot be nil.')
385
+ end
386
+
387
+ if @model_version.nil?
388
+ invalid_properties.push('invalid value for "model_version", model_version cannot be nil.')
389
+ end
390
+
391
+ if @method.nil?
392
+ invalid_properties.push('invalid value for "method", method cannot be nil.')
393
+ end
394
+
395
+ if @n_trials.nil?
396
+ invalid_properties.push('invalid value for "n_trials", n_trials cannot be nil.')
397
+ end
398
+
399
+ if @n_evaluated.nil?
400
+ invalid_properties.push('invalid value for "n_evaluated", n_evaluated cannot be nil.')
401
+ end
402
+
403
+ if @n_not_evaluated.nil?
404
+ invalid_properties.push('invalid value for "n_not_evaluated", n_not_evaluated cannot be nil.')
405
+ end
406
+
407
+ if @statuses.nil?
408
+ invalid_properties.push('invalid value for "statuses", statuses cannot be nil.')
409
+ end
410
+
411
+ if @n_superseded.nil?
412
+ invalid_properties.push('invalid value for "n_superseded", n_superseded cannot be nil.')
413
+ end
414
+
415
+ if @n_open.nil?
416
+ invalid_properties.push('invalid value for "n_open", n_open cannot be nil.')
417
+ end
418
+
419
+ if @n_at_cap.nil?
420
+ invalid_properties.push('invalid value for "n_at_cap", n_at_cap cannot be nil.')
421
+ end
422
+
423
+ if @n_overdue.nil?
424
+ invalid_properties.push('invalid value for "n_overdue", n_overdue cannot be nil.')
425
+ end
426
+
427
+ if @n_error_measured.nil?
428
+ invalid_properties.push('invalid value for "n_error_measured", n_error_measured cannot be nil.')
429
+ end
430
+
431
+ if @predicted.nil?
432
+ invalid_properties.push('invalid value for "predicted", predicted cannot be nil.')
433
+ end
434
+
435
+ if @n_realized.nil?
436
+ invalid_properties.push('invalid value for "n_realized", n_realized cannot be nil.')
437
+ end
438
+
439
+ if @n_realized_over_cap.nil?
440
+ invalid_properties.push('invalid value for "n_realized_over_cap", n_realized_over_cap cannot be nil.')
441
+ end
442
+
443
+ if @realized.nil?
444
+ invalid_properties.push('invalid value for "realized", realized cannot be nil.')
445
+ end
446
+
447
+ if @phases.nil?
448
+ invalid_properties.push('invalid value for "phases", phases cannot be nil.')
449
+ end
450
+
451
+ if @scope.nil?
452
+ invalid_properties.push('invalid value for "scope", scope cannot be nil.')
453
+ end
454
+
455
+ if @body.nil?
456
+ invalid_properties.push('invalid value for "body", body cannot be nil.')
457
+ end
458
+
459
+ if @figures.nil?
460
+ invalid_properties.push('invalid value for "figures", figures cannot be nil.')
461
+ end
462
+
463
+ if @status_counts.nil?
464
+ invalid_properties.push('invalid value for "status_counts", status_counts cannot be nil.')
465
+ end
466
+
467
+ if @source.nil?
468
+ invalid_properties.push('invalid value for "source", source cannot be nil.')
469
+ end
470
+
471
+ invalid_properties
472
+ end
473
+
474
+ # Check to see if the all the properties in the model are valid
475
+ # @return true if the model is valid
476
+ def valid?
477
+ warn '[DEPRECATED] the `valid?` method is obsolete'
478
+ return false if @kind.nil?
479
+ return false if @state.nil?
480
+ return false if @realized_state.nil?
481
+ return false if @cutoff.nil?
482
+ return false if @min_n.nil?
483
+ return false if @cap_months.nil?
484
+ return false if @model_version.nil?
485
+ return false if @method.nil?
486
+ return false if @n_trials.nil?
487
+ return false if @n_evaluated.nil?
488
+ return false if @n_not_evaluated.nil?
489
+ return false if @statuses.nil?
490
+ return false if @n_superseded.nil?
491
+ return false if @n_open.nil?
492
+ return false if @n_at_cap.nil?
493
+ return false if @n_overdue.nil?
494
+ return false if @n_error_measured.nil?
495
+ return false if @predicted.nil?
496
+ return false if @n_realized.nil?
497
+ return false if @n_realized_over_cap.nil?
498
+ return false if @realized.nil?
499
+ return false if @phases.nil?
500
+ return false if @scope.nil?
501
+ return false if @body.nil?
502
+ return false if @figures.nil?
503
+ return false if @status_counts.nil?
504
+ return false if @source.nil?
505
+ true
506
+ end
507
+
508
+ # Custom attribute writer method with validation
509
+ # @param [Object] kind Value to be assigned
510
+ def kind=(kind)
511
+ if kind.nil?
512
+ fail ArgumentError, 'kind cannot be nil'
513
+ end
514
+
515
+ @kind = kind
516
+ end
517
+
518
+ # Custom attribute writer method with validation
519
+ # @param [Object] state Value to be assigned
520
+ def state=(state)
521
+ if state.nil?
522
+ fail ArgumentError, 'state cannot be nil'
523
+ end
524
+
525
+ @state = state
526
+ end
527
+
528
+ # Custom attribute writer method with validation
529
+ # @param [Object] realized_state Value to be assigned
530
+ def realized_state=(realized_state)
531
+ if realized_state.nil?
532
+ fail ArgumentError, 'realized_state cannot be nil'
533
+ end
534
+
535
+ @realized_state = realized_state
536
+ end
537
+
538
+ # Custom attribute writer method with validation
539
+ # @param [Object] cutoff Value to be assigned
540
+ def cutoff=(cutoff)
541
+ if cutoff.nil?
542
+ fail ArgumentError, 'cutoff cannot be nil'
543
+ end
544
+
545
+ @cutoff = cutoff
546
+ end
547
+
548
+ # Custom attribute writer method with validation
549
+ # @param [Object] min_n Value to be assigned
550
+ def min_n=(min_n)
551
+ if min_n.nil?
552
+ fail ArgumentError, 'min_n cannot be nil'
553
+ end
554
+
555
+ @min_n = min_n
556
+ end
557
+
558
+ # Custom attribute writer method with validation
559
+ # @param [Object] cap_months Value to be assigned
560
+ def cap_months=(cap_months)
561
+ if cap_months.nil?
562
+ fail ArgumentError, 'cap_months cannot be nil'
563
+ end
564
+
565
+ @cap_months = cap_months
566
+ end
567
+
568
+ # Custom attribute writer method with validation
569
+ # @param [Object] model_version Value to be assigned
570
+ def model_version=(model_version)
571
+ if model_version.nil?
572
+ fail ArgumentError, 'model_version cannot be nil'
573
+ end
574
+
575
+ @model_version = model_version
576
+ end
577
+
578
+ # Custom attribute writer method with validation
579
+ # @param [Object] method Value to be assigned
580
+ def method=(method)
581
+ if method.nil?
582
+ fail ArgumentError, 'method cannot be nil'
583
+ end
584
+
585
+ @method = method
586
+ end
587
+
588
+ # Custom attribute writer method with validation
589
+ # @param [Object] n_trials Value to be assigned
590
+ def n_trials=(n_trials)
591
+ if n_trials.nil?
592
+ fail ArgumentError, 'n_trials cannot be nil'
593
+ end
594
+
595
+ @n_trials = n_trials
596
+ end
597
+
598
+ # Custom attribute writer method with validation
599
+ # @param [Object] n_evaluated Value to be assigned
600
+ def n_evaluated=(n_evaluated)
601
+ if n_evaluated.nil?
602
+ fail ArgumentError, 'n_evaluated cannot be nil'
603
+ end
604
+
605
+ @n_evaluated = n_evaluated
606
+ end
607
+
608
+ # Custom attribute writer method with validation
609
+ # @param [Object] n_not_evaluated Value to be assigned
610
+ def n_not_evaluated=(n_not_evaluated)
611
+ if n_not_evaluated.nil?
612
+ fail ArgumentError, 'n_not_evaluated cannot be nil'
613
+ end
614
+
615
+ @n_not_evaluated = n_not_evaluated
616
+ end
617
+
618
+ # Custom attribute writer method with validation
619
+ # @param [Object] statuses Value to be assigned
620
+ def statuses=(statuses)
621
+ if statuses.nil?
622
+ fail ArgumentError, 'statuses cannot be nil'
623
+ end
624
+
625
+ @statuses = statuses
626
+ end
627
+
628
+ # Custom attribute writer method with validation
629
+ # @param [Object] n_superseded Value to be assigned
630
+ def n_superseded=(n_superseded)
631
+ if n_superseded.nil?
632
+ fail ArgumentError, 'n_superseded cannot be nil'
633
+ end
634
+
635
+ @n_superseded = n_superseded
636
+ end
637
+
638
+ # Custom attribute writer method with validation
639
+ # @param [Object] n_open Value to be assigned
640
+ def n_open=(n_open)
641
+ if n_open.nil?
642
+ fail ArgumentError, 'n_open cannot be nil'
643
+ end
644
+
645
+ @n_open = n_open
646
+ end
647
+
648
+ # Custom attribute writer method with validation
649
+ # @param [Object] n_at_cap Value to be assigned
650
+ def n_at_cap=(n_at_cap)
651
+ if n_at_cap.nil?
652
+ fail ArgumentError, 'n_at_cap cannot be nil'
653
+ end
654
+
655
+ @n_at_cap = n_at_cap
656
+ end
657
+
658
+ # Custom attribute writer method with validation
659
+ # @param [Object] n_overdue Value to be assigned
660
+ def n_overdue=(n_overdue)
661
+ if n_overdue.nil?
662
+ fail ArgumentError, 'n_overdue cannot be nil'
663
+ end
664
+
665
+ @n_overdue = n_overdue
666
+ end
667
+
668
+ # Custom attribute writer method with validation
669
+ # @param [Object] n_error_measured Value to be assigned
670
+ def n_error_measured=(n_error_measured)
671
+ if n_error_measured.nil?
672
+ fail ArgumentError, 'n_error_measured cannot be nil'
673
+ end
674
+
675
+ @n_error_measured = n_error_measured
676
+ end
677
+
678
+ # Custom attribute writer method with validation
679
+ # @param [Object] predicted Value to be assigned
680
+ def predicted=(predicted)
681
+ if predicted.nil?
682
+ fail ArgumentError, 'predicted cannot be nil'
683
+ end
684
+
685
+ @predicted = predicted
686
+ end
687
+
688
+ # Custom attribute writer method with validation
689
+ # @param [Object] n_realized Value to be assigned
690
+ def n_realized=(n_realized)
691
+ if n_realized.nil?
692
+ fail ArgumentError, 'n_realized cannot be nil'
693
+ end
694
+
695
+ @n_realized = n_realized
696
+ end
697
+
698
+ # Custom attribute writer method with validation
699
+ # @param [Object] n_realized_over_cap Value to be assigned
700
+ def n_realized_over_cap=(n_realized_over_cap)
701
+ if n_realized_over_cap.nil?
702
+ fail ArgumentError, 'n_realized_over_cap cannot be nil'
703
+ end
704
+
705
+ @n_realized_over_cap = n_realized_over_cap
706
+ end
707
+
708
+ # Custom attribute writer method with validation
709
+ # @param [Object] realized Value to be assigned
710
+ def realized=(realized)
711
+ if realized.nil?
712
+ fail ArgumentError, 'realized cannot be nil'
713
+ end
714
+
715
+ @realized = realized
716
+ end
717
+
718
+ # Custom attribute writer method with validation
719
+ # @param [Object] phases Value to be assigned
720
+ def phases=(phases)
721
+ if phases.nil?
722
+ fail ArgumentError, 'phases cannot be nil'
723
+ end
724
+
725
+ @phases = phases
726
+ end
727
+
728
+ # Custom attribute writer method with validation
729
+ # @param [Object] scope Value to be assigned
730
+ def scope=(scope)
731
+ if scope.nil?
732
+ fail ArgumentError, 'scope cannot be nil'
733
+ end
734
+
735
+ @scope = scope
736
+ end
737
+
738
+ # Custom attribute writer method with validation
739
+ # @param [Object] body Value to be assigned
740
+ def body=(body)
741
+ if body.nil?
742
+ fail ArgumentError, 'body cannot be nil'
743
+ end
744
+
745
+ @body = body
746
+ end
747
+
748
+ # Custom attribute writer method with validation
749
+ # @param [Object] figures Value to be assigned
750
+ def figures=(figures)
751
+ if figures.nil?
752
+ fail ArgumentError, 'figures cannot be nil'
753
+ end
754
+
755
+ @figures = figures
756
+ end
757
+
758
+ # Custom attribute writer method with validation
759
+ # @param [Object] status_counts Value to be assigned
760
+ def status_counts=(status_counts)
761
+ if status_counts.nil?
762
+ fail ArgumentError, 'status_counts cannot be nil'
763
+ end
764
+
765
+ @status_counts = status_counts
766
+ end
767
+
768
+ # Custom attribute writer method with validation
769
+ # @param [Object] source Value to be assigned
770
+ def source=(source)
771
+ if source.nil?
772
+ fail ArgumentError, 'source cannot be nil'
773
+ end
774
+
775
+ @source = source
776
+ end
777
+
778
+ # Checks equality by comparing each attribute.
779
+ # @param [Object] Object to be compared
780
+ def ==(o)
781
+ return true if self.equal?(o)
782
+ self.class == o.class &&
783
+ kind == o.kind &&
784
+ state == o.state &&
785
+ realized_state == o.realized_state &&
786
+ cutoff == o.cutoff &&
787
+ min_n == o.min_n &&
788
+ cap_months == o.cap_months &&
789
+ model_version == o.model_version &&
790
+ method == o.method &&
791
+ n_trials == o.n_trials &&
792
+ n_evaluated == o.n_evaluated &&
793
+ n_not_evaluated == o.n_not_evaluated &&
794
+ statuses == o.statuses &&
795
+ n_superseded == o.n_superseded &&
796
+ n_open == o.n_open &&
797
+ n_at_cap == o.n_at_cap &&
798
+ n_overdue == o.n_overdue &&
799
+ n_error_measured == o.n_error_measured &&
800
+ predicted == o.predicted &&
801
+ n_realized == o.n_realized &&
802
+ n_realized_over_cap == o.n_realized_over_cap &&
803
+ realized == o.realized &&
804
+ phases == o.phases &&
805
+ scope == o.scope &&
806
+ title == o.title &&
807
+ body == o.body &&
808
+ figures == o.figures &&
809
+ status_counts == o.status_counts &&
810
+ source == o.source &&
811
+ predicted_at_horizon_cap == o.predicted_at_horizon_cap
812
+ end
813
+
814
+ # @see the `==` method
815
+ # @param [Object] Object to be compared
816
+ def eql?(o)
817
+ self == o
818
+ end
819
+
820
+ # Calculates hash code according to all attributes.
821
+ # @return [Integer] Hash code
822
+ def hash
823
+ [kind, state, realized_state, cutoff, min_n, cap_months, model_version, method, n_trials, n_evaluated, n_not_evaluated, statuses, n_superseded, n_open, n_at_cap, n_overdue, n_error_measured, predicted, n_realized, n_realized_over_cap, realized, phases, scope, title, body, figures, status_counts, source, predicted_at_horizon_cap].hash
824
+ end
825
+
826
+ # Builds the object from hash
827
+ # @param [Hash] attributes Model attributes in the form of hash
828
+ # @return [Object] Returns the model itself
829
+ def self.build_from_hash(attributes)
830
+ return nil unless attributes.is_a?(Hash)
831
+ attributes = attributes.transform_keys(&:to_sym)
832
+ transformed_hash = {}
833
+ openapi_types.each_pair do |key, type|
834
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
835
+ transformed_hash["#{key}"] = nil
836
+ elsif type =~ /\AArray<(.*)>/i
837
+ # check to ensure the input is an array given that the attribute
838
+ # is documented as an array but the input is not
839
+ if attributes[attribute_map[key]].is_a?(Array)
840
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
841
+ end
842
+ elsif !attributes[attribute_map[key]].nil?
843
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
844
+ end
845
+ end
846
+ new(transformed_hash)
847
+ end
848
+
849
+ # Deserializes the data based on type
850
+ # @param string type Data type
851
+ # @param string value Value to be deserialized
852
+ # @return [Object] Deserialized data
853
+ def self._deserialize(type, value)
854
+ case type.to_sym
855
+ when :Time
856
+ Time.parse(value)
857
+ when :Date
858
+ Date.parse(value)
859
+ when :String
860
+ value.to_s
861
+ when :Integer
862
+ value.to_i
863
+ when :Float
864
+ value.to_f
865
+ when :Boolean
866
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
867
+ true
868
+ else
869
+ false
870
+ end
871
+ when :Object
872
+ # generic object (usually a Hash), return directly
873
+ value
874
+ when /\AArray<(?<inner_type>.+)>\z/
875
+ inner_type = Regexp.last_match[:inner_type]
876
+ value.map { |v| _deserialize(inner_type, v) }
877
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
878
+ k_type = Regexp.last_match[:k_type]
879
+ v_type = Regexp.last_match[:v_type]
880
+ {}.tap do |hash|
881
+ value.each do |k, v|
882
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
883
+ end
884
+ end
885
+ else # model
886
+ # models (e.g. Pet) or oneOf
887
+ klass = PharmaObservatory.const_get(type)
888
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
889
+ end
890
+ end
891
+
892
+ # Returns the string representation of the object
893
+ # @return [String] String presentation of the object
894
+ def to_s
895
+ to_hash.to_s
896
+ end
897
+
898
+ # to_body is an alias to to_hash (backward compatibility)
899
+ # @return [Hash] Returns the object in the form of hash
900
+ def to_body
901
+ to_hash
902
+ end
903
+
904
+ # Returns the object in the form of hash
905
+ # @return [Hash] Returns the object in the form of hash
906
+ def to_hash
907
+ hash = {}
908
+ self.class.attribute_map.each_pair do |attr, param|
909
+ value = self.send(attr)
910
+ if value.nil?
911
+ is_nullable = self.class.openapi_nullable.include?(attr)
912
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
913
+ end
914
+
915
+ hash[param] = _to_hash(value)
916
+ end
917
+ hash
918
+ end
919
+
920
+ # Outputs non-array value in the form of hash
921
+ # For object, use to_hash. Otherwise, just return the value
922
+ # @param [Object] value Any valid value
923
+ # @return [Hash] Returns the value in the form of hash
924
+ def _to_hash(value)
925
+ if value.is_a?(Array)
926
+ value.compact.map { |v| _to_hash(v) }
927
+ elsif value.is_a?(Hash)
928
+ {}.tap do |hash|
929
+ value.each { |k, v| hash[k] = _to_hash(v) }
930
+ end
931
+ elsif value.respond_to? :to_hash
932
+ value.to_hash
933
+ else
934
+ value
935
+ end
936
+ end
937
+
938
+ end
939
+
940
+ end