purecloudplatformclientv2 17.0.0 → 18.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 (120) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/docs/AnalyticsConversation.md +5 -5
  4. data/docs/AnalyticsConversationSegment.md +9 -9
  5. data/docs/AnalyticsEvaluation.md +10 -10
  6. data/docs/AnalyticsParticipant.md +7 -7
  7. data/docs/AnalyticsSession.md +27 -27
  8. data/docs/BillingApi.md +75 -0
  9. data/docs/BillingUsage.md +15 -0
  10. data/docs/BillingUsageReport.md +18 -0
  11. data/docs/BillingUsageResource.md +14 -0
  12. data/docs/CallCommand.md +1 -0
  13. data/docs/Conversation.md +1 -1
  14. data/docs/CreateQueueRequest.md +9 -9
  15. data/docs/DID.md +9 -9
  16. data/docs/DIDPool.md +9 -9
  17. data/docs/DirectoryUserDevicesListing.md +22 -0
  18. data/docs/DomainCertificateAuthority.md +9 -9
  19. data/docs/DomainLogicalInterface.md +9 -9
  20. data/docs/DomainOrganizationRole.md +1 -1
  21. data/docs/DomainOrganizationRoleCreate.md +1 -1
  22. data/docs/DomainOrganizationRoleUpdate.md +1 -1
  23. data/docs/DomainPhysicalInterface.md +9 -9
  24. data/docs/DomainSchemaReference.md +9 -9
  25. data/docs/Edge.md +10 -10
  26. data/docs/EdgeGroup.md +9 -9
  27. data/docs/EdgeLine.md +9 -9
  28. data/docs/EdgeLogsJob.md +9 -9
  29. data/docs/EdgeLogsJobFile.md +9 -9
  30. data/docs/EdgeLogsJobResponse.md +9 -9
  31. data/docs/EdgeTrunkBase.md +9 -9
  32. data/docs/Endpoint.md +9 -9
  33. data/docs/Extension.md +9 -9
  34. data/docs/ExtensionPool.md +9 -9
  35. data/docs/IVR.md +9 -9
  36. data/docs/JsonNode.md +4 -4
  37. data/docs/Line.md +9 -9
  38. data/docs/LineBase.md +9 -9
  39. data/docs/Metabase.md +8 -8
  40. data/docs/MobileDevicesApi.md +320 -0
  41. data/docs/NumberPlan.md +9 -9
  42. data/docs/OutboundApi.md +113 -0
  43. data/docs/OutboundRoute.md +9 -9
  44. data/docs/OutboundRouteBase.md +9 -9
  45. data/docs/OutboundSettings.md +20 -0
  46. data/docs/Phone.md +9 -9
  47. data/docs/PhoneBase.md +9 -9
  48. data/docs/Queue.md +9 -9
  49. data/docs/Schedule.md +10 -10
  50. data/docs/ScheduleGroup.md +10 -10
  51. data/docs/SchemaCategory.md +9 -9
  52. data/docs/Site.md +9 -9
  53. data/docs/Trunk.md +9 -9
  54. data/docs/TrunkBase.md +9 -9
  55. data/docs/UserDevice.md +22 -0
  56. data/docs/UserQueue.md +9 -9
  57. data/docs/UsersApi.md +1 -1
  58. data/lib/purecloudplatformclientv2.rb +8 -0
  59. data/lib/purecloudplatformclientv2/api/billing_api.rb +104 -0
  60. data/lib/purecloudplatformclientv2/api/mobile_devices_api.rb +380 -0
  61. data/lib/purecloudplatformclientv2/api/outbound_api.rb +119 -0
  62. data/lib/purecloudplatformclientv2/api/users_api.rb +2 -2
  63. data/lib/purecloudplatformclientv2/api_client.rb +1 -1
  64. data/lib/purecloudplatformclientv2/models/analytics_conversation.rb +5 -2
  65. data/lib/purecloudplatformclientv2/models/analytics_conversation_segment.rb +9 -2
  66. data/lib/purecloudplatformclientv2/models/analytics_evaluation.rb +10 -0
  67. data/lib/purecloudplatformclientv2/models/analytics_participant.rb +7 -0
  68. data/lib/purecloudplatformclientv2/models/analytics_session.rb +42 -2
  69. data/lib/purecloudplatformclientv2/models/billing_usage.rb +271 -0
  70. data/lib/purecloudplatformclientv2/models/billing_usage_report.rb +348 -0
  71. data/lib/purecloudplatformclientv2/models/billing_usage_resource.rb +238 -0
  72. data/lib/purecloudplatformclientv2/models/call_command.rb +30 -4
  73. data/lib/purecloudplatformclientv2/models/conversation.rb +1 -1
  74. data/lib/purecloudplatformclientv2/models/create_queue_request.rb +9 -2
  75. data/lib/purecloudplatformclientv2/models/did.rb +9 -2
  76. data/lib/purecloudplatformclientv2/models/did_pool.rb +9 -2
  77. data/lib/purecloudplatformclientv2/models/directory_user_devices_listing.rb +428 -0
  78. data/lib/purecloudplatformclientv2/models/domain_certificate_authority.rb +9 -2
  79. data/lib/purecloudplatformclientv2/models/domain_logical_interface.rb +9 -2
  80. data/lib/purecloudplatformclientv2/models/domain_organization_role.rb +12 -12
  81. data/lib/purecloudplatformclientv2/models/domain_organization_role_create.rb +12 -12
  82. data/lib/purecloudplatformclientv2/models/domain_organization_role_update.rb +12 -12
  83. data/lib/purecloudplatformclientv2/models/domain_physical_interface.rb +9 -2
  84. data/lib/purecloudplatformclientv2/models/domain_schema_reference.rb +9 -2
  85. data/lib/purecloudplatformclientv2/models/edge.rb +10 -2
  86. data/lib/purecloudplatformclientv2/models/edge_group.rb +9 -2
  87. data/lib/purecloudplatformclientv2/models/edge_line.rb +9 -2
  88. data/lib/purecloudplatformclientv2/models/edge_logs_job.rb +9 -2
  89. data/lib/purecloudplatformclientv2/models/edge_logs_job_file.rb +9 -2
  90. data/lib/purecloudplatformclientv2/models/edge_logs_job_response.rb +9 -2
  91. data/lib/purecloudplatformclientv2/models/edge_trunk_base.rb +9 -2
  92. data/lib/purecloudplatformclientv2/models/endpoint.rb +9 -2
  93. data/lib/purecloudplatformclientv2/models/extension.rb +9 -2
  94. data/lib/purecloudplatformclientv2/models/extension_pool.rb +9 -2
  95. data/lib/purecloudplatformclientv2/models/intraday_data_group.rb +2 -2
  96. data/lib/purecloudplatformclientv2/models/intraday_data_update_notification_intraday_data_group.rb +2 -2
  97. data/lib/purecloudplatformclientv2/models/intraday_data_update_notification_intraday_data_groupings.rb +2 -2
  98. data/lib/purecloudplatformclientv2/models/ivr.rb +9 -2
  99. data/lib/purecloudplatformclientv2/models/json_node.rb +72 -72
  100. data/lib/purecloudplatformclientv2/models/line.rb +9 -2
  101. data/lib/purecloudplatformclientv2/models/line_base.rb +9 -2
  102. data/lib/purecloudplatformclientv2/models/metabase.rb +8 -2
  103. data/lib/purecloudplatformclientv2/models/number_plan.rb +9 -2
  104. data/lib/purecloudplatformclientv2/models/outbound_route.rb +9 -2
  105. data/lib/purecloudplatformclientv2/models/outbound_route_base.rb +9 -2
  106. data/lib/purecloudplatformclientv2/models/outbound_settings.rb +383 -0
  107. data/lib/purecloudplatformclientv2/models/phone.rb +9 -2
  108. data/lib/purecloudplatformclientv2/models/phone_base.rb +9 -2
  109. data/lib/purecloudplatformclientv2/models/queue.rb +9 -2
  110. data/lib/purecloudplatformclientv2/models/recording.rb +2 -2
  111. data/lib/purecloudplatformclientv2/models/schedule.rb +15 -2
  112. data/lib/purecloudplatformclientv2/models/schedule_group.rb +15 -2
  113. data/lib/purecloudplatformclientv2/models/schema_category.rb +9 -2
  114. data/lib/purecloudplatformclientv2/models/site.rb +9 -2
  115. data/lib/purecloudplatformclientv2/models/trunk.rb +9 -2
  116. data/lib/purecloudplatformclientv2/models/trunk_base.rb +9 -2
  117. data/lib/purecloudplatformclientv2/models/user_device.rb +478 -0
  118. data/lib/purecloudplatformclientv2/models/user_queue.rb +9 -2
  119. data/lib/purecloudplatformclientv2/version.rb +1 -1
  120. metadata +19 -3
