purecloud 0.27.0 → 0.28.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 (269) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -0
  3. data/config-ruby.json +1 -1
  4. data/extensions/auth.rb +7 -0
  5. data/lib/purecloud.rb +137 -85
  6. data/lib/purecloud/api/analytics_api.rb +1906 -0
  7. data/lib/purecloud/api/architect_api.rb +51 -51
  8. data/lib/purecloud/api/attributes_api.rb +6 -6
  9. data/lib/purecloud/api/authorization_api.rb +17 -79
  10. data/lib/purecloud/api/callbacks_api.rb +483 -0
  11. data/lib/purecloud/api/calls_api.rb +1088 -0
  12. data/lib/purecloud/api/chats_api.rb +483 -0
  13. data/lib/purecloud/api/compliance_api.rb +2 -2
  14. data/lib/purecloud/api/configuration_api.rb +83 -83
  15. data/lib/purecloud/api/content_management_api.rb +36 -36
  16. data/lib/purecloud/api/conversations_api.rb +3542 -465
  17. data/lib/purecloud/api/downloads_api.rb +2 -2
  18. data/lib/purecloud/api/emails_api.rb +1013 -0
  19. data/lib/purecloud/api/evaluations_api.rb +73 -0
  20. data/lib/purecloud/api/external_contacts_api.rb +26 -26
  21. data/lib/purecloud/api/fax_api.rb +6 -6
  22. data/lib/purecloud/api/faxes_api.rb +73 -0
  23. data/lib/purecloud/api/geolocation_api.rb +4 -4
  24. data/lib/purecloud/api/greetings_api.rb +12 -12
  25. data/lib/purecloud/api/groups_api.rb +3 -3
  26. data/lib/purecloud/api/integrations_api.rb +144 -0
  27. data/lib/purecloud/api/languages_api.rb +2 -2
  28. data/lib/purecloud/api/licensing_api.rb +7 -7
  29. data/lib/purecloud/api/locations_api.rb +2 -2
  30. data/lib/purecloud/api/notifications_api.rb +7 -7
  31. data/lib/purecloud/api/o_auth_api.rb +22 -22
  32. data/lib/purecloud/api/outbound_api.rb +69 -81
  33. data/lib/purecloud/api/presence_api.rb +10 -10
  34. data/lib/purecloud/api/quality_api.rb +41 -93
  35. data/lib/purecloud/api/recording_api.rb +20 -29
  36. data/lib/purecloud/api/response_management_api.rb +11 -11
  37. data/lib/purecloud/api/routing_api.rb +333 -189
  38. data/lib/purecloud/api/scripts_api.rb +11 -11
  39. data/lib/purecloud/api/search_api.rb +1 -1
  40. data/lib/purecloud/api/socials_api.rb +483 -0
  41. data/lib/purecloud/api/stations_api.rb +3 -3
  42. data/lib/purecloud/api/telephony_providers_edge_api.rb +38 -38
  43. data/lib/purecloud/api/tokens_api.rb +1 -1
  44. data/lib/purecloud/api/user_recordings_api.rb +6 -6
  45. data/lib/purecloud/api/users_api.rb +403 -95
  46. data/lib/purecloud/api/utilities_api.rb +4 -60
  47. data/lib/purecloud/api/videos_api.rb +483 -0
  48. data/lib/purecloud/api/voicemail_api.rb +11 -11
  49. data/lib/purecloud/models/address.rb +47 -25
  50. data/lib/purecloud/models/address_listing.rb +11 -11
  51. data/lib/purecloud/models/agent_activity_entity_listing.rb +11 -11
  52. data/lib/purecloud/models/aggregate_data_container.rb +161 -0
  53. data/lib/purecloud/models/aggregate_metric_data.rb +175 -0
  54. data/lib/purecloud/models/{session_request.rb → aggregate_query_response.rb} +10 -8
  55. data/lib/purecloud/models/{domain_license_entity_listing.rb → aggregation_query.rb} +49 -79
  56. data/lib/purecloud/models/{tag.rb → aggregation_range.rb} +16 -16
  57. data/lib/purecloud/models/aggregation_result.rb +199 -0
  58. data/lib/purecloud/models/aggregation_result_entry.rb +179 -0
  59. data/lib/purecloud/models/alert_entity_listing.rb +11 -11
  60. data/lib/purecloud/models/analytics_conversation.rb +181 -0
  61. data/lib/purecloud/models/analytics_conversation_query_response.rb +160 -0
  62. data/lib/purecloud/models/{queue_member_entity_listing.rb → analytics_evaluation.rb} +62 -64
  63. data/lib/purecloud/models/analytics_participant.rb +158 -0
  64. data/lib/purecloud/models/analytics_property.rb +178 -0
  65. data/lib/purecloud/models/analytics_query_aggregation.rb +202 -0
  66. data/lib/purecloud/models/analytics_query_clause.rb +168 -0
  67. data/lib/purecloud/models/analytics_query_filter.rb +181 -0
  68. data/lib/purecloud/models/analytics_query_predicate.rb +269 -0
  69. data/lib/purecloud/models/analytics_segment.rb +607 -0
  70. data/lib/purecloud/models/{put_management_unit.rb → analytics_session.rb} +27 -25
  71. data/lib/purecloud/models/attribute_entity_listing.rb +11 -11
  72. data/lib/purecloud/models/audit_entity_reference.rb +1 -1
  73. data/lib/purecloud/models/automate_queue_member_entity_listing.rb +11 -11
  74. data/lib/purecloud/models/available_additional_service_listing.rb +11 -11
  75. data/lib/purecloud/models/available_topic_entity_listing.rb +11 -11
  76. data/lib/purecloud/models/calibration_entity_listing.rb +11 -11
  77. data/lib/purecloud/models/call.rb +2 -22
  78. data/lib/purecloud/models/call_conversation.rb +213 -0
  79. data/lib/purecloud/models/call_participant.rb +527 -0
  80. data/lib/purecloud/models/callable_time_set_entity_listing.rb +11 -11
  81. data/lib/purecloud/models/callback_conversation.rb +194 -0
  82. data/lib/purecloud/models/callback_participant.rb +456 -0
  83. data/lib/purecloud/models/campaign.rb +17 -219
  84. data/lib/purecloud/models/campaign_entity_listing.rb +11 -11
  85. data/lib/purecloud/models/campaign_sequence_entity_listing.rb +11 -11
  86. data/lib/purecloud/models/carrier_entity_listing.rb +11 -11
  87. data/lib/purecloud/models/certificate_authority_entity_listing.rb +11 -11
  88. data/lib/purecloud/models/channel_entity_listing.rb +11 -11
  89. data/lib/purecloud/models/channel_topic_entity_listing.rb +11 -11
  90. data/lib/purecloud/models/{domain_license.rb → chat_conversation.rb} +19 -25
  91. data/lib/purecloud/models/chat_participant.rb +270 -12
  92. data/lib/purecloud/models/chat_search_listing.rb +11 -11
  93. data/lib/purecloud/models/command_status_entity_listing.rb +11 -11
  94. data/lib/purecloud/models/consumed_resources_entity_listing.rb +11 -11
  95. data/lib/purecloud/models/consuming_resources_entity_listing.rb +11 -11
  96. data/lib/purecloud/models/contact.rb +41 -73
  97. data/lib/purecloud/models/contact_list_entity_listing.rb +11 -11
  98. data/lib/purecloud/models/contact_listing.rb +11 -11
  99. data/lib/purecloud/models/contact_sales.rb +1 -21
  100. data/lib/purecloud/models/conversation_entity_listing.rb +11 -11
  101. data/lib/purecloud/models/{evaluation_query_request.rb → conversation_query.rb} +77 -90
  102. data/lib/purecloud/models/conversation_query_response.rb +11 -11
  103. data/lib/purecloud/models/{session_entity_listing.rb → create_call_request.rb} +71 -68
  104. data/lib/purecloud/models/{conversation_response.rb → create_call_response.rb} +1 -1
  105. data/lib/purecloud/models/create_user.rb +219 -0
  106. data/lib/purecloud/models/data_item.rb +19 -23
  107. data/lib/purecloud/models/deleted_resource_consumer_entity_listing.rb +11 -11
  108. data/lib/purecloud/models/dependency_object_entity_listing.rb +11 -11
  109. data/lib/purecloud/models/dependency_type_entity_listing.rb +11 -11
  110. data/lib/purecloud/models/destination.rb +1 -21
  111. data/lib/purecloud/models/did_entity_listing.rb +11 -11
  112. data/lib/purecloud/models/did_pool_entity_listing.rb +11 -11
  113. data/lib/purecloud/models/dnc_list_entity_listing.rb +11 -11
  114. data/lib/purecloud/models/document_audit_entity_listing.rb +11 -11
  115. data/lib/purecloud/models/document_entity_listing.rb +11 -11
  116. data/lib/purecloud/models/domain_billing_period_entity_listing.rb +11 -11
  117. data/lib/purecloud/models/domain_entity_listing.rb +11 -11
  118. data/lib/purecloud/models/domain_entity_listing_evaluation_form.rb +11 -11
  119. data/lib/purecloud/models/domain_entity_listing_query_result.rb +11 -11
  120. data/lib/purecloud/models/domain_invoice_entity_listing.rb +11 -11
  121. data/lib/purecloud/models/domain_organization_role.rb +1 -23
  122. data/lib/purecloud/models/domain_permission.rb +1 -13
  123. data/lib/purecloud/models/domain_third_party_account_entity_listing.rb +11 -11
  124. data/lib/purecloud/models/domain_third_party_subscription_entity_listing.rb +11 -11
  125. data/lib/purecloud/models/domain_voice_rate_extended_response_item_entity_listing.rb +11 -11
  126. data/lib/purecloud/models/domain_voice_rate_international_response_item_entity_listing.rb +11 -11
  127. data/lib/purecloud/models/domain_voice_rate_response_item_entity_listing.rb +11 -11
  128. data/lib/purecloud/models/edge_entity_listing.rb +11 -11
  129. data/lib/purecloud/models/edge_group_entity_listing.rb +11 -11
  130. data/lib/purecloud/models/edge_line_entity_listing.rb +11 -11
  131. data/lib/purecloud/models/email_conversation.rb +194 -0
  132. data/lib/purecloud/models/email_message_listing.rb +11 -11
  133. data/lib/purecloud/models/email_participant.rb +424 -0
  134. data/lib/purecloud/models/encryption_key_entity_listing.rb +11 -11
  135. data/lib/purecloud/models/endpoint_entity_listing.rb +11 -11
  136. data/lib/purecloud/models/entity.rb +10 -20
  137. data/lib/purecloud/models/evaluation.rb +1 -0
  138. data/lib/purecloud/models/evaluation_entity_listing.rb +11 -11
  139. data/lib/purecloud/models/evaluation_form_entity_listing.rb +11 -11
  140. data/lib/purecloud/models/evaluator_activity_entity_listing.rb +11 -11
  141. data/lib/purecloud/models/extension_entity_listing.rb +11 -11
  142. data/lib/purecloud/models/extension_pool_entity_listing.rb +11 -11
  143. data/lib/purecloud/models/external_organization_listing.rb +11 -11
  144. data/lib/purecloud/models/fax_document_entity_listing.rb +11 -11
  145. data/lib/purecloud/models/filter.rb +14 -11
  146. data/lib/purecloud/models/flow_config_meta_data_entity_listing.rb +11 -11
  147. data/lib/purecloud/models/flow_entity_listing.rb +11 -11
  148. data/lib/purecloud/models/flow_history_result_item_entity_listing.rb +11 -11
  149. data/lib/purecloud/models/flow_version_config_meta_data_entity_listing.rb +11 -11
  150. data/lib/purecloud/models/flow_version_entity_listing.rb +11 -11
  151. data/lib/purecloud/models/group_entity_listing.rb +11 -11
  152. data/lib/purecloud/models/hardware_rate_listing.rb +11 -11
  153. data/lib/purecloud/models/inbound_domain_entity_listing.rb +11 -11
  154. data/lib/purecloud/models/inbound_route_entity_listing.rb +11 -11
  155. data/lib/purecloud/models/integration_type_entity_listing.rb +11 -11
  156. data/lib/purecloud/models/ivr_entity_listing.rb +11 -11
  157. data/lib/purecloud/models/language_entity_listing.rb +11 -11
  158. data/lib/purecloud/models/library_entity_listing.rb +11 -11
  159. data/lib/purecloud/models/line_base_entity_listing.rb +11 -11
  160. data/lib/purecloud/models/line_entity_listing.rb +11 -11
  161. data/lib/purecloud/models/linked_entity_listing_flow_details.rb +11 -11
  162. data/lib/purecloud/models/linked_entity_listing_work_item_search_details.rb +11 -11
  163. data/lib/purecloud/models/location_entity_listing.rb +11 -11
  164. data/lib/purecloud/models/logical_interface_entity_listing.rb +11 -11
  165. data/lib/purecloud/models/management_unit.rb +26 -14
  166. data/lib/purecloud/models/media_result.rb +1 -11
  167. data/lib/purecloud/models/media_summary.rb +2 -2
  168. data/lib/purecloud/models/media_summary_detail.rb +156 -0
  169. data/lib/purecloud/models/note_listing.rb +11 -11
  170. data/lib/purecloud/models/numeric_range.rb +180 -0
  171. data/lib/purecloud/models/o_auth_client.rb +21 -14
  172. data/lib/purecloud/models/o_auth_client_entity_listing.rb +11 -11
  173. data/lib/purecloud/models/o_auth_provider_entity_listing.rb +11 -11
  174. data/lib/purecloud/models/observation_data_container.rb +161 -0
  175. data/lib/purecloud/models/observation_query.rb +160 -0
  176. data/lib/purecloud/models/observation_query_response.rb +148 -0
  177. data/lib/purecloud/models/okta.rb +11 -11
  178. data/lib/purecloud/models/one_login.rb +11 -11
  179. data/lib/purecloud/models/organization_presence_entity_listing.rb +11 -11
  180. data/lib/purecloud/models/organization_role_entity_listing.rb +11 -11
  181. data/lib/purecloud/models/orphan_recording_listing.rb +11 -11
  182. data/lib/purecloud/models/outbound_route_entity_listing.rb +11 -11
  183. data/lib/purecloud/models/paging_spec.rb +158 -0
  184. data/lib/purecloud/models/participant.rb +1 -13
  185. data/lib/purecloud/models/payment_method_listing.rb +11 -11
  186. data/lib/purecloud/models/permission_collection_entity_listing.rb +11 -11
  187. data/lib/purecloud/models/phone_base_entity_listing.rb +11 -11
  188. data/lib/purecloud/models/phone_entity_listing.rb +11 -11
  189. data/lib/purecloud/models/phone_meta_base_entity_listing.rb +11 -11
  190. data/lib/purecloud/models/physical_interface_entity_listing.rb +11 -11
  191. data/lib/purecloud/models/policy_entity_listing.rb +11 -11
  192. data/lib/purecloud/models/presence_query_response.rb +161 -0
  193. data/lib/purecloud/models/prompt_asset_entity_listing.rb +11 -11
  194. data/lib/purecloud/models/prompt_entity_listing.rb +11 -11
  195. data/lib/purecloud/models/property_index_request.rb +182 -0
  196. data/lib/purecloud/models/quality_audit_page.rb +11 -11
  197. data/lib/purecloud/models/queue.rb +1 -23
  198. data/lib/purecloud/models/queue_entity_listing.rb +11 -11
  199. data/lib/purecloud/models/queues_entity_listing.rb +11 -11
  200. data/lib/purecloud/models/quote.rb +1 -37
  201. data/lib/purecloud/models/quote_listing.rb +11 -11
  202. data/lib/purecloud/models/recording.rb +13 -34
  203. data/lib/purecloud/models/relationship_listing.rb +11 -11
  204. data/lib/purecloud/models/report_meta_data_entity_listing.rb +11 -11
  205. data/lib/purecloud/models/report_run_entry_entity_domain_listing.rb +11 -11
  206. data/lib/purecloud/models/report_schedule_entity_listing.rb +11 -11
  207. data/lib/purecloud/models/response.rb +14 -84
  208. data/lib/purecloud/models/response_entity_list.rb +11 -11
  209. data/lib/purecloud/models/response_entity_listing.rb +11 -11
  210. data/lib/purecloud/models/response_set_entity_listing.rb +11 -11
  211. data/lib/purecloud/models/{user_status.rb → routing_skill.rb} +35 -25
  212. data/lib/purecloud/models/rule_entity_listing.rb +11 -11
  213. data/lib/purecloud/models/rule_set_entity_listing.rb +11 -11
  214. data/lib/purecloud/models/salesforce.rb +11 -11
  215. data/lib/purecloud/models/schedule_entity_listing.rb +11 -11
  216. data/lib/purecloud/models/schedule_group_entity_listing.rb +11 -11
  217. data/lib/purecloud/models/schema_category_entity_listing.rb +11 -11
  218. data/lib/purecloud/models/schema_reference_entity_listing.rb +11 -11
  219. data/lib/purecloud/models/script_entity_listing.rb +11 -11
  220. data/lib/purecloud/models/security_profile_entity_listing.rb +11 -11
  221. data/lib/purecloud/models/service_entity_listing.rb +11 -11
  222. data/lib/purecloud/models/share_entity_listing.rb +11 -11
  223. data/lib/purecloud/models/site_entity_listing.rb +11 -11
  224. data/lib/purecloud/models/skill_entity_listing.rb +12 -12
  225. data/lib/purecloud/models/social_conversation.rb +194 -0
  226. data/lib/purecloud/models/social_participant.rb +446 -0
  227. data/lib/purecloud/models/spreadsheet_transform_entity_listing.rb +11 -11
  228. data/lib/purecloud/models/station_entity_listing.rb +11 -11
  229. data/lib/purecloud/models/statistical_response.rb +158 -0
  230. data/lib/purecloud/models/statistical_summary.rb +226 -0
  231. data/lib/purecloud/models/system_prompt_asset_entity_listing.rb +11 -11
  232. data/lib/purecloud/models/system_prompt_entity_listing.rb +11 -11
  233. data/lib/purecloud/models/tag_value_entity_listing.rb +11 -11
  234. data/lib/purecloud/models/template_entity_listing.rb +11 -11
  235. data/lib/purecloud/models/text_table_transform_entity_listing.rb +11 -11
  236. data/lib/purecloud/models/time_zone.rb +1 -11
  237. data/lib/purecloud/models/time_zone_entity_listing.rb +11 -11
  238. data/lib/purecloud/models/transfer_request.rb +193 -0
  239. data/lib/purecloud/models/trunk_metabase_entity_listing.rb +11 -11
  240. data/lib/purecloud/models/user.rb +96 -129
  241. data/lib/purecloud/models/user_action_category_entity_listing.rb +11 -11
  242. data/lib/purecloud/models/user_action_metadata_entity_listing.rb +11 -11
  243. data/lib/purecloud/models/user_authorization.rb +1 -13
  244. data/lib/purecloud/models/user_entity_listing.rb +11 -11
  245. data/lib/purecloud/models/user_presence_entity_listing.rb +11 -11
  246. data/lib/purecloud/models/user_queue.rb +1 -23
  247. data/lib/purecloud/models/user_queue_entity_listing.rb +11 -11
  248. data/lib/purecloud/models/user_recording_entity_listing.rb +11 -11
  249. data/lib/purecloud/models/{session.rb → user_routing_skill.rb} +26 -41
  250. data/lib/purecloud/models/user_skill_entity_listing.rb +12 -12
  251. data/lib/purecloud/models/user_station.rb +178 -0
  252. data/lib/purecloud/models/user_stations.rb +180 -0
  253. data/lib/purecloud/models/users_entity_listing.rb +11 -11
  254. data/lib/purecloud/models/utilization.rb +4 -36
  255. data/lib/purecloud/models/video_conversation.rb +194 -0
  256. data/lib/purecloud/models/video_participant.rb +463 -0
  257. data/lib/purecloud/models/voice_rate_international_entity_listing.rb +11 -11
  258. data/lib/purecloud/models/voice_xml_operation_entity_listing.rb +11 -11
  259. data/lib/purecloud/models/voicemail_message_entity_listing.rb +11 -11
  260. data/lib/purecloud/models/workspace_entity_listing.rb +11 -11
  261. data/lib/purecloud/models/workspace_member_entity_listing.rb +11 -11
  262. data/lib/purecloud/models/wrapup_code_entity_listing.rb +11 -11
  263. data/lib/purecloud/version.rb +1 -1
  264. data/newVersion.md +1 -1
  265. data/swagger.json +1 -1
  266. data/version.json +1 -1
  267. metadata +60 -15
  268. data/lib/purecloud/models/skill.rb +0 -269
  269. data/lib/purecloud/models/user_skill.rb +0 -290
