fastcomments 1.2.0 → 1.2.1

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 (136) hide show
  1. checksums.yaml +4 -4
  2. data/client/README.md +27 -0
  3. data/client/docs/APIComment.md +1 -1
  4. data/client/docs/APICommentBase.md +1 -1
  5. data/client/docs/APICommentBaseMeta.md +20 -0
  6. data/client/docs/APITicket.md +34 -0
  7. data/client/docs/APITicketDetail.md +42 -0
  8. data/client/docs/APITicketFile.md +36 -0
  9. data/client/docs/APIUserSubscription.md +2 -0
  10. data/client/docs/ChangeTicketState200Response.md +34 -0
  11. data/client/docs/ChangeTicketStateBody.md +18 -0
  12. data/client/docs/ChangeTicketStateResponse.md +20 -0
  13. data/client/docs/CommentData.md +3 -1
  14. data/client/docs/CreateAPIUserSubscriptionData.md +2 -0
  15. data/client/docs/CreateCommentParams.md +2 -0
  16. data/client/docs/CreateTenantPackageBody.md +2 -0
  17. data/client/docs/CreateTicket200Response.md +34 -0
  18. data/client/docs/CreateTicketBody.md +18 -0
  19. data/client/docs/CreateTicketResponse.md +20 -0
  20. data/client/docs/CustomConfigParameters.md +21 -1
  21. data/client/docs/DefaultApi.md +384 -0
  22. data/client/docs/FComment.md +3 -1
  23. data/client/docs/FCommentMeta.md +2 -0
  24. data/client/docs/GetTicket200Response.md +36 -0
  25. data/client/docs/GetTicketResponse.md +22 -0
  26. data/client/docs/GetTickets200Response.md +34 -0
  27. data/client/docs/GetTicketsResponse.md +20 -0
  28. data/client/docs/HeaderAccountNotification.md +34 -0
  29. data/client/docs/HeaderState.md +3 -1
  30. data/client/docs/MentionAutoCompleteMode.md +15 -0
  31. data/client/docs/Moderator.md +3 -1
  32. data/client/docs/PublicApi.md +3 -1
  33. data/client/docs/ReplaceTenantPackageBody.md +2 -0
  34. data/client/docs/SearchUsers200Response.md +2 -0
  35. data/client/docs/SearchUsersSectionedResponse.md +20 -0
  36. data/client/docs/TOSConfig.md +22 -0
  37. data/client/docs/TenantPackage.md +4 -0
  38. data/client/docs/UpdatableCommentParams.md +1 -1
  39. data/client/docs/UpdateAPIUserSubscriptionData.md +18 -0
  40. data/client/docs/UpdateSubscriptionAPIResponse.md +24 -0
  41. data/client/docs/UpdateTenantPackageBody.md +2 -0
  42. data/client/docs/User.md +17 -1
  43. data/client/docs/UserBadge.md +3 -1
  44. data/client/docs/UserBadgeProgress.md +3 -1
  45. data/client/docs/UserSearchSection.md +15 -0
  46. data/client/docs/UserSearchSectionResult.md +20 -0
  47. data/client/docs/UserSessionInfo.md +2 -0
  48. data/client/lib/fastcomments-client/api/default_api.rb +383 -0
  49. data/client/lib/fastcomments-client/api/public_api.rb +7 -0
  50. data/client/lib/fastcomments-client/models/api_comment.rb +1 -1
  51. data/client/lib/fastcomments-client/models/api_comment_base.rb +1 -1
  52. data/client/lib/fastcomments-client/models/api_comment_base_meta.rb +156 -0
  53. data/client/lib/fastcomments-client/models/api_ticket.rb +374 -0
  54. data/client/lib/fastcomments-client/models/api_ticket_detail.rb +432 -0
  55. data/client/lib/fastcomments-client/models/api_ticket_file.rb +381 -0
  56. data/client/lib/fastcomments-client/models/api_user_subscription.rb +10 -1
  57. data/client/lib/fastcomments-client/models/change_ticket_state200_response.rb +103 -0
  58. data/client/lib/fastcomments-client/models/change_ticket_state_body.rb +164 -0
  59. data/client/lib/fastcomments-client/models/change_ticket_state_response.rb +212 -0
  60. data/client/lib/fastcomments-client/models/comment_data.rb +13 -4
  61. data/client/lib/fastcomments-client/models/create_api_user_subscription_data.rb +10 -1
  62. data/client/lib/fastcomments-client/models/create_comment_params.rb +10 -1
  63. data/client/lib/fastcomments-client/models/create_tenant_package_body.rb +10 -1
  64. data/client/lib/fastcomments-client/models/create_ticket200_response.rb +103 -0
  65. data/client/lib/fastcomments-client/models/create_ticket_body.rb +164 -0
  66. data/client/lib/fastcomments-client/models/create_ticket_response.rb +212 -0
  67. data/client/lib/fastcomments-client/models/custom_config_parameters.rb +97 -4
  68. data/client/lib/fastcomments-client/models/f_comment.rb +13 -4
  69. data/client/lib/fastcomments-client/models/f_comment_meta.rb +10 -1
  70. data/client/lib/fastcomments-client/models/get_ticket200_response.rb +103 -0
  71. data/client/lib/fastcomments-client/models/get_ticket_response.rb +240 -0
  72. data/client/lib/fastcomments-client/models/get_tickets200_response.rb +103 -0
  73. data/client/lib/fastcomments-client/models/get_tickets_response.rb +214 -0
  74. data/client/lib/fastcomments-client/models/header_account_notification.rb +322 -0
  75. data/client/lib/fastcomments-client/models/header_state.rb +32 -4
  76. data/client/lib/fastcomments-client/models/mention_auto_complete_mode.rb +41 -0
  77. data/client/lib/fastcomments-client/models/moderator.rb +14 -5
  78. data/client/lib/fastcomments-client/models/replace_tenant_package_body.rb +10 -1
  79. data/client/lib/fastcomments-client/models/search_users200_response.rb +2 -1
  80. data/client/lib/fastcomments-client/models/search_users_sectioned_response.rb +214 -0
  81. data/client/lib/fastcomments-client/models/tenant_package.rb +36 -1
  82. data/client/lib/fastcomments-client/models/tos_config.rb +168 -0
  83. data/client/lib/fastcomments-client/models/updatable_comment_params.rb +1 -1
  84. data/client/lib/fastcomments-client/models/update_api_user_subscription_data.rb +147 -0
  85. data/client/lib/fastcomments-client/models/update_subscription_api_response.rb +191 -0
  86. data/client/lib/fastcomments-client/models/update_tenant_package_body.rb +10 -1
  87. data/client/lib/fastcomments-client/models/user.rb +76 -4
  88. data/client/lib/fastcomments-client/models/user_badge.rb +14 -4
  89. data/client/lib/fastcomments-client/models/user_badge_progress.rb +13 -4
  90. data/client/lib/fastcomments-client/models/user_search_section.rb +41 -0
  91. data/client/lib/fastcomments-client/models/user_search_section_result.rb +214 -0
  92. data/client/lib/fastcomments-client/models/user_session_info.rb +10 -1
  93. data/client/lib/fastcomments-client.rb +22 -0
  94. data/client/spec/api/default_api_spec.rb +64 -0
  95. data/client/spec/api/public_api_spec.rb +1 -0
  96. data/client/spec/models/api_comment_base_meta_spec.rb +42 -0
  97. data/client/spec/models/api_ticket_detail_spec.rb +108 -0
  98. data/client/spec/models/api_ticket_file_spec.rb +90 -0
  99. data/client/spec/models/api_ticket_spec.rb +84 -0
  100. data/client/spec/models/api_user_subscription_spec.rb +6 -0
  101. data/client/spec/models/change_ticket_state200_response_spec.rb +21 -0
  102. data/client/spec/models/change_ticket_state_body_spec.rb +36 -0
  103. data/client/spec/models/change_ticket_state_response_spec.rb +42 -0
  104. data/client/spec/models/comment_data_spec.rb +6 -0
  105. data/client/spec/models/create_api_user_subscription_data_spec.rb +6 -0
  106. data/client/spec/models/create_comment_params_spec.rb +6 -0
  107. data/client/spec/models/create_tenant_package_body_spec.rb +6 -0
  108. data/client/spec/models/create_ticket200_response_spec.rb +21 -0
  109. data/client/spec/models/create_ticket_body_spec.rb +36 -0
  110. data/client/spec/models/create_ticket_response_spec.rb +42 -0
  111. data/client/spec/models/custom_config_parameters_spec.rb +60 -0
  112. data/client/spec/models/f_comment_meta_spec.rb +6 -0
  113. data/client/spec/models/f_comment_spec.rb +6 -0
  114. data/client/spec/models/get_ticket200_response_spec.rb +21 -0
  115. data/client/spec/models/get_ticket_response_spec.rb +48 -0
  116. data/client/spec/models/get_tickets200_response_spec.rb +21 -0
  117. data/client/spec/models/get_tickets_response_spec.rb +42 -0
  118. data/client/spec/models/header_account_notification_spec.rb +84 -0
  119. data/client/spec/models/header_state_spec.rb +6 -0
  120. data/client/spec/models/mention_auto_complete_mode_spec.rb +30 -0
  121. data/client/spec/models/moderator_spec.rb +6 -0
  122. data/client/spec/models/replace_tenant_package_body_spec.rb +6 -0
  123. data/client/spec/models/search_users_sectioned_response_spec.rb +42 -0
  124. data/client/spec/models/tenant_package_spec.rb +12 -0
  125. data/client/spec/models/tos_config_spec.rb +48 -0
  126. data/client/spec/models/update_api_user_subscription_data_spec.rb +36 -0
  127. data/client/spec/models/update_subscription_api_response_spec.rb +54 -0
  128. data/client/spec/models/update_tenant_package_body_spec.rb +6 -0
  129. data/client/spec/models/user_badge_progress_spec.rb +6 -0
  130. data/client/spec/models/user_badge_spec.rb +6 -0
  131. data/client/spec/models/user_search_section_result_spec.rb +42 -0
  132. data/client/spec/models/user_search_section_spec.rb +30 -0
  133. data/client/spec/models/user_session_info_spec.rb +6 -0
  134. data/client/spec/models/user_spec.rb +48 -0
  135. data/lib/fastcomments.rb +1 -1
  136. metadata +68 -2
