pharmaobservatory 0.1.3 → 0.1.4

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 (175) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +101 -4
  3. data/docs/BiomarkerBqpAssertionsRow.md +1 -1
  4. data/docs/BiomarkerEvidenceRow.md +1 -1
  5. data/docs/BiomarkerLiteratureRow.md +1 -1
  6. data/docs/BiomarkerRelationsResponse.md +58 -0
  7. data/docs/BiomarkerRelationsRow.md +54 -0
  8. data/docs/BiomarkerSampleCoverageResponse.md +58 -0
  9. data/docs/BiomarkerSampleCoverageRow.md +36 -0
  10. data/docs/BiomarkerSamplePrevalenceResponse.md +58 -0
  11. data/docs/BiomarkerSamplePrevalenceRow.md +56 -0
  12. data/docs/BiomarkerValidationResponse.md +58 -0
  13. data/docs/BiomarkerValidationRow.md +70 -0
  14. data/docs/BiomarkersApi.md +320 -0
  15. data/docs/BiomarkersRow.md +2 -2
  16. data/docs/CellLinesRow.md +1 -1
  17. data/docs/CompaniesApi.md +410 -0
  18. data/docs/CompaniesRecord.md +1 -1
  19. data/docs/CompaniesRecordAttributes.md +18 -0
  20. data/docs/CompaniesRow.md +7 -3
  21. data/docs/CompanyAssetsResponse.md +58 -0
  22. data/docs/CompanyAssetsRow.md +42 -0
  23. data/docs/CompanyFundingEventsResponse.md +58 -0
  24. data/docs/CompanyFundingEventsRow.md +62 -0
  25. data/docs/CompanyFundingSummaryResponse.md +58 -0
  26. data/docs/CompanyFundingSummaryRow.md +46 -0
  27. data/docs/CompanyProgramsRow.md +2 -2
  28. data/docs/ConditionAdverseEventsResponse.md +58 -0
  29. data/docs/ConditionAdverseEventsRow.md +24 -0
  30. data/docs/ConditionBurdenResponse.md +58 -0
  31. data/docs/ConditionBurdenRow.md +32 -0
  32. data/docs/ConditionDeliveryResponse.md +58 -0
  33. data/docs/ConditionDeliveryRow.md +44 -0
  34. data/docs/ConditionDrugsResponse.md +58 -0
  35. data/docs/ConditionDrugsRow.md +26 -0
  36. data/docs/ConditionPrevalenceResponse.md +58 -0
  37. data/docs/ConditionPrevalenceRow.md +62 -0
  38. data/docs/ConditionPublicationsResponse.md +58 -0
  39. data/docs/ConditionPublicationsRow.md +32 -0
  40. data/docs/ConditionSitesResponse.md +58 -0
  41. data/docs/ConditionSitesRow.md +28 -0
  42. data/docs/ConditionTrialsResponse.md +58 -0
  43. data/docs/ConditionTrialsRow.md +58 -0
  44. data/docs/ConditionsApi.md +953 -0
  45. data/docs/ConditionsRecord.md +38 -0
  46. data/docs/ConditionsRecordAttributes.md +20 -0
  47. data/docs/ConditionsResponse.md +58 -0
  48. data/docs/ConditionsRow.md +32 -0
  49. data/docs/DrugPatentCliffRow.md +1 -1
  50. data/docs/InstitutionalHoldingsRow.md +3 -1
  51. data/docs/LegalEntitiesApi.md +160 -0
  52. data/docs/LegalEntitiesRow.md +1 -1
  53. data/docs/OwnershipPositionsResponse.md +58 -0
  54. data/docs/OwnershipPositionsRow.md +100 -0
  55. data/docs/PdufaDatesRow.md +2 -2
  56. data/docs/SiteCroTrialsRow.md +1 -1
  57. data/docs/SiteTrialConditionsRow.md +1 -1
  58. data/docs/SiteTrialDrugsRow.md +1 -1
  59. data/docs/SiteTrialsRow.md +1 -1
  60. data/docs/SponsorRecruitmentByPhaseRow.md +2 -2
  61. data/docs/SponsorRecruitmentDurationRow.md +1 -1
  62. data/docs/SponsorTrialsRow.md +2 -2
  63. data/docs/TrialAdverseEventsResponse.md +58 -0
  64. data/docs/TrialAdverseEventsRow.md +28 -0
  65. data/docs/TrialChangesResponse.md +58 -0
  66. data/docs/TrialChangesRow.md +36 -0
  67. data/docs/TrialDeliveryResponse.md +58 -0
  68. data/docs/TrialDeliveryRow.md +64 -0
  69. data/docs/TrialDemographicsResponse.md +58 -0
  70. data/docs/TrialDemographicsRow.md +32 -0
  71. data/docs/TrialDrugsResponse.md +58 -0
  72. data/docs/TrialDrugsRow.md +30 -0
  73. data/docs/TrialEnrollmentHistoryResponse.md +58 -0
  74. data/docs/TrialEnrollmentHistoryRow.md +36 -0
  75. data/docs/TrialEnrollmentRateResponse.md +58 -0
  76. data/docs/TrialEnrollmentRateRow.md +58 -0
  77. data/docs/TrialExtractedEndpointsResponse.md +58 -0
  78. data/docs/TrialExtractedEndpointsRow.md +40 -0
  79. data/docs/TrialOutcomeMeasuresResponse.md +58 -0
  80. data/docs/TrialOutcomeMeasuresRow.md +28 -0
  81. data/docs/TrialSitesResponse.md +58 -0
  82. data/docs/TrialSitesRow.md +46 -0
  83. data/docs/TrialsApi.md +1033 -0
  84. data/docs/TrialsRecord.md +38 -0
  85. data/docs/TrialsRecordAttributes.md +24 -0
  86. data/docs/TrialsResponse.md +58 -0
  87. data/docs/TrialsRow.md +116 -0
  88. data/lib/pharmaobservatory/api/biomarkers_api.rb +336 -0
  89. data/lib/pharmaobservatory/api/companies_api.rb +455 -0
  90. data/lib/pharmaobservatory/api/conditions_api.rb +1001 -0
  91. data/lib/pharmaobservatory/api/legal_entities_api.rb +168 -0
  92. data/lib/pharmaobservatory/api/trials_api.rb +1085 -0
  93. data/lib/pharmaobservatory/models/biomarker_bqp_assertions_row.rb +1 -1
  94. data/lib/pharmaobservatory/models/biomarker_evidence_row.rb +1 -1
  95. data/lib/pharmaobservatory/models/biomarker_literature_row.rb +1 -1
  96. data/lib/pharmaobservatory/models/biomarker_relations_response.rb +478 -0
  97. data/lib/pharmaobservatory/models/biomarker_relations_row.rb +421 -0
  98. data/lib/pharmaobservatory/models/biomarker_sample_coverage_response.rb +478 -0
  99. data/lib/pharmaobservatory/models/biomarker_sample_coverage_row.rb +322 -0
  100. data/lib/pharmaobservatory/models/biomarker_sample_prevalence_response.rb +478 -0
  101. data/lib/pharmaobservatory/models/biomarker_sample_prevalence_row.rb +436 -0
  102. data/lib/pharmaobservatory/models/biomarker_validation_response.rb +478 -0
  103. data/lib/pharmaobservatory/models/biomarker_validation_row.rb +509 -0
  104. data/lib/pharmaobservatory/models/biomarkers_row.rb +2 -2
  105. data/lib/pharmaobservatory/models/cell_lines_row.rb +1 -1
  106. data/lib/pharmaobservatory/models/companies_record.rb +1 -1
  107. data/lib/pharmaobservatory/models/companies_record_attributes.rb +220 -0
  108. data/lib/pharmaobservatory/models/companies_row.rb +29 -7
  109. data/lib/pharmaobservatory/models/company_assets_response.rb +478 -0
  110. data/lib/pharmaobservatory/models/company_assets_row.rb +355 -0
  111. data/lib/pharmaobservatory/models/company_funding_events_response.rb +478 -0
  112. data/lib/pharmaobservatory/models/company_funding_events_row.rb +465 -0
  113. data/lib/pharmaobservatory/models/company_funding_summary_response.rb +478 -0
  114. data/lib/pharmaobservatory/models/company_funding_summary_row.rb +377 -0
  115. data/lib/pharmaobservatory/models/company_programs_row.rb +2 -2
  116. data/lib/pharmaobservatory/models/condition_adverse_events_response.rb +478 -0
  117. data/lib/pharmaobservatory/models/condition_adverse_events_row.rb +256 -0
  118. data/lib/pharmaobservatory/models/condition_burden_response.rb +478 -0
  119. data/lib/pharmaobservatory/models/condition_burden_row.rb +300 -0
  120. data/lib/pharmaobservatory/models/condition_delivery_response.rb +478 -0
  121. data/lib/pharmaobservatory/models/condition_delivery_row.rb +366 -0
  122. data/lib/pharmaobservatory/models/condition_drugs_response.rb +478 -0
  123. data/lib/pharmaobservatory/models/condition_drugs_row.rb +267 -0
  124. data/lib/pharmaobservatory/models/condition_prevalence_response.rb +478 -0
  125. data/lib/pharmaobservatory/models/condition_prevalence_row.rb +465 -0
  126. data/lib/pharmaobservatory/models/condition_publications_response.rb +478 -0
  127. data/lib/pharmaobservatory/models/condition_publications_row.rb +300 -0
  128. data/lib/pharmaobservatory/models/condition_sites_response.rb +478 -0
  129. data/lib/pharmaobservatory/models/condition_sites_row.rb +278 -0
  130. data/lib/pharmaobservatory/models/condition_trials_response.rb +478 -0
  131. data/lib/pharmaobservatory/models/condition_trials_row.rb +443 -0
  132. data/lib/pharmaobservatory/models/conditions_record.rb +385 -0
  133. data/lib/pharmaobservatory/models/conditions_record_attributes.rb +229 -0
  134. data/lib/pharmaobservatory/models/conditions_response.rb +478 -0
  135. data/lib/pharmaobservatory/models/conditions_row.rb +304 -0
  136. data/lib/pharmaobservatory/models/drug_patent_cliff_row.rb +1 -1
  137. data/lib/pharmaobservatory/models/institutional_holdings_row.rb +13 -2
  138. data/lib/pharmaobservatory/models/legal_entities_row.rb +1 -1
  139. data/lib/pharmaobservatory/models/ownership_positions_response.rb +478 -0
  140. data/lib/pharmaobservatory/models/ownership_positions_row.rb +674 -0
  141. data/lib/pharmaobservatory/models/pdufa_dates_row.rb +2 -2
  142. data/lib/pharmaobservatory/models/site_cro_trials_row.rb +1 -1
  143. data/lib/pharmaobservatory/models/site_trial_conditions_row.rb +1 -1
  144. data/lib/pharmaobservatory/models/site_trial_drugs_row.rb +1 -1
  145. data/lib/pharmaobservatory/models/site_trials_row.rb +1 -1
  146. data/lib/pharmaobservatory/models/sponsor_recruitment_by_phase_row.rb +2 -2
  147. data/lib/pharmaobservatory/models/sponsor_recruitment_duration_row.rb +1 -1
  148. data/lib/pharmaobservatory/models/sponsor_trials_row.rb +2 -2
  149. data/lib/pharmaobservatory/models/trial_adverse_events_response.rb +478 -0
  150. data/lib/pharmaobservatory/models/trial_adverse_events_row.rb +278 -0
  151. data/lib/pharmaobservatory/models/trial_changes_response.rb +478 -0
  152. data/lib/pharmaobservatory/models/trial_changes_row.rb +328 -0
  153. data/lib/pharmaobservatory/models/trial_delivery_response.rb +478 -0
  154. data/lib/pharmaobservatory/models/trial_delivery_row.rb +476 -0
  155. data/lib/pharmaobservatory/models/trial_demographics_response.rb +478 -0
  156. data/lib/pharmaobservatory/models/trial_demographics_row.rb +300 -0
  157. data/lib/pharmaobservatory/models/trial_drugs_response.rb +478 -0
  158. data/lib/pharmaobservatory/models/trial_drugs_row.rb +291 -0
  159. data/lib/pharmaobservatory/models/trial_enrollment_history_response.rb +478 -0
  160. data/lib/pharmaobservatory/models/trial_enrollment_history_row.rb +322 -0
  161. data/lib/pharmaobservatory/models/trial_enrollment_rate_response.rb +478 -0
  162. data/lib/pharmaobservatory/models/trial_enrollment_rate_row.rb +443 -0
  163. data/lib/pharmaobservatory/models/trial_extracted_endpoints_response.rb +478 -0
  164. data/lib/pharmaobservatory/models/trial_extracted_endpoints_row.rb +346 -0
  165. data/lib/pharmaobservatory/models/trial_outcome_measures_response.rb +478 -0
  166. data/lib/pharmaobservatory/models/trial_outcome_measures_row.rb +278 -0
  167. data/lib/pharmaobservatory/models/trial_sites_response.rb +478 -0
  168. data/lib/pharmaobservatory/models/trial_sites_row.rb +377 -0
  169. data/lib/pharmaobservatory/models/trials_record.rb +385 -0
  170. data/lib/pharmaobservatory/models/trials_record_attributes.rb +247 -0
  171. data/lib/pharmaobservatory/models/trials_response.rb +478 -0
  172. data/lib/pharmaobservatory/models/trials_row.rb +784 -0
  173. data/lib/pharmaobservatory/version.rb +1 -1
  174. data/lib/pharmaobservatory.rb +63 -0
  175. metadata +127 -1