@@ -31,10 +31,6 @@ module PureCloud
31
31
 
32
32
  attr_accessor :document_id
33
33
 
34
- attr_accessor :_self
35
-
36
- attr_accessor :other
37
-
38
34
  # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
39
35
  attr_accessor :connected_time
40
36
 
@@ -70,10 +66,6 @@ module PureCloud
70
66
 
71
67
  :'document_id' => :'documentId',
72
68
 
73
- :'_self' => :'self',
74
-
75
- :'other' => :'other',
76
-
77
69
  :'connected_time' => :'connectedTime'
78
70
 
79
71
  }
@@ -96,8 +88,6 @@ module PureCloud
96
88
  :'disconnect_type' => :'String',
97
89
  :'start_hold_time' => :'DateTime',
98
90
  :'document_id' => :'String',
99
- :'_self' => :'Address',
100
- :'other' => :'Address',
101
91
  :'connected_time' => :'DateTime'
102
92
 
103
93
  }
@@ -176,14 +166,6 @@ module PureCloud
176
166
  self.document_id = attributes[:'documentId']
177
167
  end
178
168
 
179
- if attributes[:'self']
180
- self._self = attributes[:'self']
181
- end
182
-
183
- if attributes[:'other']
184
- self.other = attributes[:'other']
185
- end
186
-
187
169
  if attributes[:'connectedTime']
