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
@@ -0,0 +1,607 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class AnalyticsSegment
5
+ attr_accessor :segment_id
6
+
7
+ # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
8
+ attr_accessor :segment_start
9
+
10
+ # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
11
+ attr_accessor :segment_end
12
+
13
+ attr_accessor :queue_id
14
+
15
+ attr_accessor :monitored_session_id
16
+
17
+ attr_accessor :user_id
18
+
19
+ attr_accessor :team_id
20
+
21
+ attr_accessor :wrap_up_code
22
+
23
+ attr_accessor :wrap_up_notes
24
+
25
+ attr_accessor :wrap_up_tags
26
+
27
+ attr_accessor :error_code
28
+
29
+ attr_accessor :disconnect_type
30
+
31
+ attr_accessor :direction
32
+
33
+ attr_accessor :how_ended
34
+
35
+ attr_accessor :segment_type
36
+
37
+ attr_accessor :purpose
38
+
39
+ attr_accessor :preferred_agent_ids
40
+
41
+ attr_accessor :requested_skill_ids
42
+
43
+ attr_accessor :requested_language_id
44
+
45
+ attr_accessor :properties
46
+
47
+ attr_accessor :ani
48
+
49
+ attr_accessor :dnis
50
+
51
+ attr_accessor :dialer_campaign_id
52
+
53
+ attr_accessor :dialer_contact_list_id
54
+
55
+ attr_accessor :disposition_name
56
+
57
+ attr_accessor :disposition_analyzer
58
+
59
+ attr_accessor :monitored_participant_id
60
+
61
+ attr_accessor :edge_id
62
+
63
+ attr_accessor :source_conversation_id
64
+
65
+ attr_accessor :destination_conversation_id
66
+
67
+ attr_accessor :source_session_id
68
+
69
+ attr_accessor :destination_session_id
70
+
71
+ attr_accessor :remote_name_displayable
72
+
73
+ attr_accessor :sip_response_codes
74
+
75
+ attr_accessor :q850_response_codes
76
+
77
+ attr_accessor :conference
78
+
79
+ attr_accessor :group_id
80
+
81
+ attr_accessor :room_id
82
+
83
+ attr_accessor :subject
84
+
85
+ attr_accessor :address_self
86
+
87
+ attr_accessor :address_other
88
+
89
+ # Attribute mapping from ruby-style variable name to JSON key.
90
+ def self.attribute_map
91
+ {
92
+
93
+ :'segment_id' => :'segmentId',
94
+
95
+ :'segment_start' => :'segmentStart',
96
+
97
+ :'segment_end' => :'segmentEnd',
98
+
99
+ :'queue_id' => :'queueId',
100
+
101
+ :'monitored_session_id' => :'monitoredSessionId',
102
+
103
+ :'user_id' => :'userId',
104
+
105
+ :'team_id' => :'teamId',
106
+
107
+ :'wrap_up_code' => :'wrapUpCode',
108
+
109
+ :'wrap_up_notes' => :'wrapUpNotes',
110
+
111
+ :'wrap_up_tags' => :'wrapUpTags',
112
+
113
+ :'error_code' => :'errorCode',
114
+
115
+ :'disconnect_type' => :'disconnectType',
116
+
117
+ :'direction' => :'direction',
118
+
119
+ :'how_ended' => :'howEnded',
120
+
121
+ :'segment_type' => :'segmentType',
122
+
123
+ :'purpose' => :'purpose',
124
+
125
+ :'preferred_agent_ids' => :'preferredAgentIds',
126
+
127
+ :'requested_skill_ids' => :'requestedSkillIds',
128
+
129
+ :'requested_language_id' => :'requestedLanguageId',
130
+
131
+ :'properties' => :'properties',
132
+
133
+ :'ani' => :'ani',
134
+
135
+ :'dnis' => :'dnis',
136
+
137
+ :'dialer_campaign_id' => :'dialerCampaignId',
138
+
139
+ :'dialer_contact_list_id' => :'dialerContactListId',
140
+
141
+ :'disposition_name' => :'dispositionName',
142
+
143
+ :'disposition_analyzer' => :'dispositionAnalyzer',
144
+
145
+ :'monitored_participant_id' => :'monitoredParticipantId',
146
+
147
+ :'edge_id' => :'edgeId',
148
+
149
+ :'source_conversation_id' => :'sourceConversationId',
150
+
151
+ :'destination_conversation_id' => :'destinationConversationId',
152
+
153
+ :'source_session_id' => :'sourceSessionId',
154
+
155
+ :'destination_session_id' => :'destinationSessionId',
156
+
157
+ :'remote_name_displayable' => :'remoteNameDisplayable',
158
+
159
+ :'sip_response_codes' => :'sipResponseCodes',
160
+
161
+ :'q850_response_codes' => :'q850ResponseCodes',
162
+
163
+ :'conference' => :'conference',
164
+
165
+ :'group_id' => :'groupId',
166
+
167
+ :'room_id' => :'roomId',
168
+
169
+ :'subject' => :'subject',
170
+
171
+ :'address_self' => :'addressSelf',
172
+
173
+ :'address_other' => :'addressOther'
174
+
175
+ }
176
+ end
177
+
178
+ # Attribute type mapping.
179
+ def self.swagger_types
180
+ {
181
+ :'segment_id' => :'String',
182
+ :'segment_start' => :'DateTime',
183
+ :'segment_end' => :'DateTime',
184
+ :'queue_id' => :'String',
185
+ :'monitored_session_id' => :'String',
186
+ :'user_id' => :'String',
187
+ :'team_id' => :'String',
188
+ :'wrap_up_code' => :'String',
189
+ :'wrap_up_notes' => :'String',
190
+ :'wrap_up_tags' => :'Array<String>',
191
+ :'error_code' => :'String',
192
+ :'disconnect_type' => :'String',
193
+ :'direction' => :'String',
194
+ :'how_ended' => :'String',
195
+ :'segment_type' => :'String',
196
+ :'purpose' => :'String',
197
+ :'preferred_agent_ids' => :'Array<String>',
198
+ :'requested_skill_ids' => :'Array<String>',
199
+ :'requested_language_id' => :'String',
200
+ :'properties' => :'Array<AnalyticsProperty>',
201
+ :'ani' => :'String',
202
+ :'dnis' => :'String',
203
+ :'dialer_campaign_id' => :'String',
204
+ :'dialer_contact_list_id' => :'String',
205
+ :'disposition_name' => :'String',
206
+ :'disposition_analyzer' => :'String',
207
+ :'monitored_participant_id' => :'String',
208
+ :'edge_id' => :'String',
209
+ :'source_conversation_id' => :'String',
210
+ :'destination_conversation_id' => :'String',
211
+ :'source_session_id' => :'String',
212
+ :'destination_session_id' => :'String',
213
+ :'remote_name_displayable' => :'String',
214
+ :'sip_response_codes' => :'Array<Integer>',
215
+ :'q850_response_codes' => :'Array<Integer>',
216
+ :'conference' => :'BOOLEAN',
217
+ :'group_id' => :'String',
218
+ :'room_id' => :'String',
219
+ :'subject' => :'String',
220
+ :'address_self' => :'String',
221
+ :'address_other' => :'String'
222
+
223
+ }
224
+ end
225
+
226
+ def initialize(attributes = {})
227
+ return unless attributes.is_a?(Hash)
228
+
229
+ # convert string to symbol for hash key
230
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
231
+
232
+
233
+ if attributes[:'segmentId']
234
+ self.segment_id = attributes[:'segmentId']
235
+ end
236
+
237
+ if attributes[:'segmentStart']
238
+ self.segment_start = attributes[:'segmentStart']
239
+ end
240
+
241
+ if attributes[:'segmentEnd']
242
+ self.segment_end = attributes[:'segmentEnd']
243
+ end
244
+
245
+ if attributes[:'queueId']
246
+ self.queue_id = attributes[:'queueId']
247
+ end
248
+
249
+ if attributes[:'monitoredSessionId']
250
+ self.monitored_session_id = attributes[:'monitoredSessionId']
251
+ end
252
+
253
+ if attributes[:'userId']
254
+ self.user_id = attributes[:'userId']
255
+ end
256
+
257
+ if attributes[:'teamId']
258
+ self.team_id = attributes[:'teamId']
259
+ end
260
+
261
+ if attributes[:'wrapUpCode']
262
+ self.wrap_up_code = attributes[:'wrapUpCode']
263
+ end
264
+
265
+ if attributes[:'wrapUpNotes']
266
+ self.wrap_up_notes = attributes[:'wrapUpNotes']
267
+ end
268
+
269
+ if attributes[:'wrapUpTags']
270
+ if (value = attributes[:'wrapUpTags']).is_a?(Array)
271
+ self.wrap_up_tags = value
272
+ end
273
+ end
274
+
275
+ if attributes[:'errorCode']
276
+ self.error_code = attributes[:'errorCode']
277
+ end
278
+
279
+ if attributes[:'disconnectType']
280
+ self.disconnect_type = attributes[:'disconnectType']
281
+ end
282
+
283
+ if attributes[:'direction']
284
+ self.direction = attributes[:'direction']
285
+ end
286
+
287
+ if attributes[:'howEnded']
288
+ self.how_ended = attributes[:'howEnded']
289
+ end
290
+
291
+ if attributes[:'segmentType']
292
+ self.segment_type = attributes[:'segmentType']
293
+ end
294
+
295
+ if attributes[:'purpose']
296
+ self.purpose = attributes[:'purpose']
297
+ end
298
+
299
+ if attributes[:'preferredAgentIds']
300
+ if (value = attributes[:'preferredAgentIds']).is_a?(Array)
301
+ self.preferred_agent_ids = value
302
+ end
303
+ end
304
+
305
+ if attributes[:'requestedSkillIds']
306
+ if (value = attributes[:'requestedSkillIds']).is_a?(Array)
307
+ self.requested_skill_ids = value
308
+ end
309
+ end
310
+
311
+ if attributes[:'requestedLanguageId']
312
+ self.requested_language_id = attributes[:'requestedLanguageId']
313
+ end
314
+
315
+ if attributes[:'properties']
316
+ if (value = attributes[:'properties']).is_a?(Array)
317
+ self.properties = value
318
+ end
319
+ end
320
+
321
+ if attributes[:'ani']
322
+ self.ani = attributes[:'ani']
323
+ end
324
+
325
+ if attributes[:'dnis']
326
+ self.dnis = attributes[:'dnis']
327
+ end
328
+
329
+ if attributes[:'dialerCampaignId']
330
+ self.dialer_campaign_id = attributes[:'dialerCampaignId']
331
+ end
332
+
333
+ if attributes[:'dialerContactListId']
334
+ self.dialer_contact_list_id = attributes[:'dialerContactListId']
335
+ end
336
+
337
+ if attributes[:'dispositionName']
338
+ self.disposition_name = attributes[:'dispositionName']
339
+ end
340
+
341
+ if attributes[:'dispositionAnalyzer']
342
+ self.disposition_analyzer = attributes[:'dispositionAnalyzer']
343
+ end
344
+
345
+ if attributes[:'monitoredParticipantId']
346
+ self.monitored_participant_id = attributes[:'monitoredParticipantId']
347
+ end
348
+
349
+ if attributes[:'edgeId']
350
+ self.edge_id = attributes[:'edgeId']
351
+ end
352
+
353
+ if attributes[:'sourceConversationId']
354
+ self.source_conversation_id = attributes[:'sourceConversationId']
355
+ end
356
+
357
+ if attributes[:'destinationConversationId']
358
+ self.destination_conversation_id = attributes[:'destinationConversationId']
359
+ end
360
+
361
+ if attributes[:'sourceSessionId']
362
+ self.source_session_id = attributes[:'sourceSessionId']
363
+ end
364
+
365
+ if attributes[:'destinationSessionId']
366
+ self.destination_session_id = attributes[:'destinationSessionId']
367
+ end
368
+
369
+ if attributes[:'remoteNameDisplayable']
370
+ self.remote_name_displayable = attributes[:'remoteNameDisplayable']
371
+ end
372
+
373
+ if attributes[:'sipResponseCodes']
374
+ if (value = attributes[:'sipResponseCodes']).is_a?(Array)
375
+ self.sip_response_codes = value
376
+ end
377
+ end
378
+
379
+ if attributes[:'q850ResponseCodes']
380
+ if (value = attributes[:'q850ResponseCodes']).is_a?(Array)
381
+ self.q850_response_codes = value
382
+ end
383
+ end
384
+
385
+ if attributes[:'conference']
386
+ self.conference = attributes[:'conference']
387
+ else
388
+ self.conference = false
389
+ end
390
+
391
+ if attributes[:'groupId']
392
+ self.group_id = attributes[:'groupId']
393
+ end
394
+
395
+ if attributes[:'roomId']
396
+ self.room_id = attributes[:'roomId']
397
+ end
398
+
399
+ if attributes[:'subject']
400
+ self.subject = attributes[:'subject']
401
+ end
402
+
403
+ if attributes[:'addressSelf']
404
+ self.address_self = attributes[:'addressSelf']
405
+ end
406
+
407
+ if attributes[:'addressOther']
408
+ self.address_other = attributes[:'addressOther']
409
+ end
410
+
411
+ end
412
+
413
+ # Custom attribute writer method checking allowed values (enum).
414
+ def disconnect_type=(disconnect_type)
415
+ allowed_values = ["endpoint", "client", "system", "transfer", "error", "peer", "other", "spam", "transportFailure", "conferenceTransfer", "consultTransfer", "forwardTransfer"]
416
+ if disconnect_type && !allowed_values.include?(disconnect_type)
417
+ fail "invalid value for 'disconnect_type', must be one of #{allowed_values}"
418
+ end
419
+ @disconnect_type = disconnect_type
420
+ end
421
+
422
+ # Custom attribute writer method checking allowed values (enum).
423
+ def direction=(direction)
424
+ allowed_values = ["inbound", "outbound"]
425
+ if direction && !allowed_values.include?(direction)
426
+ fail "invalid value for 'direction', must be one of #{allowed_values}"
427
+ end
428
+ @direction = direction
429
+ end
430
+
431
+ # Custom attribute writer method checking allowed values (enum).
432
+ def how_ended=(how_ended)
433
+ allowed_values = ["unknown", "notEnded", "disconnect", "interact", "alert", "hold", "ivr", "voicemail", "error", "conference"]
434
+ if how_ended && !allowed_values.include?(how_ended)
435
+ fail "invalid value for 'how_ended', must be one of #{allowed_values}"
436
+ end
437
+ @how_ended = how_ended
438
+ end
439
+
440
+ # Custom attribute writer method checking allowed values (enum).
441
+ def segment_type=(segment_type)
442
+ allowed_values = ["unknown", "alert", "system", "delay", "hold", "interact", "ivr", "dialing", "wrapup", "voicemail"]
443
+ if segment_type && !allowed_values.include?(segment_type)
444
+ fail "invalid value for 'segment_type', must be one of #{allowed_values}"
445
+ end
446
+ @segment_type = segment_type
447
+ end
448
+
449
+ # Custom attribute writer method checking allowed values (enum).
450
+ def purpose=(purpose)
451
+ allowed_values = ["manual", "dialer", "inbound", "acd", "ivr", "voicemail", "outbound", "agent", "user", "station", "group", "customer", "external"]
452
+ if purpose && !allowed_values.include?(purpose)
453
+ fail "invalid value for 'purpose', must be one of #{allowed_values}"
454
+ end
455
+ @purpose = purpose
456
+ end
457
+
458
+ # Check equality by comparing each attribute.
459
+ def ==(o)
460
+ return true if self.equal?(o)
461
+ self.class == o.class &&
462
+ segment_id == o.segment_id &&
463
+ segment_start == o.segment_start &&
464
+ segment_end == o.segment_end &&
465
+ queue_id == o.queue_id &&
466
+ monitored_session_id == o.monitored_session_id &&
467
+ user_id == o.user_id &&
468
+ team_id == o.team_id &&
469
+ wrap_up_code == o.wrap_up_code &&
470
+ wrap_up_notes == o.wrap_up_notes &&
471
+ wrap_up_tags == o.wrap_up_tags &&
472
+ error_code == o.error_code &&
473
+ disconnect_type == o.disconnect_type &&
474
+ direction == o.direction &&
475
+ how_ended == o.how_ended &&
476
+ segment_type == o.segment_type &&
477
+ purpose == o.purpose &&
478
+ preferred_agent_ids == o.preferred_agent_ids &&
479
+ requested_skill_ids == o.requested_skill_ids &&
480
+ requested_language_id == o.requested_language_id &&
481
+ properties == o.properties &&
482
+ ani == o.ani &&
483
+ dnis == o.dnis &&
484
+ dialer_campaign_id == o.dialer_campaign_id &&
485
+ dialer_contact_list_id == o.dialer_contact_list_id &&
486
+ disposition_name == o.disposition_name &&
487
+ disposition_analyzer == o.disposition_analyzer &&
488
+ monitored_participant_id == o.monitored_participant_id &&
489
+ edge_id == o.edge_id &&
490
+ source_conversation_id == o.source_conversation_id &&
491
+ destination_conversation_id == o.destination_conversation_id &&
492
+ source_session_id == o.source_session_id &&
493
+ destination_session_id == o.destination_session_id &&
494
+ remote_name_displayable == o.remote_name_displayable &&
495
+ sip_response_codes == o.sip_response_codes &&
496
+ q850_response_codes == o.q850_response_codes &&
497
+ conference == o.conference &&
498
+ group_id == o.group_id &&
499
+ room_id == o.room_id &&
500
+ subject == o.subject &&
501
+ address_self == o.address_self &&
502
+ address_other == o.address_other
503
+ end
504
+
505
+ # @see the `==` method
506
+ def eql?(o)
507
+ self == o
508
+ end
509
+
510
+ # Calculate hash code according to all attributes.
511
+ def hash
512
+ [segment_id, segment_start, segment_end, queue_id, monitored_session_id, user_id, team_id, wrap_up_code, wrap_up_notes, wrap_up_tags, error_code, disconnect_type, direction, how_ended, segment_type, purpose, preferred_agent_ids, requested_skill_ids, requested_language_id, properties, ani, dnis, dialer_campaign_id, dialer_contact_list_id, disposition_name, disposition_analyzer, monitored_participant_id, edge_id, source_conversation_id, destination_conversation_id, source_session_id, destination_session_id, remote_name_displayable, sip_response_codes, q850_response_codes, conference, group_id, room_id, subject, address_self, address_other].hash
513
+ end
514
+
515
+ # build the object from hash
516
+ def build_from_hash(attributes)
517
+ return nil unless attributes.is_a?(Hash)
518
+ self.class.swagger_types.each_pair do |key, type|
519
+ if type =~ /^Array<(.*)>/i
520
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
521
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
522
+ else
523
+ #TODO show warning in debug mode
524
+ end
525
+ elsif !attributes[self.class.attribute_map[key]].nil?
526
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
527
+ else
528
+ # data not found in attributes(hash), not an issue as the data can be optional
529
+ end
530
+ end
531
+
532
+ self
533
+ end
534
+
535
+ def _deserialize(type, value)
536
+ case type.to_sym
537
+ when :DateTime
538
+ DateTime.parse(value)
539
+ when :Date
540
+ Date.parse(value)
541
+ when :String
542
+ value.to_s
543
+ when :Integer
544
+ value.to_i
545
+ when :Float
546
+ value.to_f
547
+ when :BOOLEAN
548
+ if value =~ /^(true|t|yes|y|1)$/i
549
+ true
550
+ else
551
+ false
552
+ end
553
+ when /\AArray<(?<inner_type>.+)>\z/
554
+ inner_type = Regexp.last_match[:inner_type]
555
+ value.map { |v| _deserialize(inner_type, v) }
556
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
557
+ k_type = Regexp.last_match[:k_type]
558
+ v_type = Regexp.last_match[:v_type]
559
+ {}.tap do |hash|
560
+ value.each do |k, v|
561
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
562
+ end
563
+ end
564
+ else # model
565
+ _model = Object.const_get("PureCloud").const_get(type).new
566
+ _model.build_from_hash(value)
567
+ end
568
+ end
569
+
570
+ def to_s
571
+ to_hash.to_s
572
+ end
573
+
574
+ # to_body is an alias to to_body (backward compatibility))
575
+ def to_body
576
+ to_hash
577
+ end
578
+
579
+ # return the object in the form of hash
580
+ def to_hash
581
+ hash = {}
582
+ self.class.attribute_map.each_pair do |attr, param|
583
+ value = self.send(attr)
584
+ next if value.nil?
585
+ hash[param] = _to_hash(value)
586
+ end
587
+ hash
588
+ end
589
+
590
+ # Method to output non-array value in the form of hash
591
+ # For object, use to_hash. Otherwise, just return the value
592
+ def _to_hash(value)
593
+ if value.is_a?(Array)
594
+ value.compact.map{ |v| _to_hash(v) }
595
+ elsif value.is_a?(Hash)
596
+ {}.tap do |hash|
597
+ value.each { |k, v| hash[k] = _to_hash(v) }
598
+ end
599
+ elsif value.respond_to? :to_hash
600
+ value.to_hash
601
+ else
602
+ value
603
+ end
604
+ end
605
+
606
+ end
607
+ end