@@ -21,11 +21,16 @@ module PureCloud
21
21
  # The phone number to dial for this call.
22
22
  attr_accessor :call_number
23
23
 
24
+ # For a dialer preview or scheduled callback, the phone column associated with the phone number
25
+ attr_accessor :phone_column
26
+
24
27
  # Attribute mapping from ruby-style variable name to JSON key.
25
28
  def self.attribute_map
26
29
  {
27
30
 
28
- :'call_number' => :'callNumber'
31
+ :'call_number' => :'callNumber',
32
+
33
+ :'phone_column' => :'phoneColumn'
29
34
 
30
35
  }
31
36
  end
@@ -34,7 +39,9 @@ module PureCloud
34
39
  def self.swagger_types
35
40
  {
36
41
 
37
- :'call_number' => :'String'
42
+ :'call_number' => :'String',
43
+
44
+ :'phone_column' => :'String'
38
45
 
39
46
  }
40
47
  end
@@ -57,6 +64,15 @@ module PureCloud
57
64
  end
58
65
 
59
66
 
67
+ if attributes.has_key?(:'phoneColumn')
68
+
69
+
70
+ self.phone_column = attributes[:'phoneColumn']
71
+
72
+
73
+ end
74
+
75
+
60
76
  end
61
77
 
62
78
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -81,6 +97,10 @@ module PureCloud
81
97
 
