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