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
@@ -12,12 +12,12 @@ module PureCloud
12
12
 
13
13
  attr_accessor :self_uri
14
14
 
15
+ attr_accessor :next_uri
16
+
15
17
  attr_accessor :first_uri
16
18
 
17
19
  attr_accessor :previous_uri
18
20
 
19
- attr_accessor :next_uri
20
-
21
21
  attr_accessor :last_uri
22
22
 
23
23
  attr_accessor :page_count
@@ -36,12 +36,12 @@ module PureCloud
36
36
 
37
37
  :'self_uri' => :'selfUri',
38
38
 
39
+ :'next_uri' => :'nextUri',
40
+
39
41
  :'first_uri' => :'firstUri',
40
42
 
41
43
  :'previous_uri' => :'previousUri',
42
44
 
43
- :'next_uri' => :'nextUri',
44
-
45
45
  :'last_uri' => :'lastUri',
46
46
 
47
47
  :'page_count' => :'pageCount'
@@ -55,11 +55,11 @@ module PureCloud
55
55
  :'page_size' => :'Integer',
56
56
  :'page_number' => :'Integer',
57
57
  :'total' => :'Integer',
58
- :'entities' => :'Array<Skill>',
58
+ :'entities' => :'Array<RoutingSkill>',
59
59
  :'self_uri' => :'String',
60
+ :'next_uri' => :'String',
60
61
  :'first_uri' => :'String',
61
62
  :'previous_uri' => :'String',
62
- :'next_uri' => :'String',
63
63
  :'last_uri' => :'String',
64
64
  :'page_count' => :'Integer'
65
65
 
@@ -95,6 +95,10 @@ module PureCloud
95
95
  self.self_uri = attributes[:'selfUri']
96
96
  end
97
97
 
98
+ if attributes[:'nextUri']
99
+ self.next_uri = attributes[:'nextUri']
100
+ end
101
+
98
102
  if attributes[:'firstUri']
99
103
  self.first_uri = attributes[:'firstUri']
100
104
  end
@@ -103,10 +107,6 @@ module PureCloud
103
107
  self.previous_uri = attributes[:'previousUri']
104
108
  end
105
109
 
106
- if attributes[:'nextUri']
107
- self.next_uri = attributes[:'nextUri']
108
- end
109
-
110
110
  if attributes[:'lastUri']
111
111
  self.last_uri = attributes[:'lastUri']
112
112
  end
@@ -126,9 +126,9 @@ module PureCloud
126
126
  total == o.total &&
127
127
  entities == o.entities &&
128
128
  self_uri == o.self_uri &&
129
+ next_uri == o.next_uri &&
129
130
  first_uri == o.first_uri &&
130
131
  previous_uri == o.previous_uri &&
131
- next_uri == o.next_uri &&
132
132
  last_uri == o.last_uri &&
133
133
  page_count == o.page_count
134
134
  end
@@ -140,7 +140,7 @@ module PureCloud
140
140
 
141
141
  # Calculate hash code according to all attributes.
142
142
  def hash
143
- [page_size, page_number, total, entities, self_uri, first_uri, previous_uri, next_uri, last_uri, page_count].hash
143
+ [page_size, page_number, total, entities, self_uri, next_uri, first_uri, previous_uri, last_uri, page_count].hash
144
144
  end
145
145
 
146
146
  # build the object from hash