@@ -0,0 +1,322 @@
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 biomarker_sample_coverage dataset: one row per protein variant and GDC data release. A grouped request returns the group columns and the measures instead, as additional properties.
18
+ class BiomarkerSampleCoverageRow
19
+ # The route key of the gene the variants belong to, the entry key for the biomarkers object type.
20
+ attr_accessor :route_key
21
+
22
+ # The gene symbol.
23
+ attr_accessor :gene_symbol
24
+
25
+ # The variant's own biomarker key.
26
+ attr_accessor :variant_biomarker_id
27
+
28
+ # The variant's own route key (the id its web page uses).
29
+ attr_accessor :variant_route_key
30
+
31
+ # The protein change, for example p.V600E.
32
+ attr_accessor :amino_acid_change
33
+
34
+ # The Genomic Data Commons data release the match was made against.
35
+ attr_accessor :gdc_data_release
36
+
37
+ # How the variant matched: resolved_single_ssm, no_exact_ssm, multiple_exact_ssms or source_error.
38
+ attr_accessor :normalization_status
39
+
40
+ # Somatic mutations in the catalogue that encode the same protein change.
41
+ attr_accessor :match_count
42
+
43
+ # The reason for the status, in words.
44
+ attr_accessor :resolution_reason
45
+
46
+ # Research projects with an observed frequency for the variant in biomarker_sample_prevalence.
47
+ attr_accessor :measured_project_count
48
+
49
+ # Attribute mapping from ruby-style variable name to JSON key.
50
+ def self.attribute_map
51
+ {
52
+ :'route_key' => :'route_key',
53
+ :'gene_symbol' => :'gene_symbol',
54
+ :'variant_biomarker_id' => :'variant_biomarker_id',
55
+ :'variant_route_key' => :'variant_route_key',
56
+ :'amino_acid_change' => :'amino_acid_change',
57
+ :'gdc_data_release' => :'gdc_data_release',
58
+ :'normalization_status' => :'normalization_status',
59
+ :'match_count' => :'match_count',
60
+ :'resolution_reason' => :'resolution_reason',
61
+ :'measured_project_count' => :'measured_project_count'
62
+ }
63
+ end
64
+
65
+ # Returns attribute mapping this model knows about
66
+ def self.acceptable_attribute_map
67
+ attribute_map
68
+ end
69
+
70
+ # Returns all the JSON keys this model knows about
71
+ def self.acceptable_attributes
72
+ acceptable_attribute_map.values
73
+ end
74
+
75
+ # Attribute type mapping.
76
+ def self.openapi_types
77
+ {
78
+ :'route_key' => :'String',
79
+ :'gene_symbol' => :'String',
80
+ :'variant_biomarker_id' => :'String',
81
+ :'variant_route_key' => :'String',
82
+ :'amino_acid_change' => :'String',
83
+ :'gdc_data_release' => :'String',
84
+ :'normalization_status' => :'String',
85
+ :'match_count' => :'Integer',
86
+ :'resolution_reason' => :'String',
87
+ :'measured_project_count' => :'Integer'
88
+ }
89
+ end
90
+
91
+ # List of attributes with nullable: true
92
+ def self.openapi_nullable
93
+ Set.new([
94
+ :'route_key',
95
+ :'gene_symbol',
96
+ :'variant_biomarker_id',
97
+ :'variant_route_key',
98
+ :'amino_acid_change',
99
+ :'gdc_data_release',
100
+ :'normalization_status',
101
+ :'match_count',
102
+ :'resolution_reason',
103
+ :'measured_project_count'
104
+ ])
105
+ end
106
+
107
+ # Initializes the object
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ def initialize(attributes = {})
110
+ if (!attributes.is_a?(Hash))
111
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PharmaObservatory::BiomarkerSampleCoverageRow` initialize method"
112
+ end
113
+
114
+ # check to see if the attribute exists and convert string to symbol for hash key
115
+ acceptable_attribute_map = self.class.acceptable_attribute_map
116
+ attributes = attributes.each_with_object({}) { |(k, v), h|
117
+ if (!acceptable_attribute_map.key?(k.to_sym))
118
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PharmaObservatory::BiomarkerSampleCoverageRow`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
119
+ end
120
+ h[k.to_sym] = v
121
+ }
122
+
123
+ if attributes.key?(:'route_key')
124
+ self.route_key = attributes[:'route_key']
125
+ end
126
+
127
+ if attributes.key?(:'gene_symbol')
128
+ self.gene_symbol = attributes[:'gene_symbol']
129
+ end
130
+
131
+ if attributes.key?(:'variant_biomarker_id')
132
+ self.variant_biomarker_id = attributes[:'variant_biomarker_id']
133
+ end
134
+
135
+ if attributes.key?(:'variant_route_key')
136
+ self.variant_route_key = attributes[:'variant_route_key']
137
+ end
138
+
139
+ if attributes.key?(:'amino_acid_change')
140
+ self.amino_acid_change = attributes[:'amino_acid_change']
141
+ end
142
+
143
+ if attributes.key?(:'gdc_data_release')
144
+ self.gdc_data_release = attributes[:'gdc_data_release']
145
+ end
146
+
147
+ if attributes.key?(:'normalization_status')
148
+ self.normalization_status = attributes[:'normalization_status']
149
+ end
150
+
151
+ if attributes.key?(:'match_count')
152
+ self.match_count = attributes[:'match_count']
153
+ end
154
+
155
+ if attributes.key?(:'resolution_reason')
156
+ self.resolution_reason = attributes[:'resolution_reason']
157
+ end
158
+
159
+ if attributes.key?(:'measured_project_count')
160
+ self.measured_project_count = attributes[:'measured_project_count']
161
+ end
162
+ end
163
+
164
+ # Show invalid properties with the reasons. Usually used together with valid?
165
+ # @return Array for valid properties with the reasons
166
+ def list_invalid_properties
167
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
168
+ invalid_properties = Array.new
169
+ invalid_properties
170
+ end
171
+
172
+ # Check to see if the all the properties in the model are valid
173
+ # @return true if the model is valid
174
+ def valid?
175
+ warn '[DEPRECATED] the `valid?` method is obsolete'
176
+ true
177
+ end
178
+
179
+ # Checks equality by comparing each attribute.
180
+ # @param [Object] Object to be compared
181
+ def ==(o)
182
+ return true if self.equal?(o)
183
+ self.class == o.class &&
184
+ route_key == o.route_key &&
185
+ gene_symbol == o.gene_symbol &&
186
+ variant_biomarker_id == o.variant_biomarker_id &&
187
+ variant_route_key == o.variant_route_key &&
188
+ amino_acid_change == o.amino_acid_change &&
189
+ gdc_data_release == o.gdc_data_release &&
190
+ normalization_status == o.normalization_status &&
191
+ match_count == o.match_count &&
192
+ resolution_reason == o.resolution_reason &&
193
+ measured_project_count == o.measured_project_count
194
+ end
195
+
196
+ # @see the `==` method
197
+ # @param [Object] Object to be compared
198
+ def eql?(o)
199
+ self == o
200
+ end
201
+
202
+ # Calculates hash code according to all attributes.
203
+ # @return [Integer] Hash code
204
+ def hash
205
+ [route_key, gene_symbol, variant_biomarker_id, variant_route_key, amino_acid_change, gdc_data_release, normalization_status, match_count, resolution_reason, measured_project_count].hash
206
+ end
207
+
208
+ # Builds the object from hash
209
+ # @param [Hash] attributes Model attributes in the form of hash
210
+ # @return [Object] Returns the model itself
211
+ def self.build_from_hash(attributes)
212
+ return nil unless attributes.is_a?(Hash)
213
+ attributes = attributes.transform_keys(&:to_sym)
214
+ transformed_hash = {}
215
+ openapi_types.each_pair do |key, type|
216
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
217
+ transformed_hash["#{key}"] = nil
218
+ elsif type =~ /\AArray<(.*)>/i
219
+ # check to ensure the input is an array given that the attribute
220
+ # is documented as an array but the input is not
221
+ if attributes[attribute_map[key]].is_a?(Array)
222
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
223
+ end
224
+ elsif !attributes[attribute_map[key]].nil?
225
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
226
+ end
227
+ end
228
+ new(transformed_hash)
229
+ end
230
+
231
+ # Deserializes the data based on type
232
+ # @param string type Data type
233
+ # @param string value Value to be deserialized
234
+ # @return [Object] Deserialized data
235
+ def self._deserialize(type, value)
236
+ case type.to_sym
237
+ when :Time
238
+ Time.parse(value)
239
+ when :Date
240
+ Date.parse(value)
241
+ when :String
242
+ value.to_s
243
+ when :Integer
244
+ value.to_i
245
+ when :Float
246
+ value.to_f
247
+ when :Boolean
248
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
249
+ true
250
+ else
251
+ false
252
+ end
253
+ when :Object
254
+ # generic object (usually a Hash), return directly
255
+ value
256
+ when /\AArray<(?<inner_type>.+)>\z/
257
+ inner_type = Regexp.last_match[:inner_type]
258
+ value.map { |v| _deserialize(inner_type, v) }
259
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
260
+ k_type = Regexp.last_match[:k_type]
261
+ v_type = Regexp.last_match[:v_type]
262
+ {}.tap do |hash|
263
+ value.each do |k, v|
264
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
265
+ end
266
+ end
267
+ else # model
268
+ # models (e.g. Pet) or oneOf
269
+ klass = PharmaObservatory.const_get(type)
270
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
271
+ end
272
+ end
273
+
274
+ # Returns the string representation of the object
275
+ # @return [String] String presentation of the object
276
+ def to_s
277
+ to_hash.to_s
278
+ end
279
+
280
+ # to_body is an alias to to_hash (backward compatibility)
281
+ # @return [Hash] Returns the object in the form of hash
282
+ def to_body
283
+ to_hash
284
+ end
285
+
286
+ # Returns the object in the form of hash
287
+ # @return [Hash] Returns the object in the form of hash
288
+ def to_hash
289
+ hash = {}
290
+ self.class.attribute_map.each_pair do |attr, param|
291
+ value = self.send(attr)
292
+ if value.nil?
293
+ is_nullable = self.class.openapi_nullable.include?(attr)
294
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
295
+ end
296
+
297
+ hash[param] = _to_hash(value)
298
+ end
299
+ hash
300
+ end
301
+
302
+ # Outputs non-array value in the form of hash
303
+ # For object, use to_hash. Otherwise, just return the value
304
+ # @param [Object] value Any valid value
305
+ # @return [Hash] Returns the value in the form of hash
306
+ def _to_hash(value)
307
+ if value.is_a?(Array)
308
+ value.compact.map { |v| _to_hash(v) }
309
+ elsif value.is_a?(Hash)
310
+ {}.tap do |hash|
311
+ value.each { |k, v| hash[k] = _to_hash(v) }
312
+ end
313
+ elsif value.respond_to? :to_hash
314
+ value.to_hash
315
+ else
316
+ value
317
+ end
318
+ end
319
+
320
+ end
321
+
322
+ end