82
98
 
83
99
 
100
+
101
+
102
+
103
+
84
104
  end
85
105
 
86
106
 
@@ -89,12 +109,18 @@ module PureCloud
89
109
 
90
110
 
91
111
 
112
+
113
+
114
+
115
+
116
+
92
117
  # Checks equality by comparing each attribute.
93
118
  # @param [Object] Object to be compared
94
119
  def ==(o)
95
120
  return true if self.equal?(o)
96
121
  self.class == o.class &&
97
- call_number == o.call_number
122
+ call_number == o.call_number &&
123
+ phone_column == o.phone_column
98
124
  end
99
125
 
100
126
  # @see the `==` method
@@ -106,7 +132,7 @@ module PureCloud
106
132
  # Calculates hash code according to all attributes.
107
133
  # @return [Fixnum] Hash code
108
134
  def hash
109
- [call_number].hash
135
+ [call_number, phone_column].hash
110
136
  end
111
137
 
112
138
  # build the object from hash
@@ -44,7 +44,7 @@ module PureCloud
44
44
  # On update, 'paused' initiates a secure pause, 'active' resumes any paused recordings; otherwise indicates state of conversation recording.
45
45
  attr_accessor :recording_state
46
46
 
47
- # The conversation's state. Values can be: 'disconnected'
47
+ # The conversation's state
48
48
  attr_accessor :state
49
49
 
50
50
  # The URI for this object
@@ -23,24 +23,31 @@ module PureCloud
23
23
 
24
24
  attr_accessor :name
25
25
 