@@ -0,0 +1,432 @@
1
+ =begin
2
+ #fastcomments
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: 0.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FastCommentsClient
17
+ class APITicketDetail < ApiModelBase
18
+ attr_accessor :_id
19
+
20
+ attr_accessor :url_id
21
+
22
+ attr_accessor :user_id
23
+
24
+ attr_accessor :managed_by_tenant_id
25
+
26
+ attr_accessor :assigned_user_ids
27
+
28
+ attr_accessor :subject
29
+
30
+ attr_accessor :created_at
31
+
32
+ attr_accessor :state
33
+
34
+ attr_accessor :file_count
35
+
36
+ attr_accessor :files
37
+
38
+ attr_accessor :reopened_at
39
+
40
+ attr_accessor :resolved_at
41
+
42
+ attr_accessor :ack_at
43
+
44
+ # Attribute mapping from ruby-style variable name to JSON key.
45
+ def self.attribute_map
46
+ {
47
+ :'_id' => :'_id',
48
+ :'url_id' => :'urlId',
49
+ :'user_id' => :'userId',
50
+ :'managed_by_tenant_id' => :'managedByTenantId',
51
+ :'assigned_user_ids' => :'assignedUserIds',
52
+ :'subject' => :'subject',
53
+ :'created_at' => :'createdAt',
54
+ :'state' => :'state',
55
+ :'file_count' => :'fileCount',
56
+ :'files' => :'files',
57
+ :'reopened_at' => :'reopenedAt',
58
+ :'resolved_at' => :'resolvedAt',
59
+ :'ack_at' => :'ackAt'
60
+ }
61
+ end
62
+
63
+ # Returns attribute mapping this model knows about
64
+ def self.acceptable_attribute_map
65
+ attribute_map
66
+ end
67
+
68
+ # Returns all the JSON keys this model knows about
69
+ def self.acceptable_attributes
70
+ acceptable_attribute_map.values
71
+ end
72
+
73
+ # Attribute type mapping.
74
+ def self.openapi_types
75
+ {
76
+ :'_id' => :'String',
77
+ :'url_id' => :'String',
78
+ :'user_id' => :'String',
79
+ :'managed_by_tenant_id' => :'String',
80
+ :'assigned_user_ids' => :'Array<String>',
81
+ :'subject' => :'String',
82
+ :'created_at' => :'String',
83
+ :'state' => :'Integer',
84
+ :'file_count' => :'Integer',
85
+ :'files' => :'Array<APITicketFile>',
86
+ :'reopened_at' => :'String',
87
+ :'resolved_at' => :'String',
88
+ :'ack_at' => :'String'
89
+ }
90
+ end
91
+
92
+ # List of attributes with nullable: true
93
+ def self.openapi_nullable
94
+ Set.new([
95
+ :'reopened_at',
96
+ :'resolved_at',
97
+ :'ack_at'
98
+ ])
99
+ end
100
+
101
+ # Initializes the object
102
+ # @param [Hash] attributes Model attributes in the form of hash
103
+ def initialize(attributes = {})
104
+ if (!attributes.is_a?(Hash))
105
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FastCommentsClient::APITicketDetail` initialize method"
106
+ end
107
+
108
+ # check to see if the attribute exists and convert string to symbol for hash key
109
+ acceptable_attribute_map = self.class.acceptable_attribute_map
110
+ attributes = attributes.each_with_object({}) { |(k, v), h|
111
+ if (!acceptable_attribute_map.key?(k.to_sym))
112
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FastCommentsClient::APITicketDetail`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
113
+ end
114
+ h[k.to_sym] = v
115
+ }
116
+
117
+ if attributes.key?(:'_id')
118
+ self._id = attributes[:'_id']
119
+ else
120
+ self._id = nil
121
+ end
122
+
123
+ if attributes.key?(:'url_id')
124
+ self.url_id = attributes[:'url_id']
125
+ else
126
+ self.url_id = nil
127
+ end
128
+
129
+ if attributes.key?(:'user_id')
130
+ self.user_id = attributes[:'user_id']
131
+ else
132
+ self.user_id = nil
133
+ end
134
+
135
+ if attributes.key?(:'managed_by_tenant_id')
136
+ self.managed_by_tenant_id = attributes[:'managed_by_tenant_id']
137
+ else
138
+ self.managed_by_tenant_id = nil
139
+ end
140
+
141
+ if attributes.key?(:'assigned_user_ids')
142
+ if (value = attributes[:'assigned_user_ids']).is_a?(Array)
143
+ self.assigned_user_ids = value
144
+ end
145
+ else
146
+ self.assigned_user_ids = nil
147
+ end
148
+
149
+ if attributes.key?(:'subject')
150
+ self.subject = attributes[:'subject']
151
+ else
152
+ self.subject = nil
153
+ end
154
+
155
+ if attributes.key?(:'created_at')
156
+ self.created_at = attributes[:'created_at']
157
+ else
158
+ self.created_at = nil
159
+ end
160
+
161
+ if attributes.key?(:'state')
162
+ self.state = attributes[:'state']
163
+ else
164
+ self.state = nil
165
+ end
166
+
167
+ if attributes.key?(:'file_count')
168
+ self.file_count = attributes[:'file_count']
169
+ else
170
+ self.file_count = nil
171
+ end
172
+
173
+ if attributes.key?(:'files')
174
+ if (value = attributes[:'files']).is_a?(Array)
175
+ self.files = value
176
+ end
177
+ else
178
+ self.files = nil
179
+ end
180
+
181
+ if attributes.key?(:'reopened_at')
182
+ self.reopened_at = attributes[:'reopened_at']
183
+ end
184
+
185
+ if attributes.key?(:'resolved_at')
186
+ self.resolved_at = attributes[:'resolved_at']
187
+ end
188
+
189
+ if attributes.key?(:'ack_at')
190
+ self.ack_at = attributes[:'ack_at']
191
+ end
192
+ end
193
+
194
+ # Show invalid properties with the reasons. Usually used together with valid?
195
+ # @return Array for valid properties with the reasons
196
+ def list_invalid_properties
197
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
198
+ invalid_properties = Array.new
199
+ if @_id.nil?
200
+ invalid_properties.push('invalid value for "_id", _id cannot be nil.')
201
+ end
202
+
203
+ if @url_id.nil?
204
+ invalid_properties.push('invalid value for "url_id", url_id cannot be nil.')
205
+ end
206
+
207
+ if @user_id.nil?
208
+ invalid_properties.push('invalid value for "user_id", user_id cannot be nil.')
209
+ end
210
+
211
+ if @managed_by_tenant_id.nil?
212
+ invalid_properties.push('invalid value for "managed_by_tenant_id", managed_by_tenant_id cannot be nil.')
213
+ end
214
+
215
+ if @assigned_user_ids.nil?
216
+ invalid_properties.push('invalid value for "assigned_user_ids", assigned_user_ids cannot be nil.')
217
+ end
218
+
219
+ if @subject.nil?
220
+ invalid_properties.push('invalid value for "subject", subject cannot be nil.')
221
+ end
222
+
223
+ if @created_at.nil?
224
+ invalid_properties.push('invalid value for "created_at", created_at cannot be nil.')
225
+ end
226
+
227
+ if @state.nil?
228
+ invalid_properties.push('invalid value for "state", state cannot be nil.')
229
+ end
230
+
231
+ if @file_count.nil?
232
+ invalid_properties.push('invalid value for "file_count", file_count cannot be nil.')
233
+ end
234
+
235
+ if @files.nil?
236
+ invalid_properties.push('invalid value for "files", files cannot be nil.')
237
+ end
238
+
239
+ invalid_properties
240
+ end
241
+
242
+ # Check to see if the all the properties in the model are valid
243
+ # @return true if the model is valid
244
+ def valid?
245
+ warn '[DEPRECATED] the `valid?` method is obsolete'
246
+ return false if @_id.nil?
247
+ return false if @url_id.nil?
248
+ return false if @user_id.nil?
249
+ return false if @managed_by_tenant_id.nil?
250
+ return false if @assigned_user_ids.nil?
251
+ return false if @subject.nil?
252
+ return false if @created_at.nil?
253
+ return false if @state.nil?
254
+ return false if @file_count.nil?
255
+ return false if @files.nil?
256
+ true
257
+ end
258
+
259
+ # Custom attribute writer method with validation
260
+ # @param [Object] _id Value to be assigned
261
+ def _id=(_id)
262
+ if _id.nil?
263
+ fail ArgumentError, '_id cannot be nil'
264
+ end
265
+
266
+ @_id = _id
267
+ end
268
+
269
+ # Custom attribute writer method with validation
270
+ # @param [Object] url_id Value to be assigned
271
+ def url_id=(url_id)
272
+ if url_id.nil?
273
+ fail ArgumentError, 'url_id cannot be nil'
274
+ end
275
+
276
+ @url_id = url_id
277
+ end
278
+
279
+ # Custom attribute writer method with validation
280
+ # @param [Object] user_id Value to be assigned
281
+ def user_id=(user_id)
282
+ if user_id.nil?
283
+ fail ArgumentError, 'user_id cannot be nil'
284
+ end
285
+
286
+ @user_id = user_id
287
+ end
288
+
289
+ # Custom attribute writer method with validation
290
+ # @param [Object] managed_by_tenant_id Value to be assigned
291
+ def managed_by_tenant_id=(managed_by_tenant_id)
292
+ if managed_by_tenant_id.nil?
293
+ fail ArgumentError, 'managed_by_tenant_id cannot be nil'
294
+ end
295
+
296
+ @managed_by_tenant_id = managed_by_tenant_id
297
+ end
298
+
299
+ # Custom attribute writer method with validation
300
+ # @param [Object] assigned_user_ids Value to be assigned
301
+ def assigned_user_ids=(assigned_user_ids)
302
+ if assigned_user_ids.nil?
303
+ fail ArgumentError, 'assigned_user_ids cannot be nil'
304
+ end
305
+
306
+ @assigned_user_ids = assigned_user_ids
307
+ end
308
+
309
+ # Custom attribute writer method with validation
310
+ # @param [Object] subject Value to be assigned
311
+ def subject=(subject)
312
+ if subject.nil?
313
+ fail ArgumentError, 'subject cannot be nil'
314
+ end
315
+
316
+ @subject = subject
317
+ end
318
+
319
+ # Custom attribute writer method with validation
320
+ # @param [Object] created_at Value to be assigned
321
+ def created_at=(created_at)
322
+ if created_at.nil?
323
+ fail ArgumentError, 'created_at cannot be nil'
324
+ end
325
+
326
+ @created_at = created_at
327
+ end
328
+
329
+ # Custom attribute writer method with validation
330
+ # @param [Object] state Value to be assigned
331
+ def state=(state)
332
+ if state.nil?
333
+ fail ArgumentError, 'state cannot be nil'
334
+ end
335
+
336
+ @state = state
337
+ end
338
+
339
+ # Custom attribute writer method with validation
340
+ # @param [Object] file_count Value to be assigned
341
+ def file_count=(file_count)
342
+ if file_count.nil?
343
+ fail ArgumentError, 'file_count cannot be nil'
344
+ end
345
+
346
+ @file_count = file_count
347
+ end
348
+
349
+ # Custom attribute writer method with validation
350
+ # @param [Object] files Value to be assigned
351
+ def files=(files)
352
+ if files.nil?
353
+ fail ArgumentError, 'files cannot be nil'
354
+ end
355
+
356
+ @files = files
357
+ end
358
+
359
+ # Checks equality by comparing each attribute.
360
+ # @param [Object] Object to be compared
361
+ def ==(o)
362
+ return true if self.equal?(o)
363
+ self.class == o.class &&
364
+ _id == o._id &&
365
+ url_id == o.url_id &&
366
+ user_id == o.user_id &&
367
+ managed_by_tenant_id == o.managed_by_tenant_id &&
368
+ assigned_user_ids == o.assigned_user_ids &&
369
+ subject == o.subject &&
370
+ created_at == o.created_at &&
371
+ state == o.state &&
372
+ file_count == o.file_count &&
373
+ files == o.files &&
374
+ reopened_at == o.reopened_at &&
375
+ resolved_at == o.resolved_at &&
376
+ ack_at == o.ack_at
377
+ end
378
+
379
+ # @see the `==` method
380
+ # @param [Object] Object to be compared
381
+ def eql?(o)
382
+ self == o
383
+ end
384
+
385
+ # Calculates hash code according to all attributes.
386
+ # @return [Integer] Hash code
387
+ def hash
388
+ [_id, url_id, user_id, managed_by_tenant_id, assigned_user_ids, subject, created_at, state, file_count, files, reopened_at, resolved_at, ack_at].hash
389
+ end
390
+
391
+ # Builds the object from hash
392
+ # @param [Hash] attributes Model attributes in the form of hash
393
+ # @return [Object] Returns the model itself
394
+ def self.build_from_hash(attributes)
395
+ return nil unless attributes.is_a?(Hash)
396
+ attributes = attributes.transform_keys(&:to_sym)
397
+ transformed_hash = {}
398
+ openapi_types.each_pair do |key, type|
399
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
400
+ transformed_hash["#{key}"] = nil
401
+ elsif type =~ /\AArray<(.*)>/i
402
+ # check to ensure the input is an array given that the attribute
403
+ # is documented as an array but the input is not
404
+ if attributes[attribute_map[key]].is_a?(Array)
405
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
406
+ end
407
+ elsif !attributes[attribute_map[key]].nil?
408
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
409
+ end
410
+ end
411
+ new(transformed_hash)
412
+ end
413
+
414
+ # Returns the object in the form of hash
415
+ # @return [Hash] Returns the object in the form of hash
416
+ def to_hash
417
+ hash = {}
418
+ self.class.attribute_map.each_pair do |attr, param|
419
+ value = self.send(attr)
420
+ if value.nil?
421
+ is_nullable = self.class.openapi_nullable.include?(attr)
422
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
423
+ end
424
+
425
+ hash[param] = _to_hash(value)
426
+ end
427
+ hash
428
+ end
429
+
430
+ end
431
+
432
+ end