aspose_email_cloud 19.12.0 → 20.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aspose-email-cloud.rb +65 -0
  3. data/lib/aspose-email-cloud/api/email_api.rb +158 -1
  4. data/lib/aspose-email-cloud/models/ai_bcr_parse_ocr_data_rq.rb +230 -0
  5. data/lib/aspose-email-cloud/models/alternate_view.rb +279 -0
  6. data/lib/aspose-email-cloud/models/append_email_model_rq.rb +333 -0
  7. data/lib/aspose-email-cloud/models/associated_person.rb +241 -0
  8. data/lib/aspose-email-cloud/models/attachment.rb +321 -0
  9. data/lib/aspose-email-cloud/models/attachment_base.rb +251 -0
  10. data/lib/aspose-email-cloud/models/base_object.rb +86 -86
  11. data/lib/aspose-email-cloud/models/calendar_dto.rb +554 -0
  12. data/lib/aspose-email-cloud/models/calendar_dto_alternate_rq.rb +265 -0
  13. data/lib/aspose-email-cloud/models/calendar_dto_list.rb +212 -0
  14. data/lib/aspose-email-cloud/models/calendar_reminder.rb +315 -0
  15. data/lib/aspose-email-cloud/models/contact_dto.rb +696 -0
  16. data/lib/aspose-email-cloud/models/contact_dto_list.rb +212 -0
  17. data/lib/aspose-email-cloud/models/contact_photo.rb +228 -0
  18. data/lib/aspose-email-cloud/models/content_type.rb +264 -0
  19. data/lib/aspose-email-cloud/models/content_type_parameter.rb +223 -0
  20. data/lib/aspose-email-cloud/models/customer_event.rb +228 -0
  21. data/lib/aspose-email-cloud/models/email_address.rb +267 -0
  22. data/lib/aspose-email-cloud/models/email_dto.rb +678 -0
  23. data/lib/aspose-email-cloud/models/email_dto_list.rb +212 -0
  24. data/lib/aspose-email-cloud/models/enum_with_custom_of_associated_person_category.rb +227 -0
  25. data/lib/aspose-email-cloud/models/enum_with_custom_of_email_address_category.rb +227 -0
  26. data/lib/aspose-email-cloud/models/enum_with_custom_of_event_category.rb +227 -0
  27. data/lib/aspose-email-cloud/models/enum_with_custom_of_instant_messenger_category.rb +227 -0
  28. data/lib/aspose-email-cloud/models/enum_with_custom_of_phone_number_category.rb +227 -0
  29. data/lib/aspose-email-cloud/models/enum_with_custom_of_postal_address_category.rb +227 -0
  30. data/lib/aspose-email-cloud/models/enum_with_custom_of_url_category.rb +227 -0
  31. data/lib/aspose-email-cloud/models/hierarchical_object.rb +101 -101
  32. data/lib/aspose-email-cloud/models/indexed_hierarchical_object.rb +119 -119
  33. data/lib/aspose-email-cloud/models/indexed_primitive_object.rb +117 -117
  34. data/lib/aspose-email-cloud/models/instant_messenger_address.rb +241 -0
  35. data/lib/aspose-email-cloud/models/linked_resource.rb +264 -0
  36. data/lib/aspose-email-cloud/models/list_response_of_contact_dto.rb +211 -0
  37. data/lib/aspose-email-cloud/models/list_response_of_email_dto.rb +211 -0
  38. data/lib/aspose-email-cloud/models/list_response_of_storage_model_of_calendar_dto.rb +211 -0
  39. data/lib/aspose-email-cloud/models/list_response_of_storage_model_of_contact_dto.rb +211 -0
  40. data/lib/aspose-email-cloud/models/list_response_of_storage_model_of_email_dto.rb +211 -0
  41. data/lib/aspose-email-cloud/models/mail_address.rb +241 -0
  42. data/lib/aspose-email-cloud/models/phone_number.rb +241 -0
  43. data/lib/aspose-email-cloud/models/postal_address.rb +350 -0
  44. data/lib/aspose-email-cloud/models/primitive_object.rb +99 -99
  45. data/lib/aspose-email-cloud/models/reminder_attendee.rb +210 -0
  46. data/lib/aspose-email-cloud/models/reminder_trigger.rb +246 -0
  47. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_model_request_data.rb +75 -0
  48. data/lib/aspose-email-cloud/models/requests/ai_bcr_parse_ocr_data_model_request_data.rb +75 -0
  49. data/lib/aspose-email-cloud/models/requests/append_email_model_message_request_data.rb +75 -0
  50. data/lib/aspose-email-cloud/models/requests/convert_calendar_model_to_alternate_request_data.rb +75 -0
  51. data/lib/aspose-email-cloud/models/requests/convert_email_request_data.rb +83 -0
  52. data/lib/aspose-email-cloud/models/requests/fetch_email_model_request_data.rb +93 -0
  53. data/lib/aspose-email-cloud/models/requests/get_calendar_model_as_alternate_request_data.rb +91 -0
  54. data/lib/aspose-email-cloud/models/requests/get_calendar_model_list_request_data.rb +85 -0
  55. data/lib/aspose-email-cloud/models/requests/get_calendar_model_request_data.rb +81 -0
  56. data/lib/aspose-email-cloud/models/requests/get_contact_model_list_request_data.rb +87 -0
  57. data/lib/aspose-email-cloud/models/requests/get_contact_model_request_data.rb +88 -0
  58. data/lib/aspose-email-cloud/models/requests/get_email_as_file_request_data.rb +88 -0
  59. data/lib/aspose-email-cloud/models/requests/get_email_model_list_request_data.rb +87 -0
  60. data/lib/aspose-email-cloud/models/requests/get_email_model_request_data.rb +88 -0
  61. data/lib/aspose-email-cloud/models/requests/list_email_messages_request_data.rb +1 -1
  62. data/lib/aspose-email-cloud/models/requests/list_email_models_request_data.rb +105 -0
  63. data/lib/aspose-email-cloud/models/requests/save_calendar_model_request_data.rb +82 -0
  64. data/lib/aspose-email-cloud/models/requests/save_contact_model_request_data.rb +89 -0
  65. data/lib/aspose-email-cloud/models/requests/save_email_model_request_data.rb +89 -0
  66. data/lib/aspose-email-cloud/models/requests/send_email_model_request_data.rb +75 -0
  67. data/lib/aspose-email-cloud/models/send_email_model_rq.rb +273 -0
  68. data/lib/aspose-email-cloud/models/storage_model_of_calendar_dto.rb +222 -0
  69. data/lib/aspose-email-cloud/models/storage_model_of_contact_dto.rb +222 -0
  70. data/lib/aspose-email-cloud/models/storage_model_of_email_dto.rb +222 -0
  71. data/lib/aspose-email-cloud/models/storage_model_rq_of_calendar_dto.rb +222 -0
  72. data/lib/aspose-email-cloud/models/storage_model_rq_of_contact_dto.rb +222 -0
  73. data/lib/aspose-email-cloud/models/storage_model_rq_of_email_dto.rb +222 -0
  74. data/lib/aspose-email-cloud/models/url.rb +241 -0
  75. data/lib/aspose-email-cloud/models/value_response.rb +1 -1
  76. data/lib/aspose-email-cloud/version.rb +1 -1
  77. metadata +67 -2