26
+ # The resource's description.
26
27
  attr_accessor :description
27
28
 
29
+ # The current version of the resource.
28
30
  attr_accessor :version
29
31
 
30
- # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
32
+ # The date the resource was created. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
31
33
  attr_accessor :date_created
32
34
 
33
- # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
35
+ # The date of the last modification to the resource. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
34
36
  attr_accessor :date_modified
35
37
 
38
+ # The ID of the user that last modified the resource.
36
39
  attr_accessor :modified_by
37
40
 
41
+ # The ID of the user that created the resource.
38
42
  attr_accessor :created_by
39
43
 
44
+ # Indicates if the resource is active, inactive, or deleted.
40
45
  attr_accessor :state
41
46
 
47
+ # The application that last modified the resource.
42
48
  attr_accessor :modified_by_app
43
49
 
50
+ # The application that created the resource.
44
51
  attr_accessor :created_by_app
45
52
 
46
53
  # The media settings for the queue. Valid Key Values: CALL, CALLBACK, CHAT, EMAIL, SOCIAL_EXPRESSION
@@ -24,24 +24,31 @@ module PureCloud
24
24
  # The name of the entity.
25
25
  attr_accessor :name
26
26
 
27
+ # The resource's description.
27
28
  attr_accessor :description
28
29
 
30
+ # The current version of the resource.
29
31
  attr_accessor :version
30
32
 
31
- # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
33
+ # The date the resource was created. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
32
34
  attr_accessor :date_created
33
35
 
34
- # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
36
+ # The date of the last modification to the resource. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
35
37
  attr_accessor :date_modified
36
38
 
39
+ # The ID of the user that last modified the resource.
37
40
  attr_accessor :modified_by
38
41
 
42
+ # The ID of the user that created the resource.
39
43
  attr_accessor :created_by
40
44
 
45
+ # Indicates if the resource is active, inactive, or deleted.
41
46
  attr_accessor :state
42
47
 
48
+ # The application that last modified the resource.
43
49
  attr_accessor :modified_by_app
44
50
 
51
+ # The application that created the resource.
45
52
  attr_accessor :created_by_app
46
53
 
47
54
  attr_accessor :phone_number
@@ -24,24 +24,31 @@ module PureCloud
24
24
  # The name of the entity.
25
25
  attr_accessor :name
26
26
 
27
+ # The resource's description.
27
28
  attr_accessor :description
28
29
 
30
+ # The current version of the resource.
29
31
  attr_accessor :version
30
32
 
31
- # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
33
+ # The date the resource was created. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
32
34
  attr_accessor :date_created
33
35
 
34
- # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
36
+ # The date of the last modification to the resource. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
35
37
  attr_accessor :date_modified
36
38
 
39
+ # The ID of the user that last modified the resource.
37
40
  attr_accessor :modified_by
38
41
 
42
+ # The ID of the user that created the resource.
39
43
  attr_accessor :created_by
40
44
 
45
+ # Indicates if the resource is active, inactive, or deleted.
41
46
  attr_accessor :state
42
47
 
48
+ # The application that last modified the resource.
43
49
  attr_accessor :modified_by_app
44
50
 
51
+ # The application that created the resource.
45
52
  attr_accessor :created_by_app
46
53
 
47
54
  # The starting phone number for the range of this DID pool. Must be in E.164 format
