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'
@@ -57,9 +57,9 @@ module PureCloud
57
57
  :'total' => :'Integer',
58
58
  :'entities' => :'Array<CallableTimeSet>',
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 CallbackConversation
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<CallbackParticipant>',
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,456 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class CallbackParticipant
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
+ attr_accessor :outbound_preview
69
+
70
+ attr_accessor :callback_numbers
71
+
72
+ attr_accessor :callback_user_name
73
+
74
+ attr_accessor :skip_enabled
75
+
76
+ attr_accessor :timeout_seconds
77
+
78
+ # Attribute mapping from ruby-style variable name to JSON key.
79
+ def self.attribute_map
80
+ {
81
+
82
+ :'id' => :'id',
83
+
84
+ :'name' => :'name',
85
+
86
+ :'address' => :'address',
87
+
88
+ :'start_time' => :'startTime',
89
+
90
+ :'connected_time' => :'connectedTime',
91
+
92
+ :'end_time' => :'endTime',
93
+
94
+ :'start_hold_time' => :'startHoldTime',
95
+
96
+ :'purpose' => :'purpose',
97
+
98
+ :'state' => :'state',
99
+
100
+ :'direction' => :'direction',
101
+
102
+ :'disconnect_type' => :'disconnectType',
103
+
104
+ :'held' => :'held',
105
+
106
+ :'wrapup_required' => :'wrapupRequired',
107
+
108
+ :'wrapup_prompt' => :'wrapupPrompt',
109
+
110
+ :'user' => :'user',
111
+
112
+ :'queue' => :'queue',
113
+
114
+ :'attributes' => :'attributes',
115
+
116
+ :'error_info' => :'errorInfo',
117
+
118
+ :'script' => :'script',
119
+
120
+ :'wrapup_timeout_ms' => :'wrapupTimeoutMs',
121
+
122
+ :'wrapup_skipped' => :'wrapupSkipped',
123
+
124
+ :'outbound_preview' => :'outboundPreview',
125
+
126
+ :'callback_numbers' => :'callbackNumbers',
127
+
128
+ :'callback_user_name' => :'callbackUserName',
129
+
130
+ :'skip_enabled' => :'skipEnabled',
131
+
132
+ :'timeout_seconds' => :'timeoutSeconds'
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
+ :'outbound_preview' => :'DialerPreview',
162
+ :'callback_numbers' => :'Array<String>',
163
+ :'callback_user_name' => :'String',
164
+ :'skip_enabled' => :'BOOLEAN',
165
+ :'timeout_seconds' => :'Integer'
166
+
167
+ }
168
+ end
169
+
170
+ def initialize(attributes = {})
171
+ return unless attributes.is_a?(Hash)
172
+
173
+ # convert string to symbol for hash key
174
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
175
+
176
+
177
+ if attributes[:'id']
178
+ self.id = attributes[:'id']
179
+ end
180
+
181
+ if attributes[:'name']
182
+ self.name = attributes[:'name']
183
+ end
184
+
185
+ if attributes[:'address']
186
+ self.address = attributes[:'address']
187
+ end
188
+
189
+ if attributes[:'startTime']
190
+ self.start_time = attributes[:'startTime']
191
+ end
192
+
193
+ if attributes[:'connectedTime']
194
+ self.connected_time = attributes[:'connectedTime']
195
+ end
196
+
197
+ if attributes[:'endTime']
198
+ self.end_time = attributes[:'endTime']
199
+ end
200
+
201
+ if attributes[:'startHoldTime']
202
+ self.start_hold_time = attributes[:'startHoldTime']
203
+ end
204
+
205
+ if attributes[:'purpose']
206
+ self.purpose = attributes[:'purpose']
207
+ end
208
+
209
+ if attributes[:'state']
210
+ self.state = attributes[:'state']
211
+ end
212
+
213
+ if attributes[:'direction']
214
+ self.direction = attributes[:'direction']
215
+ end
216
+
217
+ if attributes[:'disconnectType']
218
+ self.disconnect_type = attributes[:'disconnectType']
219
+ end
220
+
221
+ if attributes[:'held']
222
+ self.held = attributes[:'held']
223
+ else
224
+ self.held = false
225
+ end
226
+
227
+ if attributes[:'wrapupRequired']
228
+ self.wrapup_required = attributes[:'wrapupRequired']
229
+ else
230
+ self.wrapup_required = false
231
+ end
232
+
233
+ if attributes[:'wrapupPrompt']
234
+ self.wrapup_prompt = attributes[:'wrapupPrompt']
235
+ end
236
+
237
+ if attributes[:'user']
238
+ self.user = attributes[:'user']
239
+ end
240
+
241
+ if attributes[:'queue']
242
+ self.queue = attributes[:'queue']
243
+ end
244
+
245
+ if attributes[:'attributes']
246
+ if (value = attributes[:'attributes']).is_a?(Array)
247
+ self.attributes = value
248
+ end
249
+ end
250
+
251
+ if attributes[:'errorInfo']
252
+ self.error_info = attributes[:'errorInfo']
253
+ end
254
+
255
+ if attributes[:'script']
256
+ self.script = attributes[:'script']
257
+ end
258
+
259
+ if attributes[:'wrapupTimeoutMs']
260
+ self.wrapup_timeout_ms = attributes[:'wrapupTimeoutMs']
261
+ end
262
+
263
+ if attributes[:'wrapupSkipped']
264
+ self.wrapup_skipped = attributes[:'wrapupSkipped']
265
+ else
266
+ self.wrapup_skipped = false
267
+ end
268
+
269
+ if attributes[:'outboundPreview']
270
+ self.outbound_preview = attributes[:'outboundPreview']
271
+ end
272
+
273
+ if attributes[:'callbackNumbers']
274
+ if (value = attributes[:'callbackNumbers']).is_a?(Array)
275
+ self.callback_numbers = value
276
+ end
277
+ end
278
+
279
+ if attributes[:'callbackUserName']
280
+ self.callback_user_name = attributes[:'callbackUserName']
281
+ end
282
+
283
+ if attributes[:'skipEnabled']
284
+ self.skip_enabled = attributes[:'skipEnabled']
285
+ else
286
+ self.skip_enabled = false
287
+ end
288
+
289
+ if attributes[:'timeoutSeconds']
290
+ self.timeout_seconds = attributes[:'timeoutSeconds']
291
+ end
292
+
293
+ end
294
+
295
+ # Custom attribute writer method checking allowed values (enum).
296
+ def state=(state)
297
+ allowed_values = ["ALERTING", "DIALING", "CONTACTING", "OFFERING", "CONNECTED", "DISCONNECTED", "TERMINATED", "CONVERTING", "UPLOADING", "TRANSMITTING", "NONE"]
298
+ if state && !allowed_values.include?(state)
299
+ fail "invalid value for 'state', must be one of #{allowed_values}"
300
+ end
301
+ @state = state
302
+ end
303
+
304
+ # Custom attribute writer method checking allowed values (enum).
305
+ def direction=(direction)
306
+ allowed_values = ["INBOUND", "OUTBOUND"]
307
+ if direction && !allowed_values.include?(direction)
308
+ fail "invalid value for 'direction', must be one of #{allowed_values}"
309
+ end
310
+ @direction = direction
311
+ end
312
+
313
+ # Custom attribute writer method checking allowed values (enum).
314
+ def disconnect_type=(disconnect_type)
315
+ allowed_values = ["ENDPOINT", "CLIENT", "SYSTEM", "TRANSFER", "TRANSFER_CONFERENCE", "TRANSFER_CONSULT", "ERROR", "PEER", "OTHER"]
316
+ if disconnect_type && !allowed_values.include?(disconnect_type)
317
+ fail "invalid value for 'disconnect_type', must be one of #{allowed_values}"
318
+ end
319
+ @disconnect_type = disconnect_type
320
+ end
321
+
322
+ # Check equality by comparing each attribute.
323
+ def ==(o)
324
+ return true if self.equal?(o)
325
+ self.class == o.class &&
326
+ id == o.id &&
327
+ name == o.name &&
328
+ address == o.address &&
329
+ start_time == o.start_time &&
330
+ connected_time == o.connected_time &&
331
+ end_time == o.end_time &&
332
+ start_hold_time == o.start_hold_time &&
333
+ purpose == o.purpose &&
334
+ state == o.state &&
335
+ direction == o.direction &&
336
+ disconnect_type == o.disconnect_type &&
337
+ held == o.held &&
338
+ wrapup_required == o.wrapup_required &&
339
+ wrapup_prompt == o.wrapup_prompt &&
340
+ user == o.user &&
341
+ queue == o.queue &&
342
+ attributes == o.attributes &&
343
+ error_info == o.error_info &&
344
+ script == o.script &&
345
+ wrapup_timeout_ms == o.wrapup_timeout_ms &&
346
+ wrapup_skipped == o.wrapup_skipped &&
347
+ outbound_preview == o.outbound_preview &&
348
+ callback_numbers == o.callback_numbers &&
349
+ callback_user_name == o.callback_user_name &&
350
+ skip_enabled == o.skip_enabled &&
351
+ timeout_seconds == o.timeout_seconds
352
+ end
353
+
354
+ # @see the `==` method
355
+ def eql?(o)
356
+ self == o
357
+ end
358
+
359
+ # Calculate hash code according to all attributes.
360
+ def hash
361
+ [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, outbound_preview, callback_numbers, callback_user_name, skip_enabled, timeout_seconds].hash
362
+ end
363
+
364
+ # build the object from hash
365
+ def build_from_hash(attributes)
366
+ return nil unless attributes.is_a?(Hash)
367
+ self.class.swagger_types.each_pair do |key, type|
368
+ if type =~ /^Array<(.*)>/i
369
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
370
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
371
+ else
372
+ #TODO show warning in debug mode
373
+ end
374
+ elsif !attributes[self.class.attribute_map[key]].nil?
375
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
376
+ else
377
+ # data not found in attributes(hash), not an issue as the data can be optional
378
+ end
379
+ end
380
+
381
+ self
382
+ end
383
+
384
+ def _deserialize(type, value)
385
+ case type.to_sym
386
+ when :DateTime
387
+ DateTime.parse(value)
388
+ when :Date
389
+ Date.parse(value)
390
+ when :String
391
+ value.to_s
392
+ when :Integer
393
+ value.to_i
394
+ when :Float
395
+ value.to_f
396
+ when :BOOLEAN
397
+ if value =~ /^(true|t|yes|y|1)$/i
398
+ true
399
+ else
400
+ false
401
+ end
402
+ when /\AArray<(?<inner_type>.+)>\z/
403
+ inner_type = Regexp.last_match[:inner_type]
404
+ value.map { |v| _deserialize(inner_type, v) }
405
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
406
+ k_type = Regexp.last_match[:k_type]
407
+ v_type = Regexp.last_match[:v_type]
408
+ {}.tap do |hash|
409
+ value.each do |k, v|
410
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
411
+ end
412
+ end
413
+ else # model
414
+ _model = Object.const_get("PureCloud").const_get(type).new
415
+ _model.build_from_hash(value)
416
+ end
417
+ end
418
+
419
+ def to_s
420
+ to_hash.to_s
421
+ end
422
+
423
+ # to_body is an alias to to_body (backward compatibility))
424
+ def to_body
425
+ to_hash
426
+ end
427
+
428
+ # return the object in the form of hash
429
+ def to_hash
430
+ hash = {}
431
+ self.class.attribute_map.each_pair do |attr, param|
432
+ value = self.send(attr)
433
+ next if value.nil?
434
+ hash[param] = _to_hash(value)
435
+ end
436
+ hash
437
+ end
438
+
439
+ # Method to output non-array value in the form of hash
440
+ # For object, use to_hash. Otherwise, just return the value
441
+ def _to_hash(value)
442
+ if value.is_a?(Array)
443
+ value.compact.map{ |v| _to_hash(v) }
444
+ elsif value.is_a?(Hash)
445
+ {}.tap do |hash|
446
+ value.each { |k, v| hash[k] = _to_hash(v) }
447
+ end
448
+ elsif value.respond_to? :to_hash
449
+ value.to_hash
450
+ else
451
+ value
452
+ end
453
+ end
454
+
455
+ end
456
+ end