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
@@ -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 :properties
@@ -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 :line_meta_base
@@ -26,22 +26,28 @@ module PureCloud
26
26
 
27
27
  attr_accessor :description
28
28
 
29
+ # The current version of the resource.
29
30
  attr_accessor :version
30
31
 
31
- # 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
32
33
  attr_accessor :date_created
33
34
 
34
- # 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
35
36
  attr_accessor :date_modified
36
37
 
38
+ # The ID of the user that last modified the resource.
37
39
  attr_accessor :modified_by
38
40
 
41
+ # The ID of the user that created the resource.
39
42
  attr_accessor :created_by
40
43
 
44
+ # Indicates if the resource is active, inactive, or deleted.
41
45
  attr_accessor :state
42
46
 
47
+ # The application that last modified the resource.
43
48
  attr_accessor :modified_by_app
44
49
 
50
+ # The application that created the resource.
45
51
  attr_accessor :created_by_app
46
52
 
47
53
  # The URI for this object
@@ -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 :match
@@ -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 site associated to the outbound route.
@@ -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 site associated to the outbound route.
@@ -0,0 +1,383 @@
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 OutboundSettings
21
+ # The globally unique identifier for the object.
22
+ attr_accessor :id
23
+
24
+ attr_accessor :name
25
+
26
+ # Creation time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
27
+ attr_accessor :date_created
28
+
29
+ # Last modified time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
30
+ attr_accessor :date_modified
31
+
32
+ # Required for updates, must match the version number of the most recent update
33
+ attr_accessor :version
34
+
35
+ # The maximum number of calls that can be placed per agent on any campaign
36
+ attr_accessor :max_calls_per_agent
37
+
38
+ # The maximum percentage of lines that should be used for Outbound, expressed as a decimal in the range [0.0, 1.0]
39
+ attr_accessor :max_line_utilization
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
+ :'date_created' => :'dateCreated',
53
+
54
+ :'date_modified' => :'dateModified',
55
+
56
+ :'version' => :'version',
57
+
58
+ :'max_calls_per_agent' => :'maxCallsPerAgent',
59
+
60
+ :'max_line_utilization' => :'maxLineUtilization',
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
+ :'date_created' => :'DateTime',
76
+
77
+ :'date_modified' => :'DateTime',
78
+
79
+ :'version' => :'Integer',
80
+
81
+ :'max_calls_per_agent' => :'Integer',
82
+
83
+ :'max_line_utilization' => :'Float',
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?(:'dateCreated')
118
+
119
+
120
+ self.date_created = attributes[:'dateCreated']
121
+
122
+
123
+ end
124
+
125
+
126
+ if attributes.has_key?(:'dateModified')
127
+
128
+
129
+ self.date_modified = attributes[:'dateModified']
130
+
131
+
132
+ end
133
+
134
+
135
+ if attributes.has_key?(:'version')
136
+
137
+
138
+ self.version = attributes[:'version']
139
+
140
+
141
+ end
142
+
143
+
144
+ if attributes.has_key?(:'maxCallsPerAgent')
145
+
146
+
147
+ self.max_calls_per_agent = attributes[:'maxCallsPerAgent']
148
+
149
+
150
+ end
151
+
152
+
153
+ if attributes.has_key?(:'maxLineUtilization')
154
+
155
+
156
+ self.max_line_utilization = attributes[:'maxLineUtilization']
157
+
158
+
159
+ end
160
+
161
+
162
+ if attributes.has_key?(:'selfUri')
163
+
164
+
165
+ self.self_uri = attributes[:'selfUri']
166
+
167
+
168
+ end
169
+
170
+
171
+ end
172
+
173
+ # Show invalid properties with the reasons. Usually used together with valid?
174
+ # @return Array for valid properies with the reasons
175
+ def list_invalid_properties
176
+ invalid_properties = Array.new
177
+
178
+
179
+ return invalid_properties
180
+ end
181
+
182
+ # Check to see if the all the properties in the model are valid
183
+ # @return true if the model is valid
184
+ def valid?
185
+
186
+
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
+ end
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
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+ # Checks equality by comparing each attribute.
262
+ # @param [Object] Object to be compared
263
+ def ==(o)
264
+ return true if self.equal?(o)
265
+ self.class == o.class &&
266
+ id == o.id &&
267
+ name == o.name &&
268
+ date_created == o.date_created &&
269
+ date_modified == o.date_modified &&
270
+ version == o.version &&
271
+ max_calls_per_agent == o.max_calls_per_agent &&
272
+ max_line_utilization == o.max_line_utilization &&
273
+ self_uri == o.self_uri
274
+ end
275
+
276
+ # @see the `==` method
277
+ # @param [Object] Object to be compared
278
+ def eql?(o)
279
+ self == o
280
+ end
281
+
282
+ # Calculates hash code according to all attributes.
283
+ # @return [Fixnum] Hash code
284
+ def hash
285
+ [id, name, date_created, date_modified, version, max_calls_per_agent, max_line_utilization, self_uri].hash
286
+ end
287
+
288
+ # build the object from hash
289
+ def build_from_hash(attributes)
290
+ return nil unless attributes.is_a?(Hash)
291
+ self.class.swagger_types.each_pair do |key, type|
292
+ if type =~ /^Array<(.*)>/i
293
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
294
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
295
+ else
296
+ #TODO show warning in debug mode
297
+ end
298
+ elsif !attributes[self.class.attribute_map[key]].nil?
299
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
300
+ else
301
+ # data not found in attributes(hash), not an issue as the data can be optional
302
+ end
303
+ end
304
+
305
+ self
306
+ end
307
+
308
+ def _deserialize(type, value)
309
+ case type.to_sym
310
+ when :DateTime
311
+ DateTime.parse(value)
312
+ when :Date
313
+ Date.parse(value)
314
+ when :String
315
+ value.to_s
316
+ when :Integer
317
+ value.to_i
318
+ when :Float
319
+ value.to_f
320
+ when :BOOLEAN
321
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
322
+ true
323
+ else
324
+ false
325
+ end
326
+ when :Object
327
+ # generic object (usually a Hash), return directly
328
+ value
329
+ when /\AArray<(?<inner_type>.+)>\z/
330
+ inner_type = Regexp.last_match[:inner_type]
331
+ value.map { |v| _deserialize(inner_type, v) }
332
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
333
+ k_type = Regexp.last_match[:k_type]
334
+ v_type = Regexp.last_match[:v_type]
335
+ {}.tap do |hash|
336
+ value.each do |k, v|
337
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
338
+ end
339
+ end
340
+ else # model
341
+ _model = Object.const_get("PureCloud").const_get(type).new
342
+ _model.build_from_hash(value)
343
+ end
344
+ end
345
+
346
+ def to_s
347
+ to_hash.to_s
348
+ end
349
+
350
+ # to_body is an alias to to_body (backward compatibility))
351
+ def to_body
352
+ to_hash
353
+ end
354
+
355
+ # return the object in the form of hash
356
+ def to_hash
357
+ hash = {}
358
+ self.class.attribute_map.each_pair do |attr, param|
359
+ value = self.send(attr)
360
+ next if value.nil?
361
+ hash[param] = _to_hash(value)
362
+ end
363
+ hash
364
+ end
365
+
366
+ # Method to output non-array value in the form of hash
367
+ # For object, use to_hash. Otherwise, just return the value
368
+ def _to_hash(value)
369
+ if value.is_a?(Array)
370
+ value.compact.map{ |v| _to_hash(v) }
371
+ elsif value.is_a?(Hash)
372
+ {}.tap do |hash|
373
+ value.each { |k, v| hash[k] = _to_hash(v) }
374
+ end
375
+ elsif value.respond_to? :to_hash
376
+ value.to_hash
377
+ else
378
+ value
379
+ end
380
+ end
381
+
382
+ end
383
+ end