@@ -0,0 +1,265 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="CalendarDtoAlternateRq.rb">
3
+ # Copyright (c) 2018-2019 Aspose Pty Ltd. All rights reserved.
4
+ # </copyright>
5
+ # <summary>
6
+ # Permission is hereby granted, free of charge, to any person obtaining a
7
+ # copy of this software and associated documentation files (the "Software"),
8
+ # to deal in the Software without restriction, including without limitation
9
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
+ # and/or sell copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ # DEALINGS IN THE SOFTWARE.
23
+ # </summary>
24
+ # ----------------------------------------------------------------------------
25
+
26
+
27
+ require 'date'
28
+
29
+ module AsposeEmailCloud
30
+ # iCalendar document as AlternateView request
31
+ class CalendarDtoAlternateRq
32
+ # iCalendar document model
33
+ # @return [CalendarDto]
34
+ attr_accessor :value
35
+
36
+ # iCalendar actions. Enum, available values: Create, Update, Cancel
37
+ # @return [String]
38
+ attr_accessor :action
39
+
40
+ # iCalendar sequence id
41
+ # @return [String]
42
+ attr_accessor :sequence_id
43
+
44
+ # Attribute mapping from ruby-style variable name to JSON key.
45
+ def self.attribute_map
46
+ {
47
+ :'value' => :'value',
48
+ :'action' => :'action',
49
+ :'sequence_id' => :'sequenceId'
50
+ }
51
+ end
52
+
53
+ # Attribute type mapping.
54
+ def self.swagger_types
55
+ {
56
+ :'value' => :'CalendarDto',
57
+ :'action' => :'String',
58
+ :'sequence_id' => :'String'
59
+ }
60
+ end
61
+
62
+ # Initializes the object
63
+ # @param [Hash] attributes Model attributes in the form of hash
64
+ def initialize(attributes = {})
65
+ return unless attributes.is_a?(Hash)
66
+
67
+ # convert string to symbol for hash key
68
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
69
+
70
+ if attributes.has_key?(:'value')
71
+ self.value = attributes[:'value']
72
+ end
73
+
74
+ if attributes.has_key?(:'action')
75
+ self.action = attributes[:'action']
76
+ end
77
+
78
+ if attributes.has_key?(:'sequenceId')
79
+ self.sequence_id = attributes[:'sequenceId']
80
+ end
81
+ end
82
+
83
+ # Initializes the object
84
+ # @param [CalendarDto] value iCalendar document model
85
+ # @param [String] action iCalendar actions. Enum, available values: Create, Update, Cancel
86
+ # @param [String] sequence_id iCalendar sequence id
87
+ def initialize(value=nil, action=nil, sequence_id=nil)
88
+ self.value = value if value
89
+ self.action = action if action
90
+ self.sequence_id = sequence_id if sequence_id
91
+ end
92
+
93
+ # Show invalid properties with the reasons. Usually used together with valid?
94
+ # @return Array for valid properties with the reasons
95
+ def list_invalid_properties
96
+ invalid_properties = Array.new
97
+ if @value.nil?
98
+ invalid_properties.push('invalid value for "value", value cannot be nil.')
99
+ end
100
+
101
+ if @action.nil?
102
+ invalid_properties.push('invalid value for "action", action cannot be nil.')
103
+ end
104
+
105
+ if @action.to_s.length < 1
106
+ invalid_properties.push('invalid value for "action", the character length must be great than or equal to 1.')
107
+ end
108
+
109
+ invalid_properties
110
+ end
111
+
112
+ # Check to see if the all the properties in the model are valid
113
+ # @return true if the model is valid
114
+ def valid?
115
+ return false if @value.nil?
116
+ return false if @action.nil?
117
+ return false if @action.to_s.length < 1
118
+ true
119
+ end
120
+
121
+ # Custom attribute writer method with validation
122
+ # @param [Object] action Value to be assigned
123
+ def action=(action)
124
+ if action.nil?
125
+ fail ArgumentError, 'action cannot be nil'
126
+ end
127
+
128
+ if action.to_s.length < 1
129
+ fail ArgumentError, 'invalid value for "action", the character length must be great than or equal to 1.'
130
+ end
131
+
132
+ @action = action
133
+ end
134
+
135
+ # Checks equality by comparing each attribute.
136
+ # @param [Object] Object to be compared
137
+ def ==(o)
138
+ return true if self.equal?(o)
139
+ self.class == o.class &&
140
+ value == o.value &&
141
+ action == o.action &&
142
+ sequence_id == o.sequence_id
143
+ end
144
+
145
+ # @see the `==` method
146
+ # @param [Object] Object to be compared
147
+ def eql?(o)
148
+ self == o
149
+ end
150
+
151
+ # Calculates hash code according to all attributes.
152
+ # @return [Fixnum] Hash code
153
+ def hash
154
+ [value, action, sequence_id].hash
155
+ end
156
+
157
+ # Builds the object from hash
158
+ # @param [Hash] attributes Model attributes in the form of hash
159
+ # @return [Object] Returns the model itself
160
+ def build_from_hash(attributes)
161
+ return nil unless attributes.is_a?(Hash)
162
+ self.class.swagger_types.each_pair do |key, type|
163
+ attribute_key = self.class.attribute_map[key]
164
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
165
+ if type =~ /\AArray<(.*)>/i
166
+ # check to ensure the input is an array given that the the attribute
167
+ # is documented as an array but the input is not
168
+ if attributes[attribute_key].is_a?(Array)
169
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
170
+ end
171
+ elsif !attributes[attribute_key].nil?
172
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
173
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
174
+ end
175
+
176
+ self
177
+ end
178
+
179
+ # Deserializes the data based on type
180
+ # @param string type Data type
181
+ # @param string value Value to be deserialized
182
+ # @return [Object] Deserialized data
183
+ def _deserialize(type, value)
184
+ case type.to_sym
185
+ when :DateTime
186
+ DateTime.parse(value)
187
+ when :Date
188
+ Date.parse(value)
189
+ when :String
190
+ value.to_s
191
+ when :Integer
192
+ value.to_i
193
+ when :Float
194
+ value.to_f
195
+ when :BOOLEAN
196
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
197
+ true
198
+ else
199
+ false
200
+ end
201
+ when :Object
202
+ # generic object (usually a Hash), return directly
203
+ value
204
+ when /\AArray<(?<inner_type>.+)>\z/
205
+ inner_type = Regexp.last_match[:inner_type]
206
+ value.map { |v| _deserialize(inner_type, v) }
207
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
208
+ k_type = Regexp.last_match[:k_type]
209
+ v_type = Regexp.last_match[:v_type]
210
+ {}.tap do |hash|
211
+ value.each do |k, v|
212
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
213
+ end
214
+ end
215
+ else # model
216
+ type = value[:type] || type
217
+ temp_model = AsposeEmailCloud.const_get(type).new
218
+ temp_model.build_from_hash(value)
219
+ end
220
+ end
221
+
222
+ # Returns the string representation of the object
223
+ # @return [String] String presentation of the object
224
+ def to_s
225
+ to_hash.to_s
226
+ end
227
+
228
+ # to_body is an alias to to_hash (backward compatibility)
229
+ # @return [Hash] Returns the object in the form of hash
230
+ def to_body
231
+ to_hash
232
+ end
233
+
234
+ # Returns the object in the form of hash
235
+ # @return [Hash] Returns the object in the form of hash
236
+ def to_hash
237
+ hash = {}
238
+ self.class.attribute_map.each_pair do |attr, param|
239
+ value = self.send(attr)
240
+ next if value.nil?
241
+ hash[param] = _to_hash(value)
242
+ end
243
+ hash
244
+ end
245
+
246
+ # Outputs non-array value in the form of hash
247
+ # For object, use to_hash. Otherwise, just return the value
248
+ # @param [Object] value Any valid value
249
+ # @return [Hash] Returns the value in the form of hash
250
+ def _to_hash(value)
251
+ if value.is_a?(Array)
252
+ value.compact.map { |v| _to_hash(v) }
253
+ elsif value.is_a?(Hash)
254
+ {}.tap do |hash|
255
+ value.each { |k, v| hash[k] = _to_hash(v) }
256
+ end
257
+ elsif value.respond_to? :to_hash
258
+ value.to_hash
259
+ else
260
+ value
261
+ end
262
+ end
263
+
264
+ end
265
+ end
@@ -0,0 +1,212 @@
1
+ # ----------------------------------------------------------------------------
2
+ # <copyright company="Aspose" file="CalendarDtoList.rb">
3
+ # Copyright (c) 2018-2019 Aspose Pty Ltd. All rights reserved.
4
+ # </copyright>
5
+ # <summary>
6
+ # Permission is hereby granted, free of charge, to any person obtaining a
7
+ # copy of this software and associated documentation files (the "Software"),
8
+ # to deal in the Software without restriction, including without limitation
9
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
10
+ # and/or sell copies of the Software, and to permit persons to whom the
11
+ # Software is furnished to do so, subject to the following conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included in
14
+ # all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22
+ # DEALINGS IN THE SOFTWARE.
23
+ # </summary>
24
+ # ----------------------------------------------------------------------------
25
+
26
+
27
+ require 'date'
28
+
29
+ module AsposeEmailCloud
30
+ # List of iCalendar documents
31
+ class CalendarDtoList
32
+
33
+ # @return [Array<StorageModelOfCalendarDto>]
34
+ attr_accessor :value
35
+
36
+ # Attribute mapping from ruby-style variable name to JSON key.
37
+ def self.attribute_map
38
+ {
39
+ :'value' => :'value'
40
+ }
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ def self.swagger_types
45
+ {
46
+ :'value' => :'Array<StorageModelOfCalendarDto>'
47
+ }
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ return unless attributes.is_a?(Hash)
54
+
55
+ # convert string to symbol for hash key
56
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
57
+
58
+ if attributes.has_key?(:'value')
59
+ if (value = attributes[:'value']).is_a?(Array)
60
+ self.value = value
61
+ end
62
+ end
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param [Array<StorageModelOfCalendarDto>] value
67
+ def initialize(value=nil)
68
+ self.value = value if value
69
+ end
70
+
71
+ # Show invalid properties with the reasons. Usually used together with valid?
72
+ # @return Array for valid properties with the reasons
73
+ def list_invalid_properties
74
+ invalid_properties = Array.new
75
+ invalid_properties
76
+ end
77
+
78
+ # Check to see if the all the properties in the model are valid
79
+ # @return true if the model is valid
80
+ def valid?
81
+ true
82
+ end
83
+
84
+ # Checks equality by comparing each attribute.
85
+ # @param [Object] Object to be compared
86
+ def ==(o)
87
+ return true if self.equal?(o)
88
+ self.class == o.class &&
89
+ value == o.value
90
+ end
91
+
92
+ # @see the `==` method
93
+ # @param [Object] Object to be compared
94
+ def eql?(o)
95
+ self == o
96
+ end
97
+
98
+ # Calculates hash code according to all attributes.
99
+ # @return [Fixnum] Hash code
100
+ def hash
101
+ [value].hash
102
+ end
103
+
104
+ # Builds the object from hash
105
+ # @param [Hash] attributes Model attributes in the form of hash
106
+ # @return [Object] Returns the model itself
107
+ def build_from_hash(attributes)
108
+ return nil unless attributes.is_a?(Hash)
109
+ self.class.swagger_types.each_pair do |key, type|
110
+ attribute_key = self.class.attribute_map[key]
111
+ attribute_key = (attribute_key[0, 1].downcase + attribute_key[1..-1]).to_sym
112
+ if type =~ /\AArray<(.*)>/i
113
+ # check to ensure the input is an array given that the the attribute
114
+ # is documented as an array but the input is not
115
+ if attributes[attribute_key].is_a?(Array)
116
+ self.send("#{key}=", attributes[attribute_key].map { |v| _deserialize($1, v) })
117
+ end
118
+ elsif !attributes[attribute_key].nil?
119
+ self.send("#{key}=", _deserialize(type, attributes[attribute_key]))
120
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
121
+ end
122
+
123
+ self
124
+ end
125
+
126
+ # Deserializes the data based on type
127
+ # @param string type Data type
128
+ # @param string value Value to be deserialized
129
+ # @return [Object] Deserialized data
130
+ def _deserialize(type, value)
131
+ case type.to_sym
132
+ when :DateTime
133
+ DateTime.parse(value)
134
+ when :Date
135
+ Date.parse(value)
136
+ when :String
137
+ value.to_s
138
+ when :Integer
139
+ value.to_i
140
+ when :Float
141
+ value.to_f
142
+ when :BOOLEAN
143
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
144
+ true
145
+ else
146
+ false
147
+ end
148
+ when :Object
149
+ # generic object (usually a Hash), return directly
150
+ value
151
+ when /\AArray<(?<inner_type>.+)>\z/
152
+ inner_type = Regexp.last_match[:inner_type]
153
+ value.map { |v| _deserialize(inner_type, v) }
154
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
155
+ k_type = Regexp.last_match[:k_type]
156
+ v_type = Regexp.last_match[:v_type]
157
+ {}.tap do |hash|
158
+ value.each do |k, v|
159
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
160
+ end
161
+ end
162
+ else # model
163
+ type = value[:type] || type
164
+ temp_model = AsposeEmailCloud.const_get(type).new
165
+ temp_model.build_from_hash(value)
166
+ end
167
+ end
168
+
169
+ # Returns the string representation of the object
170
+ # @return [String] String presentation of the object
171
+ def to_s
172
+ to_hash.to_s
173
+ end
174
+
175
+ # to_body is an alias to to_hash (backward compatibility)
176
+ # @return [Hash] Returns the object in the form of hash
177
+ def to_body
178
+ to_hash
179
+ end
180
+
181
+ # Returns the object in the form of hash
182
+ # @return [Hash] Returns the object in the form of hash
183
+ def to_hash
184
+ hash = {}
185
+ self.class.attribute_map.each_pair do |attr, param|
186
+ value = self.send(attr)
187
+ next if value.nil?
188
+ hash[param] = _to_hash(value)
189
+ end
190
+ hash
191
+ end
192
+
193
+ # Outputs non-array value in the form of hash
194
+ # For object, use to_hash. Otherwise, just return the value
195
+ # @param [Object] value Any valid value
196
+ # @return [Hash] Returns the value in the form of hash
197
+ def _to_hash(value)
198
+ if value.is_a?(Array)
199
+ value.compact.map { |v| _to_hash(v) }
200
+ elsif value.is_a?(Hash)
201
+ {}.tap do |hash|
202
+ value.each { |k, v| hash[k] = _to_hash(v) }
203
+ end
204
+ elsif value.respond_to? :to_hash
205
+ value.to_hash
206
+ else
207
+ value
208
+ end
209
+ end
210
+
211
+ end
212
+ end