@@ -0,0 +1,428 @@
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 DirectoryUserDevicesListing
21
+ attr_accessor :entities
22
+
23
+ attr_accessor :page_size
24
+
25
+ attr_accessor :page_number
26
+
27
+ attr_accessor :total
28
+
29
+ attr_accessor :self_uri
30
+
31
+ attr_accessor :first_uri
32
+
33
+ attr_accessor :previous_uri
34
+
35
+ attr_accessor :next_uri
36
+
37
+ attr_accessor :last_uri
38
+
39
+ attr_accessor :page_count
40
+
41
+ # Attribute mapping from ruby-style variable name to JSON key.
42
+ def self.attribute_map
43
+ {
44
+
45
+ :'entities' => :'entities',
46
+
47
+ :'page_size' => :'pageSize',
48
+
49
+ :'page_number' => :'pageNumber',
50
+
51
+ :'total' => :'total',
52
+
53
+ :'self_uri' => :'selfUri',
54
+
55
+ :'first_uri' => :'firstUri',
56
+
57
+ :'previous_uri' => :'previousUri',
58
+
59
+ :'next_uri' => :'nextUri',
60
+
61
+ :'last_uri' => :'lastUri',
62
+
63
+ :'page_count' => :'pageCount'
64
+
65
+ }
66
+ end
67
+
68
+ # Attribute type mapping.
69
+ def self.swagger_types
70
+ {
71
+
72
+ :'entities' => :'Array<UserDevice>',
73
+
74
+ :'page_size' => :'Integer',
75
+
76
+ :'page_number' => :'Integer',
77
+
78
+ :'total' => :'Integer',
79
+
80
+ :'self_uri' => :'String',
81
+
82
+ :'first_uri' => :'String',
83
+
84
+ :'previous_uri' => :'String',
85
+
86
+ :'next_uri' => :'String',
87
+
88
+ :'last_uri' => :'String',
89
+
90
+ :'page_count' => :'Integer'
91
+
92
+ }
93
+ end
94
+
95
+ # Initializes the object
96
+ # @param [Hash] attributes Model attributes in the form of hash
97
+ def initialize(attributes = {})
98
+ return unless attributes.is_a?(Hash)
99
+
100
+ # convert string to symbol for hash key
101
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
102
+
103
+
104
+ if attributes.has_key?(:'entities')
105
+
106
+ if (value = attributes[:'entities']).is_a?(Array)
107
+ self.entities = value
108
+ end
109
+
110
+
111
+
112
+ end
113
+
114
+
115
+ if attributes.has_key?(:'pageSize')
116
+
117
+
118
+ self.page_size = attributes[:'pageSize']
119
+
120
+
121
+ end
122
+
123
+
124
+ if attributes.has_key?(:'pageNumber')
125
+
126
+
127
+ self.page_number = attributes[:'pageNumber']
128
+
129
+
130
+ end
131
+
132
+
133
+ if attributes.has_key?(:'total')
134
+
135
+
136
+ self.total = attributes[:'total']
137
+
138
+
139
+ end
140
+
141
+
142
+ if attributes.has_key?(:'selfUri')
143
+
144
+
145
+ self.self_uri = attributes[:'selfUri']
146
+
147
+
148
+ end
149
+
150
+
151
+ if attributes.has_key?(:'firstUri')
152
+
153
+
154
+ self.first_uri = attributes[:'firstUri']
155
+
156
+
157
+ end
158
+
159
+
160
+ if attributes.has_key?(:'previousUri')
161
+
162
+
163
+ self.previous_uri = attributes[:'previousUri']
164
+
165
+
166
+ end
167
+
168
+
169
+ if attributes.has_key?(:'nextUri')
170
+
171
+
172
+ self.next_uri = attributes[:'nextUri']
173
+
174
+
175
+ end
176
+
177
+
178
+ if attributes.has_key?(:'lastUri')
179
+
180
+
181
+ self.last_uri = attributes[:'lastUri']
182
+
183
+
184
+ end
185
+
186
+
187
+ if attributes.has_key?(:'pageCount')
188
+
189
+
190
+ self.page_count = attributes[:'pageCount']
191
+
192
+
193
+ end
194
+
195
+
196
+ end
197
+
198
+ # Show invalid properties with the reasons. Usually used together with valid?
199
+ # @return Array for valid properies with the reasons
200
+ def list_invalid_properties
201
+ invalid_properties = Array.new
202
+
203
+
204
+ return invalid_properties
205
+ end
206
+
207
+ # Check to see if the all the properties in the model are valid
208
+ # @return true if the model is valid
209
+ def valid?
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
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
+ end
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+ # Checks equality by comparing each attribute.
305
+ # @param [Object] Object to be compared
306
+ def ==(o)
307
+ return true if self.equal?(o)
308
+ self.class == o.class &&
309
+ entities == o.entities &&
310
+ page_size == o.page_size &&
311
+ page_number == o.page_number &&
312
+ total == o.total &&
313
+ self_uri == o.self_uri &&
314
+ first_uri == o.first_uri &&
315
+ previous_uri == o.previous_uri &&
316
+ next_uri == o.next_uri &&
317
+ last_uri == o.last_uri &&
318
+ page_count == o.page_count
319
+ end
320
+
321
+ # @see the `==` method
322
+ # @param [Object] Object to be compared
323
+ def eql?(o)
324
+ self == o
325
+ end
326
+
327
+ # Calculates hash code according to all attributes.
328
+ # @return [Fixnum] Hash code
329
+ def hash
330
+ [entities, page_size, page_number, total, self_uri, first_uri, previous_uri, next_uri, last_uri, page_count].hash
331
+ end
332
+
333
+ # build the object from hash
334
+ def build_from_hash(attributes)
335
+ return nil unless attributes.is_a?(Hash)
336
+ self.class.swagger_types.each_pair do |key, type|
337
+ if type =~ /^Array<(.*)>/i
338
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
339
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
340
+ else
341
+ #TODO show warning in debug mode
342
+ end
343
+ elsif !attributes[self.class.attribute_map[key]].nil?
344
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
345
+ else
346
+ # data not found in attributes(hash), not an issue as the data can be optional
347
+ end
348
+ end
349
+
350
+ self
351
+ end
352
+
353
+ def _deserialize(type, value)
354
+ case type.to_sym
355
+ when :DateTime
356
+ DateTime.parse(value)
357
+ when :Date
358
+ Date.parse(value)
359
+ when :String
360
+ value.to_s
361
+ when :Integer
362
+ value.to_i
363
+ when :Float
364
+ value.to_f
365
+ when :BOOLEAN
366
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
367
+ true
368
+ else
369
+ false
370
+ end
371
+ when :Object
372
+ # generic object (usually a Hash), return directly
373
+ value
374
+ when /\AArray<(?<inner_type>.+)>\z/
375
+ inner_type = Regexp.last_match[:inner_type]
376
+ value.map { |v| _deserialize(inner_type, v) }
377
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
378
+ k_type = Regexp.last_match[:k_type]
379
+ v_type = Regexp.last_match[:v_type]
380
+ {}.tap do |hash|
381
+ value.each do |k, v|
382
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
383
+ end
384
+ end
385
+ else # model
386
+ _model = Object.const_get("PureCloud").const_get(type).new
387
+ _model.build_from_hash(value)
388
+ end
389
+ end
390
+
391
+ def to_s
392
+ to_hash.to_s
393
+ end
394
+
395
+ # to_body is an alias to to_body (backward compatibility))
396
+ def to_body
397
+ to_hash
398
+ end
399
+
400
+ # return the object in the form of hash
401
+ def to_hash
402
+ hash = {}
403
+ self.class.attribute_map.each_pair do |attr, param|
404
+ value = self.send(attr)
405
+ next if value.nil?
406
+ hash[param] = _to_hash(value)
407
+ end
408
+ hash
409
+ end
410
+
411
+ # Method to output non-array value in the form of hash
412
+ # For object, use to_hash. Otherwise, just return the value
413
+ def _to_hash(value)
414
+ if value.is_a?(Array)
415
+ value.compact.map{ |v| _to_hash(v) }
416
+ elsif value.is_a?(Hash)
417
+ {}.tap do |hash|
418
+ value.each { |k, v| hash[k] = _to_hash(v) }
419
+ end
420
+ elsif value.respond_to? :to_hash
421
+ value.to_hash
422
+ else
423
+ value
424
+ end
425
+ end
426
+
427
+ end
428
+ end