@@ -0,0 +1,194 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class SocialConversation
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
+ # The URI for this object
17
+ attr_accessor :self_uri
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+
23
+ :'id' => :'id',
24
+
25
+ :'name' => :'name',
26
+
27
+ :'participants' => :'participants',
28
+
29
+ :'other_media_uris' => :'otherMediaUris',
30
+
31
+ :'self_uri' => :'selfUri'
32
+
33
+ }
34
+ end
35
+
36
+ # Attribute type mapping.
37
+ def self.swagger_types
38
+ {
39
+ :'id' => :'String',
40
+ :'name' => :'String',
41
+ :'participants' => :'Array<SocialParticipant>',
42
+ :'other_media_uris' => :'Array<String>',
43
+ :'self_uri' => :'String'
44
+
45
+ }
46
+ end
47
+
48
+ def initialize(attributes = {})
49
+ return unless attributes.is_a?(Hash)
50
+
51
+ # convert string to symbol for hash key
52
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
53
+
54
+
55
+ if attributes[:'id']
56
+ self.id = attributes[:'id']
57
+ end
58
+
59
+ if attributes[:'name']
60
+ self.name = attributes[:'name']
61
+ end
62
+
63
+ if attributes[:'participants']
64
+ if (value = attributes[:'participants']).is_a?(Array)
65
+ self.participants = value
66
+ end
67
+ end
68
+
69
+ if attributes[:'otherMediaUris']
70
+ if (value = attributes[:'otherMediaUris']).is_a?(Array)
71
+ self.other_media_uris = value
72
+ end
73
+ end
74
+
75
+ if attributes[:'selfUri']
76
+ self.self_uri = attributes[:'selfUri']
77
+ end
78
+
79
+ end
80
+
81
+ # Check equality by comparing each attribute.
82
+ def ==(o)
83
+ return true if self.equal?(o)
84
+ self.class == o.class &&
85
+ id == o.id &&
86
+ name == o.name &&
87
+ participants == o.participants &&
88
+ other_media_uris == o.other_media_uris &&
89
+ self_uri == o.self_uri
90
+ end
91
+
92
+ # @see the `==` method
93
+ def eql?(o)
94
+ self == o
95
+ end
96
+
97
+ # Calculate hash code according to all attributes.
98
+ def hash
99
+ [id, name, participants, other_media_uris, self_uri].hash
100
+ end
101
+
102
+ # build the object from hash
103
+ def build_from_hash(attributes)
104
+ return nil unless attributes.is_a?(Hash)
105
+ self.class.swagger_types.each_pair do |key, type|
106
+ if type =~ /^Array<(.*)>/i
107
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
108
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
109
+ else
110
+ #TODO show warning in debug mode
111
+ end
112
+ elsif !attributes[self.class.attribute_map[key]].nil?
113
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
114
+ else
115
+ # data not found in attributes(hash), not an issue as the data can be optional
116
+ end
117
+ end
118
+
119
+ self
120
+ end
121
+
122
+ def _deserialize(type, value)
123
+ case type.to_sym
124
+ when :DateTime
125
+ DateTime.parse(value)
126
+ when :Date
127
+ Date.parse(value)
128
+ when :String
129
+ value.to_s
130
+ when :Integer
131
+ value.to_i
132
+ when :Float
133
+ value.to_f
134
+ when :BOOLEAN
135
+ if value =~ /^(true|t|yes|y|1)$/i
136
+ true
137
+ else
138
+ false
139
+ end
140
+ when /\AArray<(?<inner_type>.+)>\z/
141
+ inner_type = Regexp.last_match[:inner_type]
142
+ value.map { |v| _deserialize(inner_type, v) }
143
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
144
+ k_type = Regexp.last_match[:k_type]
145
+ v_type = Regexp.last_match[:v_type]
146
+ {}.tap do |hash|
147
+ value.each do |k, v|
148
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
149
+ end
150
+ end
151
+ else # model
152
+ _model = Object.const_get("PureCloud").const_get(type).new
153
+ _model.build_from_hash(value)
154
+ end
155
+ end
156
+
157
+ def to_s
158
+ to_hash.to_s
159
+ end
160
+
161
+ # to_body is an alias to to_body (backward compatibility))
162
+ def to_body
163
+ to_hash
164
+ end
165
+
166
+ # return the object in the form of hash
167
+ def to_hash
168
+ hash = {}
169
+ self.class.attribute_map.each_pair do |attr, param|
170
+ value = self.send(attr)
171
+ next if value.nil?
172
+ hash[param] = _to_hash(value)
173
+ end
174
+ hash
175
+ end
176
+
177
+ # Method to output non-array value in the form of hash
178
+ # For object, use to_hash. Otherwise, just return the value
179
+ def _to_hash(value)
180
+ if value.is_a?(Array)
181
+ value.compact.map{ |v| _to_hash(v) }
182
+ elsif value.is_a?(Hash)
183
+ {}.tap do |hash|
184
+ value.each { |k, v| hash[k] = _to_hash(v) }
185
+ end
186
+ elsif value.respond_to? :to_hash
187
+ value.to_hash
188
+ else
189
+ value
190
+ end
191
+ end
192
+
193
+ end
194
+ end
@@ -0,0 +1,446 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class SocialParticipant
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
+ # The social media ID used by this participant.
69
+ attr_accessor :social_media_id
70
+
71
+ # The social media hub used by this participant.
72
+ attr_accessor :social_media_hub
73
+
74
+ # The social media user name used by this participant.
75
+ attr_accessor :social_user_name
76
+
77
+ # Some preview text for this participant.
78
+ attr_accessor :preview_text
79
+
80
+ # Attribute mapping from ruby-style variable name to JSON key.
81
+ def self.attribute_map
82
+ {
83
+
84
+ :'id' => :'id',
85
+
86
+ :'name' => :'name',
87
+
88
+ :'address' => :'address',
89
+
90
+ :'start_time' => :'startTime',
91
+
92
+ :'connected_time' => :'connectedTime',
93
+
94
+ :'end_time' => :'endTime',
95
+
96
+ :'start_hold_time' => :'startHoldTime',
97
+
98
+ :'purpose' => :'purpose',
99
+
100
+ :'state' => :'state',
101
+
102
+ :'direction' => :'direction',
103
+
104
+ :'disconnect_type' => :'disconnectType',
105
+
106
+ :'held' => :'held',
107
+
108
+ :'wrapup_required' => :'wrapupRequired',
109
+
110
+ :'wrapup_prompt' => :'wrapupPrompt',
111
+
112
+ :'user' => :'user',
113
+
114
+ :'queue' => :'queue',
115
+
116
+ :'attributes' => :'attributes',
117
+
118
+ :'error_info' => :'errorInfo',
119
+
120
+ :'script' => :'script',
121
+
122
+ :'wrapup_timeout_ms' => :'wrapupTimeoutMs',
123
+
124
+ :'wrapup_skipped' => :'wrapupSkipped',
125
+
126
+ :'social_media_id' => :'socialMediaId',
127
+
128
+ :'social_media_hub' => :'socialMediaHub',
129
+
130
+ :'social_user_name' => :'socialUserName',
131
+
132
+ :'preview_text' => :'previewText'
133
+
134
+ }
135
+ end
136
+
137
+ # Attribute type mapping.
138
+ def self.swagger_types
139
+ {
140
+ :'id' => :'String',
141
+ :'name' => :'String',
142
+ :'address' => :'String',
143
+ :'start_time' => :'DateTime',
144
+ :'connected_time' => :'DateTime',
145
+ :'end_time' => :'DateTime',
146
+ :'start_hold_time' => :'DateTime',
147
+ :'purpose' => :'String',
148
+ :'state' => :'String',
149
+ :'direction' => :'String',
150
+ :'disconnect_type' => :'String',
151
+ :'held' => :'BOOLEAN',
152
+ :'wrapup_required' => :'BOOLEAN',
153
+ :'wrapup_prompt' => :'String',
154
+ :'user' => :'UriReference',
155
+ :'queue' => :'UriReference',
156
+ :'attributes' => :'Hash<String, String>',
157
+ :'error_info' => :'ErrorBody',
158
+ :'script' => :'UriReference',
159
+ :'wrapup_timeout_ms' => :'Integer',
160
+ :'wrapup_skipped' => :'BOOLEAN',
161
+ :'social_media_id' => :'String',
162
+ :'social_media_hub' => :'String',
163
+ :'social_user_name' => :'String',
164
+ :'preview_text' => :'String'
165
+
166
+ }
167
+ end
168
+
169
+ def initialize(attributes = {})
170
+ return unless attributes.is_a?(Hash)
171
+
172
+ # convert string to symbol for hash key
173
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
174
+
175
+
176
+ if attributes[:'id']
177
+ self.id = attributes[:'id']
178
+ end
179
+
180
+ if attributes[:'name']
181
+ self.name = attributes[:'name']
182
+ end
183
+
184
+ if attributes[:'address']
185
+ self.address = attributes[:'address']
186
+ end
187
+
188
+ if attributes[:'startTime']
189
+ self.start_time = attributes[:'startTime']
190
+ end
191
+
192
+ if attributes[:'connectedTime']
193
+ self.connected_time = attributes[:'connectedTime']
194
+ end
195
+
196
+ if attributes[:'endTime']
197
+ self.end_time = attributes[:'endTime']
198
+ end
199
+
200
+ if attributes[:'startHoldTime']
201
+ self.start_hold_time = attributes[:'startHoldTime']
202
+ end
203
+
204
+ if attributes[:'purpose']
205
+ self.purpose = attributes[:'purpose']
206
+ end
207
+
208
+ if attributes[:'state']
209
+ self.state = attributes[:'state']
210
+ end
211
+
212
+ if attributes[:'direction']
213
+ self.direction = attributes[:'direction']
214
+ end
215
+
216
+ if attributes[:'disconnectType']
217
+ self.disconnect_type = attributes[:'disconnectType']
218
+ end
219
+
220
+ if attributes[:'held']
221
+ self.held = attributes[:'held']
222
+ else
223
+ self.held = false
224
+ end
225
+
226
+ if attributes[:'wrapupRequired']
227
+ self.wrapup_required = attributes[:'wrapupRequired']
228
+ else
229
+ self.wrapup_required = false
230
+ end
231
+
232
+ if attributes[:'wrapupPrompt']
233
+ self.wrapup_prompt = attributes[:'wrapupPrompt']
234
+ end
235
+
236
+ if attributes[:'user']
237
+ self.user = attributes[:'user']
238
+ end
239
+
240
+ if attributes[:'queue']
241
+ self.queue = attributes[:'queue']
242
+ end
243
+
244
+ if attributes[:'attributes']
245
+ if (value = attributes[:'attributes']).is_a?(Array)
246
+ self.attributes = value
247
+ end
248
+ end
249
+
250
+ if attributes[:'errorInfo']
251
+ self.error_info = attributes[:'errorInfo']
252
+ end
253
+
254
+ if attributes[:'script']
255
+ self.script = attributes[:'script']
256
+ end
257
+
258
+ if attributes[:'wrapupTimeoutMs']
259
+ self.wrapup_timeout_ms = attributes[:'wrapupTimeoutMs']
260
+ end
261
+
262
+ if attributes[:'wrapupSkipped']
263
+ self.wrapup_skipped = attributes[:'wrapupSkipped']
264
+ else
265
+ self.wrapup_skipped = false
266
+ end
267
+
268
+ if attributes[:'socialMediaId']
269
+ self.social_media_id = attributes[:'socialMediaId']
270
+ end
271
+
272
+ if attributes[:'socialMediaHub']
273
+ self.social_media_hub = attributes[:'socialMediaHub']
274
+ end
275
+
276
+ if attributes[:'socialUserName']
277
+ self.social_user_name = attributes[:'socialUserName']
278
+ end
279
+
280
+ if attributes[:'previewText']
281
+ self.preview_text = attributes[:'previewText']
282
+ end
283
+
284
+ end
285
+
286
+ # Custom attribute writer method checking allowed values (enum).
287
+ def state=(state)
288
+ allowed_values = ["ALERTING", "DIALING", "CONTACTING", "OFFERING", "CONNECTED", "DISCONNECTED", "TERMINATED", "CONVERTING", "UPLOADING", "TRANSMITTING", "NONE"]
289
+ if state && !allowed_values.include?(state)
290
+ fail "invalid value for 'state', must be one of #{allowed_values}"
291
+ end
292
+ @state = state
293
+ end
294
+
295
+ # Custom attribute writer method checking allowed values (enum).
296
+ def direction=(direction)
297
+ allowed_values = ["INBOUND", "OUTBOUND"]
298
+ if direction && !allowed_values.include?(direction)
299
+ fail "invalid value for 'direction', must be one of #{allowed_values}"
300
+ end
301
+ @direction = direction
302
+ end
303
+
304
+ # Custom attribute writer method checking allowed values (enum).
305
+ def disconnect_type=(disconnect_type)
306
+ allowed_values = ["ENDPOINT", "CLIENT", "SYSTEM", "TRANSFER", "TRANSFER_CONFERENCE", "TRANSFER_CONSULT", "ERROR", "PEER", "OTHER"]
307
+ if disconnect_type && !allowed_values.include?(disconnect_type)
308
+ fail "invalid value for 'disconnect_type', must be one of #{allowed_values}"
309
+ end
310
+ @disconnect_type = disconnect_type
311
+ end
312
+
313
+ # Check equality by comparing each attribute.
314
+ def ==(o)
315
+ return true if self.equal?(o)
316
+ self.class == o.class &&
317
+ id == o.id &&
318
+ name == o.name &&
319
+ address == o.address &&
320
+ start_time == o.start_time &&
321
+ connected_time == o.connected_time &&
322
+ end_time == o.end_time &&
323
+ start_hold_time == o.start_hold_time &&
324
+ purpose == o.purpose &&
325
+ state == o.state &&
326
+ direction == o.direction &&
327
+ disconnect_type == o.disconnect_type &&
328
+ held == o.held &&
329
+ wrapup_required == o.wrapup_required &&
330
+ wrapup_prompt == o.wrapup_prompt &&
331
+ user == o.user &&
332
+ queue == o.queue &&
333
+ attributes == o.attributes &&
334
+ error_info == o.error_info &&
335
+ script == o.script &&
336
+ wrapup_timeout_ms == o.wrapup_timeout_ms &&
337
+ wrapup_skipped == o.wrapup_skipped &&
338
+ social_media_id == o.social_media_id &&
339
+ social_media_hub == o.social_media_hub &&
340
+ social_user_name == o.social_user_name &&
341
+ preview_text == o.preview_text
342
+ end
343
+
344
+ # @see the `==` method
345
+ def eql?(o)
346
+ self == o
347
+ end
348
+
349
+ # Calculate hash code according to all attributes.
350
+ def hash
351
+ [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, social_media_id, social_media_hub, social_user_name, preview_text].hash
352
+ end
353
+
354
+ # build the object from hash
355
+ def build_from_hash(attributes)
356
+ return nil unless attributes.is_a?(Hash)
357
+ self.class.swagger_types.each_pair do |key, type|
358
+ if type =~ /^Array<(.*)>/i
359
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
360
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
361
+ else
362
+ #TODO show warning in debug mode
363
+ end
364
+ elsif !attributes[self.class.attribute_map[key]].nil?
365
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
366
+ else
367
+ # data not found in attributes(hash), not an issue as the data can be optional
368
+ end
369
+ end
370
+
371
+ self
372
+ end
373
+
374
+ def _deserialize(type, value)
375
+ case type.to_sym
376
+ when :DateTime
377
+ DateTime.parse(value)
378
+ when :Date
379
+ Date.parse(value)
380
+ when :String
381
+ value.to_s
382
+ when :Integer
383
+ value.to_i
384
+ when :Float
385
+ value.to_f
386
+ when :BOOLEAN
387
+ if value =~ /^(true|t|yes|y|1)$/i
388
+ true
389
+ else
390
+ false
391
+ end
392
+ when /\AArray<(?<inner_type>.+)>\z/
393
+ inner_type = Regexp.last_match[:inner_type]
394
+ value.map { |v| _deserialize(inner_type, v) }
395
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
396
+ k_type = Regexp.last_match[:k_type]
397
+ v_type = Regexp.last_match[:v_type]
398
+ {}.tap do |hash|
399
+ value.each do |k, v|
400
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
401
+ end
402
+ end
403
+ else # model
404
+ _model = Object.const_get("PureCloud").const_get(type).new
405
+ _model.build_from_hash(value)
406
+ end
407
+ end
408
+
409
+ def to_s
410
+ to_hash.to_s
411
+ end
412
+
413
+ # to_body is an alias to to_body (backward compatibility))
414
+ def to_body
415
+ to_hash
416
+ end
417
+
418
+ # return the object in the form of hash
419
+ def to_hash
420
+ hash = {}
421
+ self.class.attribute_map.each_pair do |attr, param|
422
+ value = self.send(attr)
423
+ next if value.nil?
424
+ hash[param] = _to_hash(value)
425
+ end
426
+ hash
427
+ end
428
+
429
+ # Method to output non-array value in the form of hash
430
+ # For object, use to_hash. Otherwise, just return the value
431
+ def _to_hash(value)
432
+ if value.is_a?(Array)
433
+ value.compact.map{ |v| _to_hash(v) }
434
+ elsif value.is_a?(Hash)
435
+ {}.tap do |hash|
436
+ value.each { |k, v| hash[k] = _to_hash(v) }
437
+ end
438
+ elsif value.respond_to? :to_hash
439
+ value.to_hash
440
+ else
441
+ value
442
+ end
443
+ end
444
+
445
+ end
446
+ end