188
170
  self.connected_time = attributes[:'connectedTime']
189
171
  end
@@ -219,7 +201,7 @@ module PureCloud
219
201
 
220
202
  # Custom attribute writer method checking allowed values (enum).
221
203
  def disconnect_type=(disconnect_type)
222
- allowed_values = ["ENDPOINT", "CLIENT", "SYSTEM", "TIMEOUT", "TRANSFER", "TRANSFER_CONFERENCE", "TRANSFER_CONSULT", "ERROR", "PEER", "OTHER"]
204
+ allowed_values = ["ENDPOINT", "CLIENT", "SYSTEM", "TRANSFER", "TRANSFER_CONFERENCE", "TRANSFER_CONSULT", "ERROR", "PEER", "OTHER"]
223
205
  if disconnect_type && !allowed_values.include?(disconnect_type)
224
206
  fail "invalid value for 'disconnect_type', must be one of #{allowed_values}"
225
207
  end
@@ -244,8 +226,6 @@ module PureCloud
244
226
  disconnect_type == o.disconnect_type &&
245
227
  start_hold_time == o.start_hold_time &&
246
228
  document_id == o.document_id &&
247
- _self == o._self &&
248
- other == o.other &&
249
229
  connected_time == o.connected_time
250
230
  end
251
231
 
