purecloudplatformclientv2 22.0.0 → 23.0.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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/docs/ActivityCode.md +8 -5
  4. data/docs/ActivityCodeContainer.md +1 -0
  5. data/docs/AdherenceSettings.md +1 -1
  6. data/docs/ArchitectApi.md +14 -14
  7. data/docs/AuthorizationApi.md +3 -1
  8. data/docs/BatchDownloadJobResult.md +20 -0
  9. data/docs/BatchDownloadJobStatusResult.md +20 -0
  10. data/docs/BatchDownloadJobSubmission.md +13 -0
  11. data/docs/BatchDownloadJobSubmissionResult.md +15 -0
  12. data/docs/BatchDownloadRequest.md +14 -0
  13. data/docs/Call.md +2 -0
  14. data/docs/CallBasic.md +2 -0
  15. data/docs/CallForwardingNotification.md +17 -0
  16. data/docs/CallForwardingNotificationCall.md +13 -0
  17. data/docs/CallForwardingNotificationCalls.md +13 -0
  18. data/docs/CallForwardingNotificationTarget.md +14 -0
  19. data/docs/CallForwardingNotificationTargets.md +14 -0
  20. data/docs/CallForwardingNotificationUser.md +13 -0
  21. data/docs/CallRoute.md +0 -1
  22. data/docs/{SignedData.md → ContactColumnTimeZone.md} +2 -3
  23. data/docs/CreateActivityCodeRequest.md +18 -0
  24. data/docs/CreateQueueRequest.md +12 -11
  25. data/docs/ExternalContact.md +1 -0
  26. data/docs/IgnoredActivityCategories.md +13 -0
  27. data/docs/ManagementUnit.md +4 -3
  28. data/docs/ManagementUnitSettings.md +1 -3
  29. data/docs/MessageDetails.md +1 -0
  30. data/docs/MessageMedia.md +14 -0
  31. data/docs/MoveAgentResponse.md +14 -0
  32. data/docs/MoveAgentsRequest.md +14 -0
  33. data/docs/MoveAgentsResponse.md +15 -0
  34. data/docs/NTPSettings.md +13 -0
  35. data/docs/OrganizationAuthorizationApi.md +2 -2
  36. data/docs/OutOfOfficeNotification.md +1 -0
  37. data/docs/OutboundApi.md +63 -0
  38. data/docs/Queue.md +12 -11
  39. data/docs/Recording.md +1 -0
  40. data/docs/RecordingApi.md +120 -0
  41. data/docs/RecordingMessagingMessage.md +18 -0
  42. data/docs/RoutingApi.md +2 -2
  43. data/docs/SchedulingSettings.md +1 -0
  44. data/docs/ShrinkageOverride.md +14 -0
  45. data/docs/ShrinkageOverrides.md +14 -0
  46. data/docs/Site.md +1 -0
  47. data/docs/TrustCreate.md +2 -1
  48. data/docs/TrustGroup.md +26 -0
  49. data/docs/{TrustUserCreate.md → TrustMemberCreate.md} +4 -4
  50. data/docs/TrustRequest.md +2 -1
  51. data/docs/TrustRequestCreate.md +2 -1
  52. data/docs/UserQueue.md +12 -11
  53. data/docs/WfmVersionedEntityMetadata.md +15 -0
  54. data/docs/WorkforceManagementApi.md +128 -3
  55. data/docs/{Entity.md → WrapUpCodeReference.md} +2 -2
  56. data/lib/purecloudplatformclientv2.rb +26 -4
  57. data/lib/purecloudplatformclientv2/api/architect_api.rb +6 -6
  58. data/lib/purecloudplatformclientv2/api/authorization_api.rb +9 -0
  59. data/lib/purecloudplatformclientv2/api/outbound_api.rb +75 -0
  60. data/lib/purecloudplatformclientv2/api/recording_api.rb +130 -0
  61. data/lib/purecloudplatformclientv2/api/workforce_management_api.rb +138 -2
  62. data/lib/purecloudplatformclientv2/api_client.rb +1 -1
  63. data/lib/purecloudplatformclientv2/models/activity_code.rb +95 -12
  64. data/lib/purecloudplatformclientv2/models/activity_code_container.rb +35 -4
  65. data/lib/purecloudplatformclientv2/models/adherence_settings.rb +2 -4
  66. data/lib/purecloudplatformclientv2/models/batch_download_job_result.rb +383 -0
  67. data/lib/purecloudplatformclientv2/models/batch_download_job_status_result.rb +385 -0
  68. data/lib/purecloudplatformclientv2/models/batch_download_job_submission.rb +209 -0
  69. data/lib/purecloudplatformclientv2/models/batch_download_job_submission_result.rb +253 -0
  70. data/lib/purecloudplatformclientv2/models/batch_download_request.rb +228 -0
  71. data/lib/purecloudplatformclientv2/models/call.rb +56 -4
  72. data/lib/purecloudplatformclientv2/models/call_basic.rb +56 -4
  73. data/lib/purecloudplatformclientv2/models/call_forwarding_notification.rb +303 -0
  74. data/lib/purecloudplatformclientv2/models/call_forwarding_notification_call.rb +203 -0
  75. data/lib/purecloudplatformclientv2/models/call_forwarding_notification_calls.rb +203 -0
  76. data/lib/purecloudplatformclientv2/models/call_forwarding_notification_target.rb +226 -0
  77. data/lib/purecloudplatformclientv2/models/call_forwarding_notification_targets.rb +226 -0
  78. data/lib/purecloudplatformclientv2/models/{signed_data.rb → call_forwarding_notification_user.rb} +8 -8
  79. data/lib/purecloudplatformclientv2/models/call_route.rb +4 -30
  80. data/lib/purecloudplatformclientv2/models/contact_column_time_zone.rb +176 -0
  81. data/lib/purecloudplatformclientv2/models/create_activity_code_request.rb +358 -0
  82. data/lib/purecloudplatformclientv2/models/create_queue_request.rb +38 -12
  83. data/lib/purecloudplatformclientv2/models/dependency.rb +2 -2
  84. data/lib/purecloudplatformclientv2/models/dependency_object.rb +2 -2
  85. data/lib/purecloudplatformclientv2/models/event_message.rb +2 -2
  86. data/lib/purecloudplatformclientv2/models/external_contact.rb +26 -1
  87. data/lib/purecloudplatformclientv2/models/ignored_activity_categories.rb +204 -0
  88. data/lib/purecloudplatformclientv2/models/management_unit.rb +36 -5
  89. data/lib/purecloudplatformclientv2/models/management_unit_settings.rb +9 -61
  90. data/lib/purecloudplatformclientv2/models/message_details.rb +32 -4
  91. data/lib/purecloudplatformclientv2/models/message_media.rb +228 -0
  92. data/lib/purecloudplatformclientv2/models/move_agent_response.rb +243 -0
  93. data/lib/purecloudplatformclientv2/models/move_agents_request.rb +236 -0
  94. data/lib/purecloudplatformclientv2/models/move_agents_response.rb +257 -0
  95. data/lib/purecloudplatformclientv2/models/ntp_settings.rb +204 -0
  96. data/lib/purecloudplatformclientv2/models/out_of_office_notification.rb +26 -1
  97. data/lib/purecloudplatformclientv2/models/prediction_results.rb +2 -2
  98. data/lib/purecloudplatformclientv2/models/queue.rb +38 -12
  99. data/lib/purecloudplatformclientv2/models/recording.rb +29 -1
  100. data/lib/purecloudplatformclientv2/models/recording_messaging_message.rb +327 -0
  101. data/lib/purecloudplatformclientv2/models/scheduling_settings.rb +30 -4
  102. data/lib/purecloudplatformclientv2/models/shrinkage_override.rb +233 -0
  103. data/lib/purecloudplatformclientv2/models/shrinkage_overrides.rb +230 -0
  104. data/lib/purecloudplatformclientv2/models/site.rb +27 -1
  105. data/lib/purecloudplatformclientv2/models/trust_create.rb +32 -9
  106. data/lib/purecloudplatformclientv2/models/trust_group.rb +603 -0
  107. data/lib/purecloudplatformclientv2/models/{trust_user_create.rb → trust_member_create.rb} +3 -3
  108. data/lib/purecloudplatformclientv2/models/trust_request.rb +28 -5
  109. data/lib/purecloudplatformclientv2/models/trust_request_create.rb +32 -9
  110. data/lib/purecloudplatformclientv2/models/user_queue.rb +38 -12
  111. data/lib/purecloudplatformclientv2/models/wfm_versioned_entity_metadata.rb +260 -0
  112. data/lib/purecloudplatformclientv2/models/{entity.rb → wrap_up_code_reference.rb} +1 -1
  113. data/lib/purecloudplatformclientv2/version.rb +1 -1
  114. metadata +54 -10
  115. data/docs/SignedDataApi.md +0 -73
  116. data/lib/purecloudplatformclientv2/api/signed_data_api.rb +0 -90