@@ -256,7 +236,7 @@ module PureCloud
256
236
 
257
237
  # Calculate hash code according to all attributes.
258
238
  def hash
259
- [state, id, direction, recording, recording_state, muted, confined, held, recording_id, segments, error_info, disconnect_type, start_hold_time, document_id, _self, other, connected_time].hash
239
+ [state, id, direction, recording, recording_state, muted, confined, held, recording_id, segments, error_info, disconnect_type, start_hold_time, document_id, connected_time].hash
260
240
  end
261
241
 
262
242
  # build the object from hash
@@ -0,0 +1,213 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class CallConversation
5
+ # The globally unique identifier for the object.
6
+ attr_accessor :id
7
+
8
+ attr_accessor :name
9
+
10
+ # The list of participants involved in the conversation.
11
+ attr_accessor :participants
12
+
13
+ # The list of other media channels involved in the conversation.
14
+ attr_accessor :other_media_uris
15
+
16
+ attr_accessor :recording_state
17
+
18
+ # The URI for this object
19
+ attr_accessor :self_uri
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+
25
+ :'id' => :'id',
26
+
27
+ :'name' => :'name',
28
+
29
+ :'participants' => :'participants',
30
+
31
+ :'other_media_uris' => :'otherMediaUris',
32
+
33
+ :'recording_state' => :'recordingState',
34
+
35
+ :'self_uri' => :'selfUri'
36
+
37
+ }
38
+ end
39
+
40
+ # Attribute type mapping.
41
+ def self.swagger_types
42
+ {
43
+ :'id' => :'String',
44
+ :'name' => :'String',
45
+ :'participants' => :'Array<CallParticipant>',
46
+ :'other_media_uris' => :'Array<String>',
47
+ :'recording_state' => :'String',
48
+ :'self_uri' => :'String'
49
+
50
+ }
51
+ end
52
+
53
+ def initialize(attributes = {})
54
+ return unless attributes.is_a?(Hash)
55
+
56
+ # convert string to symbol for hash key
57
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
58
+
59
+
60
+ if attributes[:'id']
61
+ self.id = attributes[:'id']
62
+ end
63
+
64
+ if attributes[:'name']
65
+ self.name = attributes[:'name']
66
+ end
67
+
68
+ if attributes[:'participants']
69
+ if (value = attributes[:'participants']).is_a?(Array)
70
+ self.participants = value
71
+ end
72
+ end
73
+
74
+ if attributes[:'otherMediaUris']
75
+ if (value = attributes[:'otherMediaUris']).is_a?(Array)
76
+ self.other_media_uris = value
77
+ end
78
+ end
79
+
80
+ if attributes[:'recordingState']
81
+ self.recording_state = attributes[:'recordingState']
82
+ end
83
+
84
+ if attributes[:'selfUri']
85
+ self.self_uri = attributes[:'selfUri']
86
+ end
87
+
88
+ end
89
+
90
+ # Custom attribute writer method checking allowed values (enum).
91
+ def recording_state=(recording_state)
92
+ allowed_values = ["NONE", "ACTIVE", "PAUSED"]
93
+ if recording_state && !allowed_values.include?(recording_state)
94
+ fail "invalid value for 'recording_state', must be one of #{allowed_values}"
95
+ end
96
+ @recording_state = recording_state
97
+ end
98
+
99
+ # Check equality by comparing each attribute.
100
+ def ==(o)
101
+ return true if self.equal?(o)
102
+ self.class == o.class &&
103
+ id == o.id &&
104
+ name == o.name &&
105
+ participants == o.participants &&
106
+ other_media_uris == o.other_media_uris &&
107
+ recording_state == o.recording_state &&
108
+ self_uri == o.self_uri
109
+ end
110
+
111
+ # @see the `==` method
112
+ def eql?(o)
113
+ self == o
114
+ end
115
+
116
+ # Calculate hash code according to all attributes.
117
+ def hash
118
+ [id, name, participants, other_media_uris, recording_state, self_uri].hash
119
+ end
120
+
121
+ # build the object from hash
122
+ def build_from_hash(attributes)
123
+ return nil unless attributes.is_a?(Hash)
124
+ self.class.swagger_types.each_pair do |key, type|
125
+ if type =~ /^Array<(.*)>/i
126
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
127
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
128
+ else
129
+ #TODO show warning in debug mode
130
+ end
131
+ elsif !attributes[self.class.attribute_map[key]].nil?
132
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
133
+ else
134
+ # data not found in attributes(hash), not an issue as the data can be optional
135
+ end
136
+ end
137
+
138
+ self
139
+ end
140
+
141
+ def _deserialize(type, value)
142
+ case type.to_sym
143
+ when :DateTime
144
+ DateTime.parse(value)
145
+ when :Date
146
+ Date.parse(value)
147
+ when :String
148
+ value.to_s
149
+ when :Integer
150
+ value.to_i
151
+ when :Float
152
+ value.to_f
153
+ when :BOOLEAN
154
+ if value =~ /^(true|t|yes|y|1)$/i
155
+ true
156
+ else
157
+ false
158
+ end
159
+ when /\AArray<(?<inner_type>.+)>\z/
160
+ inner_type = Regexp.last_match[:inner_type]
161
+ value.map { |v| _deserialize(inner_type, v) }
162
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
163
+ k_type = Regexp.last_match[:k_type]
164
+ v_type = Regexp.last_match[:v_type]
165
+ {}.tap do |hash|
166
+ value.each do |k, v|
167
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
168
+ end
169
+ end
170
+ else # model
171
+ _model = Object.const_get("PureCloud").const_get(type).new
172
+ _model.build_from_hash(value)
173
+ end
174
+ end
175
+
176
+ def to_s
177
+ to_hash.to_s
178
+ end
179
+
180
+ # to_body is an alias to to_body (backward compatibility))
181
+ def to_body
182
+ to_hash
183
+ end
184
+
185
+ # return the object in the form of hash
186
+ def to_hash
187
+ hash = {}
188
+ self.class.attribute_map.each_pair do |attr, param|
189
+ value = self.send(attr)
190
+ next if value.nil?
191
+ hash[param] = _to_hash(value)
192
+ end
193
+ hash
194
+ end
195
+
196
+ # Method to output non-array value in the form of hash
197
+ # For object, use to_hash. Otherwise, just return the value
198
+ def _to_hash(value)
199
+ if value.is_a?(Array)
200
+ value.compact.map{ |v| _to_hash(v) }
201
+ elsif value.is_a?(Hash)
202
+ {}.tap do |hash|
203
+ value.each { |k, v| hash[k] = _to_hash(v) }
204
+ end
205
+ elsif value.respond_to? :to_hash
206
+ value.to_hash
207
+ else
208
+ value
209
+ end
210
+ end
211
+
212
+ end
213
+ end
@@ -0,0 +1,527 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class CallParticipant
5
+ # The unique participant ID.
6
+ attr_accessor :id
7
+
8
+ # The display friendly name of the participant.
9
+ attr_accessor :name
10
+
11
+ # The participant address.
12
+ attr_accessor :address
13
+
14
+ # The time when this participant joined the conversation. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
15
+ attr_accessor :start_time
16
+
17
+ # The time when this participant went connected on the conversation. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
18
+ attr_accessor :connected_time
19
+
20
+ # The time when this participant when disconnected on the conversation. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
21
+ attr_accessor :end_time
22
+
23
+ # The time when this participant's hold started. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
24
+ attr_accessor :start_hold_time
25
+
26
+ # The participant's purpose. Values can be: 'agent', 'user', 'customer', 'external', 'acd', 'ivr
27
+ attr_accessor :purpose
28
+
29
+ # The participant's state. Values can be: 'alerting', 'connected', 'disconnected', 'dialing', 'contacting
30
+ attr_accessor :state
31
+
32
+ # The participant's direction. Values can be: 'inbound' or 'outbound'
33
+ attr_accessor :direction
34
+
35
+ # The reason the participant was disconnected from the conversation.
36
+ attr_accessor :disconnect_type
37
+
38
+ # Value is true when the participant is on hold.
39
+ attr_accessor :held
40
+
41
+ # Value is true when the participant requires wrap-up.
42
+ attr_accessor :wrapup_required
43
+
44
+ # The wrap-up prompt indicating the type of wrap-up to be performed.
45
+ attr_accessor :wrapup_prompt
46
+
47
+ # The PureCloud user for this participant.
48
+ attr_accessor :user
49
+
50
+ # The PureCloud queue for this participant.
51
+ attr_accessor :queue
52
+
53
+ # A list of ad-hoc attributes for the participant.
54
+ attr_accessor :attributes
55
+
56
+ # If the conversation ends in error, contains additional error details.
57
+ attr_accessor :error_info
58
+
59
+ # The Engage script that should be used by this participant.
60
+ attr_accessor :script
61
+
62
+ # The amount of time the participant has to complete wrap-up.
63
+ attr_accessor :wrapup_timeout_ms
64
+
65
+ # Value is true when the participant has skipped wrap-up.
66
+ attr_accessor :wrapup_skipped
67
+
68
+ # Value is true when the call is muted.
69
+ attr_accessor :muted
70
+
71
+ # Value is true when the call is confined.
72
+ attr_accessor :confined
73
+
74
+ # Value is true when the call is being recorded.
75
+ attr_accessor :recording
76
+
77
+ # The state of the call recording.
78
+ attr_accessor :recording_state
79
+
80
+ # The group involved in the group ring call.
81
+ attr_accessor :group
82
+
83
+ # The call ANI.
84
+ attr_accessor :ani
85
+
86
+ # The call DNIS.
87
+ attr_accessor :dnis
88
+
89
+ # The ID of the Content Management document if the call is a fax.
90
+ attr_accessor :document_id
91
+
92
+ # The ID of the participant being monitored when performing a call monitor.
93
+ attr_accessor :monitored_participant_id
94
+
95
+ # The ID of the consult transfer target participant when performing a consult transfer.
96
+ attr_accessor :consult_participant_id
97
+
98
+ # Attribute mapping from ruby-style variable name to JSON key.
99
+ def self.attribute_map
100
+ {
101
+
102
+ :'id' => :'id',
103
+
104
+ :'name' => :'name',
105
+
106
+ :'address' => :'address',
107
+
108
+ :'start_time' => :'startTime',
109
+
110
+ :'connected_time' => :'connectedTime',
111
+
112
+ :'end_time' => :'endTime',
113
+
114
+ :'start_hold_time' => :'startHoldTime',
115
+
116
+ :'purpose' => :'purpose',
117
+
118
+ :'state' => :'state',
119
+
120
+ :'direction' => :'direction',
121
+
122
+ :'disconnect_type' => :'disconnectType',
123
+
124
+ :'held' => :'held',
125
+
126
+ :'wrapup_required' => :'wrapupRequired',
127
+
128
+ :'wrapup_prompt' => :'wrapupPrompt',
129
+
130
+ :'user' => :'user',
131
+
132
+ :'queue' => :'queue',
133
+
134
+ :'attributes' => :'attributes',
135
+
136
+ :'error_info' => :'errorInfo',
137
+
138
+ :'script' => :'script',
139
+
140
+ :'wrapup_timeout_ms' => :'wrapupTimeoutMs',
141
+
142
+ :'wrapup_skipped' => :'wrapupSkipped',
143
+
144
+ :'muted' => :'muted',
145
+
146
+ :'confined' => :'confined',
147
+
148
+ :'recording' => :'recording',
149
+
150
+ :'recording_state' => :'recordingState',
151
+
152
+ :'group' => :'group',
153
+
154
+ :'ani' => :'ani',
155
+
156
+ :'dnis' => :'dnis',
157
+
158
+ :'document_id' => :'documentId',
159
+
160
+ :'monitored_participant_id' => :'monitoredParticipantId',
161
+
162
+ :'consult_participant_id' => :'consultParticipantId'
163
+
164
+ }
165
+ end
166
+
167
+ # Attribute type mapping.
168
+ def self.swagger_types
169
+ {
170
+ :'id' => :'String',
171
+ :'name' => :'String',
172
+ :'address' => :'String',
173
+ :'start_time' => :'DateTime',
174
+ :'connected_time' => :'DateTime',
175
+ :'end_time' => :'DateTime',
176
+ :'start_hold_time' => :'DateTime',
177
+ :'purpose' => :'String',
178
+ :'state' => :'String',
179
+ :'direction' => :'String',
180
+ :'disconnect_type' => :'String',
181
+ :'held' => :'BOOLEAN',
182
+ :'wrapup_required' => :'BOOLEAN',
183
+ :'wrapup_prompt' => :'String',
184
+ :'user' => :'UriReference',
185
+ :'queue' => :'UriReference',
186
+ :'attributes' => :'Hash<String, String>',
187
+ :'error_info' => :'ErrorBody',
188
+ :'script' => :'UriReference',
189
+ :'wrapup_timeout_ms' => :'Integer',
190
+ :'wrapup_skipped' => :'BOOLEAN',
191
+ :'muted' => :'BOOLEAN',
192
+ :'confined' => :'BOOLEAN',
193
+ :'recording' => :'BOOLEAN',
194
+ :'recording_state' => :'String',
195
+ :'group' => :'UriReference',
196
+ :'ani' => :'String',
197
+ :'dnis' => :'String',
198
+ :'document_id' => :'String',
199
+ :'monitored_participant_id' => :'String',
200
+ :'consult_participant_id' => :'String'
201
+
202
+ }
203
+ end
204
+
205
+ def initialize(attributes = {})
206
+ return unless attributes.is_a?(Hash)
207
+
208
+ # convert string to symbol for hash key
209
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
210
+
211
+
212
+ if attributes[:'id']
213
+ self.id = attributes[:'id']
214
+ end
215
+
216
+ if attributes[:'name']
217
+ self.name = attributes[:'name']
218
+ end
219
+
220
+ if attributes[:'address']
221
+ self.address = attributes[:'address']
222
+ end
223
+
224
+ if attributes[:'startTime']
225
+ self.start_time = attributes[:'startTime']
226
+ end
227
+
228
+ if attributes[:'connectedTime']
229
+ self.connected_time = attributes[:'connectedTime']
230
+ end
231
+
232
+ if attributes[:'endTime']
233
+ self.end_time = attributes[:'endTime']
234
+ end
235
+
236
+ if attributes[:'startHoldTime']
237
+ self.start_hold_time = attributes[:'startHoldTime']
238
+ end
239
+
240
+ if attributes[:'purpose']
241
+ self.purpose = attributes[:'purpose']
242
+ end
243
+
244
+ if attributes[:'state']
245
+ self.state = attributes[:'state']
246
+ end
247
+
248
+ if attributes[:'direction']
249
+ self.direction = attributes[:'direction']
250
+ end
251
+
252
+ if attributes[:'disconnectType']
253
+ self.disconnect_type = attributes[:'disconnectType']
254
+ end
255
+
256
+ if attributes[:'held']
257
+ self.held = attributes[:'held']
258
+ else
259
+ self.held = false
260
+ end
261
+
262
+ if attributes[:'wrapupRequired']
263
+ self.wrapup_required = attributes[:'wrapupRequired']
264
+ else
265
+ self.wrapup_required = false
266
+ end
267
+
268
+ if attributes[:'wrapupPrompt']
269
+ self.wrapup_prompt = attributes[:'wrapupPrompt']
270
+ end
271
+
272
+ if attributes[:'user']
273
+ self.user = attributes[:'user']
274
+ end
275
+
276
+ if attributes[:'queue']
277
+ self.queue = attributes[:'queue']
278
+ end
279
+
280
+ if attributes[:'attributes']
281
+ if (value = attributes[:'attributes']).is_a?(Array)
282
+ self.attributes = value
283
+ end
284
+ end
285
+
286
+ if attributes[:'errorInfo']
287
+ self.error_info = attributes[:'errorInfo']
288
+ end
289
+
290
+ if attributes[:'script']
291
+ self.script = attributes[:'script']
292
+ end
293
+
294
+ if attributes[:'wrapupTimeoutMs']
295
+ self.wrapup_timeout_ms = attributes[:'wrapupTimeoutMs']
296
+ end
297
+
298
+ if attributes[:'wrapupSkipped']
299
+ self.wrapup_skipped = attributes[:'wrapupSkipped']
300
+ else
301
+ self.wrapup_skipped = false
302
+ end
303
+
304
+ if attributes[:'muted']
305
+ self.muted = attributes[:'muted']
306
+ else
307
+ self.muted = false
308
+ end
309
+
310
+ if attributes[:'confined']
311
+ self.confined = attributes[:'confined']
312
+ else
313
+ self.confined = false
314
+ end
315
+
316
+ if attributes[:'recording']
317
+ self.recording = attributes[:'recording']
318
+ else
319
+ self.recording = false
320
+ end
321
+
322
+ if attributes[:'recordingState']
323
+ self.recording_state = attributes[:'recordingState']
324
+ end
325
+
326
+ if attributes[:'group']
327
+ self.group = attributes[:'group']
328
+ end
329
+
330
+ if attributes[:'ani']
331
+ self.ani = attributes[:'ani']
332
+ end
333
+
334
+ if attributes[:'dnis']
335
+ self.dnis = attributes[:'dnis']
336
+ end
337
+
338
+ if attributes[:'documentId']
339
+ self.document_id = attributes[:'documentId']
340
+ end
341
+
342
+ if attributes[:'monitoredParticipantId']
343
+ self.monitored_participant_id = attributes[:'monitoredParticipantId']
344
+ end
345
+
346
+ if attributes[:'consultParticipantId']
347
+ self.consult_participant_id = attributes[:'consultParticipantId']
348
+ end
349
+
350
+ end
351
+
352
+ # Custom attribute writer method checking allowed values (enum).
353
+ def state=(state)
354
+ allowed_values = ["ALERTING", "DIALING", "CONTACTING", "OFFERING", "CONNECTED", "DISCONNECTED", "TERMINATED", "CONVERTING", "UPLOADING", "TRANSMITTING", "NONE"]
355
+ if state && !allowed_values.include?(state)
356
+ fail "invalid value for 'state', must be one of #{allowed_values}"
357
+ end
358
+ @state = state
359
+ end
360
+
361
+ # Custom attribute writer method checking allowed values (enum).
362
+ def direction=(direction)
363
+ allowed_values = ["INBOUND", "OUTBOUND"]
364
+ if direction && !allowed_values.include?(direction)
365
+ fail "invalid value for 'direction', must be one of #{allowed_values}"
366
+ end
367
+ @direction = direction
368
+ end
369
+
370
+ # Custom attribute writer method checking allowed values (enum).
371
+ def disconnect_type=(disconnect_type)
372
+ allowed_values = ["ENDPOINT", "CLIENT", "SYSTEM", "TRANSFER", "TRANSFER_CONFERENCE", "TRANSFER_CONSULT", "ERROR", "PEER", "OTHER"]
373
+ if disconnect_type && !allowed_values.include?(disconnect_type)
374
+ fail "invalid value for 'disconnect_type', must be one of #{allowed_values}"
375
+ end
376
+ @disconnect_type = disconnect_type
377
+ end
378
+
379
+ # Custom attribute writer method checking allowed values (enum).
380
+ def recording_state=(recording_state)
381
+ allowed_values = ["NONE", "ACTIVE", "PAUSED"]
382
+ if recording_state && !allowed_values.include?(recording_state)
383
+ fail "invalid value for 'recording_state', must be one of #{allowed_values}"
384
+ end
385
+ @recording_state = recording_state
386
+ end
387
+
388
+ # Check equality by comparing each attribute.
389
+ def ==(o)
390
+ return true if self.equal?(o)
391
+ self.class == o.class &&
392
+ id == o.id &&
393
+ name == o.name &&
394
+ address == o.address &&
395
+ start_time == o.start_time &&
396
+ connected_time == o.connected_time &&
397
+ end_time == o.end_time &&
398
+ start_hold_time == o.start_hold_time &&
399
+ purpose == o.purpose &&
400
+ state == o.state &&
401
+ direction == o.direction &&
402
+ disconnect_type == o.disconnect_type &&
403
+ held == o.held &&
404
+ wrapup_required == o.wrapup_required &&
405
+ wrapup_prompt == o.wrapup_prompt &&
406
+ user == o.user &&
407
+ queue == o.queue &&
408
+ attributes == o.attributes &&
409
+ error_info == o.error_info &&
410
+ script == o.script &&
411
+ wrapup_timeout_ms == o.wrapup_timeout_ms &&
412
+ wrapup_skipped == o.wrapup_skipped &&
413
+ muted == o.muted &&
414
+ confined == o.confined &&
415
+ recording == o.recording &&
416
+ recording_state == o.recording_state &&
417
+ group == o.group &&
418
+ ani == o.ani &&
419
+ dnis == o.dnis &&
420
+ document_id == o.document_id &&
421
+ monitored_participant_id == o.monitored_participant_id &&
422
+ consult_participant_id == o.consult_participant_id
423
+ end
424
+
425
+ # @see the `==` method
426
+ def eql?(o)
427
+ self == o
428
+ end
429
+
430
+ # Calculate hash code according to all attributes.
431
+ def hash
432
+ [id, name, address, start_time, connected_time, end_time, start_hold_time, purpose, state, direction, disconnect_type, held, wrapup_required, wrapup_prompt, user, queue, attributes, error_info, script, wrapup_timeout_ms, wrapup_skipped, muted, confined, recording, recording_state, group, ani, dnis, document_id, monitored_participant_id, consult_participant_id].hash
433
+ end
434
+
435
+ # build the object from hash
436
+ def build_from_hash(attributes)
437
+ return nil unless attributes.is_a?(Hash)
438
+ self.class.swagger_types.each_pair do |key, type|
439
+ if type =~ /^Array<(.*)>/i
440
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
441
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
442
+ else
443
+ #TODO show warning in debug mode
444
+ end
445
+ elsif !attributes[self.class.attribute_map[key]].nil?
446
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
447
+ else
448
+ # data not found in attributes(hash), not an issue as the data can be optional
449
+ end
450
+ end
451
+
452
+ self
453
+ end
454
+
455
+ def _deserialize(type, value)
456
+ case type.to_sym
457
+ when :DateTime
458
+ DateTime.parse(value)
459
+ when :Date
460
+ Date.parse(value)
461
+ when :String
462
+ value.to_s
463
+ when :Integer
464
+ value.to_i
465
+ when :Float
466
+ value.to_f
467
+ when :BOOLEAN
468
+ if value =~ /^(true|t|yes|y|1)$/i
469
+ true
470
+ else
471
+ false
472
+ end
473
+ when /\AArray<(?<inner_type>.+)>\z/
474
+ inner_type = Regexp.last_match[:inner_type]
475
+ value.map { |v| _deserialize(inner_type, v) }
476
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
477
+ k_type = Regexp.last_match[:k_type]
478
+ v_type = Regexp.last_match[:v_type]
479
+ {}.tap do |hash|
480
+ value.each do |k, v|
481
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
482
+ end
483
+ end
484
+ else # model
485
+ _model = Object.const_get("PureCloud").const_get(type).new
486
+ _model.build_from_hash(value)
487
+ end
488
+ end
489
+
490
+ def to_s
491
+ to_hash.to_s
492
+ end
493
+
494
+ # to_body is an alias to to_body (backward compatibility))
495
+ def to_body
496
+ to_hash
497
+ end
498
+
499
+ # return the object in the form of hash
500
+ def to_hash
501
+ hash = {}
502
+ self.class.attribute_map.each_pair do |attr, param|
503
+ value = self.send(attr)
504
+ next if value.nil?
505
+ hash[param] = _to_hash(value)
506
+ end
507
+ hash
508
+ end
509
+
510
+ # Method to output non-array value in the form of hash
511
+ # For object, use to_hash. Otherwise, just return the value
512
+ def _to_hash(value)
513
+ if value.is_a?(Array)
514
+ value.compact.map{ |v| _to_hash(v) }
515
+ elsif value.is_a?(Hash)
516
+ {}.tap do |hash|
517
+ value.each { |k, v| hash[k] = _to_hash(v) }
518
+ end
519
+ elsif value.respond_to? :to_hash
520
+ value.to_hash
521
+ else
522
+ value
523
+ end
524
+ end
525
+
526
+ end
527
+ end