@@ -0,0 +1,385 @@
1
+ =begin
2
+ PureCloud Platform API
3
+
4
+ With the PureCloud Platform API, you can control all aspects of your PureCloud environment. With the APIs you can access the system configuration, manage conversations and more.
5
+
6
+ OpenAPI spec version: v2
7
+ Contact: DeveloperEvangelists@genesys.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ License: ININ
11
+ http://www.inin.com
12
+
13
+ Terms of Service: https://developer.mypurecloud.com/tos
14
+
15
+ =end
16
+
17
+ require 'date'
18
+
19
+ module PureCloud
20
+ class BatchDownloadJobStatusResult
21
+ # The globally unique identifier for the object.
22
+ attr_accessor :id
23
+
24
+ attr_accessor :name
25
+
26
+ # JobId returned when job was initially submitted
27
+ attr_accessor :job_id
28
+
29
+ # Number of results expected when job is completed
30
+ attr_accessor :expected_result_count
31
+
32
+ # Current number of results available
33
+ attr_accessor :result_count
34
+
35
+ # Number of error results produced so far
36
+ attr_accessor :error_count
37
+
38
+ # Current set of results for the job
39
+ attr_accessor :results
40
+
41
+ # The URI for this object
42
+ attr_accessor :self_uri
43
+
44
+ # Attribute mapping from ruby-style variable name to JSON key.
45
+ def self.attribute_map
46
+ {
47
+
48
+ :'id' => :'id',
49
+
50
+ :'name' => :'name',
51
+
52
+ :'job_id' => :'jobId',
53
+
54
+ :'expected_result_count' => :'expectedResultCount',
55
+
56
+ :'result_count' => :'resultCount',
57
+
58
+ :'error_count' => :'errorCount',
59
+
60
+ :'results' => :'results',
61
+
62
+ :'self_uri' => :'selfUri'
63
+
64
+ }
65
+ end
66
+
67
+ # Attribute type mapping.
68
+ def self.swagger_types
69
+ {
70
+
71
+ :'id' => :'String',
72
+
73
+ :'name' => :'String',
74
+
75
+ :'job_id' => :'String',
76
+
77
+ :'expected_result_count' => :'Integer',
78
+
79
+ :'result_count' => :'Integer',
80
+
81
+ :'error_count' => :'Integer',
82
+
83
+ :'results' => :'Array<BatchDownloadJobResult>',
84
+
85
+ :'self_uri' => :'String'
86
+
87
+ }
88
+ end
89
+
90
+ # Initializes the object
91
+ # @param [Hash] attributes Model attributes in the form of hash
92
+ def initialize(attributes = {})
93
+ return unless attributes.is_a?(Hash)
94
+
95
+ # convert string to symbol for hash key
96
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
97
+
98
+
99
+ if attributes.has_key?(:'id')
100
+
101
+
102
+ self.id = attributes[:'id']
103
+
104
+
105
+ end
106
+
107
+
108
+ if attributes.has_key?(:'name')
109
+
110
+
111
+ self.name = attributes[:'name']
112
+
113
+
114
+ end
115
+
116
+
117
+ if attributes.has_key?(:'jobId')
118
+
119
+
120
+ self.job_id = attributes[:'jobId']
121
+
122
+
123
+ end
124
+
125
+
126
+ if attributes.has_key?(:'expectedResultCount')
127
+
128
+
129
+ self.expected_result_count = attributes[:'expectedResultCount']
130
+
131
+
132
+ end
133
+
134
+
135
+ if attributes.has_key?(:'resultCount')
136
+
137
+
138
+ self.result_count = attributes[:'resultCount']
139
+
140
+
141
+ end
142
+
143
+
144
+ if attributes.has_key?(:'errorCount')
145
+
146
+
147
+ self.error_count = attributes[:'errorCount']
148
+
149
+
150
+ end
151
+
152
+
153
+ if attributes.has_key?(:'results')
154
+
155
+ if (value = attributes[:'results']).is_a?(Array)
156
+ self.results = value
157
+ end
158
+
159
+
160
+
161
+ end
162
+
163
+
164
+ if attributes.has_key?(:'selfUri')
165
+
166
+
167
+ self.self_uri = attributes[:'selfUri']
168
+
169
+
170
+ end
171
+
172
+
173
+ end
174
+
175
+ # Show invalid properties with the reasons. Usually used together with valid?
176
+ # @return Array for valid properies with the reasons
177
+ def list_invalid_properties
178
+ invalid_properties = Array.new
179
+
180
+
181
+ return invalid_properties
182
+ end
183
+
184
+ # Check to see if the all the properties in the model are valid
185
+ # @return true if the model is valid
186
+ def valid?
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+ end
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+ # Checks equality by comparing each attribute.
264
+ # @param [Object] Object to be compared
265
+ def ==(o)
266
+ return true if self.equal?(o)
267
+ self.class == o.class &&
268
+ id == o.id &&
269
+ name == o.name &&
270
+ job_id == o.job_id &&
271
+ expected_result_count == o.expected_result_count &&
272
+ result_count == o.result_count &&
273
+ error_count == o.error_count &&
274
+ results == o.results &&
275
+ self_uri == o.self_uri
276
+ end
277
+
278
+ # @see the `==` method
279
+ # @param [Object] Object to be compared
280
+ def eql?(o)
281
+ self == o
282
+ end
283
+
284
+ # Calculates hash code according to all attributes.
285
+ # @return [Fixnum] Hash code
286
+ def hash
287
+ [id, name, job_id, expected_result_count, result_count, error_count, results, self_uri].hash
288
+ end
289
+
290
+ # build the object from hash
291
+ def build_from_hash(attributes)
292
+ return nil unless attributes.is_a?(Hash)
293
+ self.class.swagger_types.each_pair do |key, type|
294
+ if type =~ /^Array<(.*)>/i
295
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
296
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
297
+ else
298
+ #TODO show warning in debug mode
299
+ end
300
+ elsif !attributes[self.class.attribute_map[key]].nil?
301
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
302
+ else
303
+ # data not found in attributes(hash), not an issue as the data can be optional
304
+ end
305
+ end
306
+
307
+ self
308
+ end
309
+
310
+ def _deserialize(type, value)
311
+ case type.to_sym
312
+ when :DateTime
313
+ DateTime.parse(value)
314
+ when :Date
315
+ Date.parse(value)
316
+ when :String
317
+ value.to_s
318
+ when :Integer
319
+ value.to_i
320
+ when :Float
321
+ value.to_f
322
+ when :BOOLEAN
323
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
324
+ true
325
+ else
326
+ false
327
+ end
328
+ when :Object
329
+ # generic object (usually a Hash), return directly
330
+ value
331
+ when /\AArray<(?<inner_type>.+)>\z/
332
+ inner_type = Regexp.last_match[:inner_type]
333
+ value.map { |v| _deserialize(inner_type, v) }
334
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
335
+ k_type = Regexp.last_match[:k_type]
336
+ v_type = Regexp.last_match[:v_type]
337
+ {}.tap do |hash|
338
+ value.each do |k, v|
339
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
340
+ end
341
+ end
342
+ else # model
343
+ _model = Object.const_get("PureCloud").const_get(type).new
344
+ _model.build_from_hash(value)
345
+ end
346
+ end
347
+
348
+ def to_s
349
+ to_hash.to_s
350
+ end
351
+
352
+ # to_body is an alias to to_body (backward compatibility))
353
+ def to_body
354
+ to_hash
355
+ end
356
+
357
+ # return the object in the form of hash
358
+ def to_hash
359
+ hash = {}
360
+ self.class.attribute_map.each_pair do |attr, param|
361
+ value = self.send(attr)
362
+ next if value.nil?
363
+ hash[param] = _to_hash(value)
364
+ end
365
+ hash
366
+ end
367
+
368
+ # Method to output non-array value in the form of hash
369
+ # For object, use to_hash. Otherwise, just return the value
370
+ def _to_hash(value)
371
+ if value.is_a?(Array)
372
+ value.compact.map{ |v| _to_hash(v) }
373
+ elsif value.is_a?(Hash)
374
+ {}.tap do |hash|
375
+ value.each { |k, v| hash[k] = _to_hash(v) }
376
+ end
377
+ elsif value.respond_to? :to_hash
378
+ value.to_hash
379
+ else
380
+ value
381
+ end
382
+ end
383
+
384
+ end
385
+ end
@@ -0,0 +1,209 @@
1
+ =begin
2
+ PureCloud Platform API
3
+
4
+ With the PureCloud Platform API, you can control all aspects of your PureCloud environment. With the APIs you can access the system configuration, manage conversations and more.
5
+
6
+ OpenAPI spec version: v2
7
+ Contact: DeveloperEvangelists@genesys.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ License: ININ
11
+ http://www.inin.com
12
+
13
+ Terms of Service: https://developer.mypurecloud.com/tos
14
+
15
+ =end
16
+
17
+ require 'date'
18
+
19
+ module PureCloud
20
+ class BatchDownloadJobSubmission
21
+ # List of items requested
22
+ attr_accessor :batch_download_request_list
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+
28
+ :'batch_download_request_list' => :'batchDownloadRequestList'
29
+
30
+ }
31
+ end
32
+
33
+ # Attribute type mapping.
34
+ def self.swagger_types
35
+ {
36
+
37
+ :'batch_download_request_list' => :'Array<BatchDownloadRequest>'
38
+
39
+ }
40
+ end
41
+
42
+ # Initializes the object
43
+ # @param [Hash] attributes Model attributes in the form of hash
44
+ def initialize(attributes = {})
45
+ return unless attributes.is_a?(Hash)
46
+
47
+ # convert string to symbol for hash key
48
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
49
+
50
+
51
+ if attributes.has_key?(:'batchDownloadRequestList')
52
+
53
+ if (value = attributes[:'batchDownloadRequestList']).is_a?(Array)
54
+ self.batch_download_request_list = value
55
+ end
56
+
57
+
58
+
59
+ end
60
+
61
+
62
+ end
63
+
64
+ # Show invalid properties with the reasons. Usually used together with valid?
65
+ # @return Array for valid properies with the reasons
66
+ def list_invalid_properties
67
+ invalid_properties = Array.new
68
+
69
+
70
+ return invalid_properties
71
+ end
72
+
73
+ # Check to see if the all the properties in the model are valid
74
+ # @return true if the model is valid
75
+ def valid?
76
+
77
+
78
+ if @batch_download_request_list.nil?
79
+ return false
80
+ end
81
+
82
+
83
+
84
+
85
+
86
+ end
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+ # Checks equality by comparing each attribute.
95
+ # @param [Object] Object to be compared
96
+ def ==(o)
97
+ return true if self.equal?(o)
98
+ self.class == o.class &&
99
+ batch_download_request_list == o.batch_download_request_list
100
+ end
101
+
102
+ # @see the `==` method
103
+ # @param [Object] Object to be compared
104
+ def eql?(o)
105
+ self == o
106
+ end
107
+
108
+ # Calculates hash code according to all attributes.
109
+ # @return [Fixnum] Hash code
110
+ def hash
111
+ [batch_download_request_list].hash
112
+ end
113
+
114
+ # build the object from hash
115
+ def build_from_hash(attributes)
116
+ return nil unless attributes.is_a?(Hash)
117
+ self.class.swagger_types.each_pair do |key, type|
118
+ if type =~ /^Array<(.*)>/i
119
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
120
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
121
+ else
122
+ #TODO show warning in debug mode
123
+ end
124
+ elsif !attributes[self.class.attribute_map[key]].nil?
125
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
126
+ else
127
+ # data not found in attributes(hash), not an issue as the data can be optional
128
+ end
129
+ end
130
+
131
+ self
132
+ end
133
+
134
+ def _deserialize(type, value)
135
+ case type.to_sym
136
+ when :DateTime
137
+ DateTime.parse(value)
138
+ when :Date
139
+ Date.parse(value)
140
+ when :String
141
+ value.to_s
142
+ when :Integer
143
+ value.to_i
144
+ when :Float
145
+ value.to_f
146
+ when :BOOLEAN
147
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
148
+ true
149
+ else
150
+ false
151
+ end
152
+ when :Object
153
+ # generic object (usually a Hash), return directly
154
+ value
155
+ when /\AArray<(?<inner_type>.+)>\z/
156
+ inner_type = Regexp.last_match[:inner_type]
157
+ value.map { |v| _deserialize(inner_type, v) }
158
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
159
+ k_type = Regexp.last_match[:k_type]
160
+ v_type = Regexp.last_match[:v_type]
161
+ {}.tap do |hash|
162
+ value.each do |k, v|
163
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
164
+ end
165
+ end
166
+ else # model
167
+ _model = Object.const_get("PureCloud").const_get(type).new
168
+ _model.build_from_hash(value)
169
+ end
170
+ end
171
+
172
+ def to_s
173
+ to_hash.to_s
174
+ end
175
+
176
+ # to_body is an alias to to_body (backward compatibility))
177
+ def to_body
178
+ to_hash
179
+ end
180
+
181
+ # return the object in the form of hash
182
+ def to_hash
183
+ hash = {}
184
+ self.class.attribute_map.each_pair do |attr, param|
185
+ value = self.send(attr)
186
+ next if value.nil?
187
+ hash[param] = _to_hash(value)
188
+ end
189
+ hash
190
+ end
191
+
192
+ # Method to output non-array value in the form of hash
193
+ # For object, use to_hash. Otherwise, just return the value
194
+ def _to_hash(value)
195
+ if value.is_a?(Array)
196
+ value.compact.map{ |v| _to_hash(v) }
197
+ elsif value.is_a?(Hash)
198
+ {}.tap do |hash|
199
+ value.each { |k, v| hash[k] = _to_hash(v) }
200
+ end
201
+ elsif value.respond_to? :to_hash
202
+ value.to_hash
203
+ else
204
+ value
205
+ end
206
+ end
207
+
208
+ end
209
+ end