purecloud 0.30.1 → 0.31.1

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 (181) hide show
  1. checksums.yaml +4 -4
  2. data/config-ruby.json +1 -1
  3. data/lib/purecloud/api/configuration_api.rb +4 -814
  4. data/lib/purecloud/api/conversations_api.rb +1035 -1763
  5. data/lib/purecloud/api/organization_api.rb +0 -58
  6. data/lib/purecloud/api/quality_api.rb +629 -0
  7. data/lib/purecloud/api/telephony_providers_edge_api.rb +1033 -677
  8. data/lib/purecloud/api/users_api.rb +311 -0
  9. data/lib/purecloud/api/voicemail_api.rb +176 -176
  10. data/lib/purecloud/models/address_listing.rb +17 -17
  11. data/lib/purecloud/models/agent_activity_entity_listing.rb +17 -17
  12. data/lib/purecloud/models/aggregate_metric_data.rb +1 -1
  13. data/lib/purecloud/models/analytics_conversation_segment.rb +18 -235
  14. data/lib/purecloud/models/analytics_participant.rb +40 -1
  15. data/lib/purecloud/models/analytics_query_predicate.rb +2 -2
  16. data/lib/purecloud/models/analytics_session.rb +150 -1
  17. data/lib/purecloud/models/attribute_entity_listing.rb +17 -17
  18. data/lib/purecloud/models/automate_queue_member_entity_listing.rb +17 -17
  19. data/lib/purecloud/models/available_additional_service_listing.rb +17 -17
  20. data/lib/purecloud/models/available_topic_entity_listing.rb +17 -17
  21. data/lib/purecloud/models/calibration_entity_listing.rb +17 -17
  22. data/lib/purecloud/models/call_conversation_entity_listing.rb +17 -17
  23. data/lib/purecloud/models/callable_time_set_entity_listing.rb +17 -17
  24. data/lib/purecloud/models/callback_conversation_entity_listing.rb +17 -17
  25. data/lib/purecloud/models/campaign_entity_listing.rb +17 -17
  26. data/lib/purecloud/models/campaign_sequence_entity_listing.rb +17 -17
  27. data/lib/purecloud/models/carrier_entity_listing.rb +17 -17
  28. data/lib/purecloud/models/certificate_authority_entity_listing.rb +17 -17
  29. data/lib/purecloud/models/channel_entity_listing.rb +17 -17
  30. data/lib/purecloud/models/channel_topic_entity_listing.rb +17 -17
  31. data/lib/purecloud/models/chat_conversation_entity_listing.rb +17 -17
  32. data/lib/purecloud/models/command_status_entity_listing.rb +17 -17
  33. data/lib/purecloud/models/consumed_resources_entity_listing.rb +17 -17
  34. data/lib/purecloud/models/consuming_resources_entity_listing.rb +17 -17
  35. data/lib/purecloud/models/contact_list_entity_listing.rb +17 -17
  36. data/lib/purecloud/models/contact_listing.rb +17 -17
  37. data/lib/purecloud/models/conversation_entity_listing.rb +17 -17
  38. data/lib/purecloud/models/create_user.rb +1 -11
  39. data/lib/purecloud/models/data_item.rb +23 -19
  40. data/lib/purecloud/models/deleted_resource_consumer_entity_listing.rb +17 -17
  41. data/lib/purecloud/models/dependency_object_entity_listing.rb +17 -17
  42. data/lib/purecloud/models/dependency_type_entity_listing.rb +17 -17
  43. data/lib/purecloud/models/did_entity_listing.rb +17 -17
  44. data/lib/purecloud/models/did_pool_entity_listing.rb +17 -17
  45. data/lib/purecloud/models/dnc_list_entity_listing.rb +17 -17
  46. data/lib/purecloud/models/document_audit_entity_listing.rb +17 -17
  47. data/lib/purecloud/models/document_entity_listing.rb +17 -17
  48. data/lib/purecloud/models/domain_billing_period_entity_listing.rb +17 -17
  49. data/lib/purecloud/models/domain_entity_listing.rb +17 -17
  50. data/lib/purecloud/models/domain_entity_listing_evaluation_form.rb +17 -17
  51. data/lib/purecloud/models/domain_entity_listing_query_result.rb +17 -17
  52. data/lib/purecloud/models/domain_invoice_entity_listing.rb +17 -17
  53. data/lib/purecloud/models/domain_third_party_account_entity_listing.rb +17 -17
  54. data/lib/purecloud/models/domain_third_party_subscription_entity_listing.rb +17 -17
  55. data/lib/purecloud/models/domain_voice_rate_extended_response_item_entity_listing.rb +17 -17
  56. data/lib/purecloud/models/domain_voice_rate_international_response_item_entity_listing.rb +17 -17
  57. data/lib/purecloud/models/domain_voice_rate_response_item_entity_listing.rb +17 -17
  58. data/lib/purecloud/models/edge_entity_listing.rb +17 -17
  59. data/lib/purecloud/models/edge_group_entity_listing.rb +17 -17
  60. data/lib/purecloud/models/edge_line_entity_listing.rb +17 -17
  61. data/lib/purecloud/models/email_conversation_entity_listing.rb +17 -17
  62. data/lib/purecloud/models/email_message_listing.rb +17 -17
  63. data/lib/purecloud/models/encryption_key_entity_listing.rb +17 -17
  64. data/lib/purecloud/models/endpoint_entity_listing.rb +17 -17
  65. data/lib/purecloud/models/evaluation_entity_listing.rb +17 -17
  66. data/lib/purecloud/models/evaluation_form_entity_listing.rb +17 -17
  67. data/lib/purecloud/models/evaluator_activity_entity_listing.rb +17 -17
  68. data/lib/purecloud/models/extension_entity_listing.rb +17 -17
  69. data/lib/purecloud/models/extension_pool_entity_listing.rb +17 -17
  70. data/lib/purecloud/models/external_organization_listing.rb +17 -17
  71. data/lib/purecloud/models/fax_document_entity_listing.rb +17 -17
  72. data/lib/purecloud/models/flow_config_meta_data_entity_listing.rb +17 -17
  73. data/lib/purecloud/models/flow_entity_listing.rb +17 -17
  74. data/lib/purecloud/models/flow_history_result_item_entity_listing.rb +17 -17
  75. data/lib/purecloud/models/flow_version_config_meta_data_entity_listing.rb +17 -17
  76. data/lib/purecloud/models/flow_version_entity_listing.rb +17 -17
  77. data/lib/purecloud/models/group_entity_listing.rb +17 -17
  78. data/lib/purecloud/models/hardware_rate_listing.rb +17 -17
  79. data/lib/purecloud/models/inbound_domain_entity_listing.rb +17 -17
  80. data/lib/purecloud/models/inbound_route_entity_listing.rb +17 -17
  81. data/lib/purecloud/models/integration_type_entity_listing.rb +17 -17
  82. data/lib/purecloud/models/interaction_stats_alert_container.rb +17 -17
  83. data/lib/purecloud/models/interaction_stats_rule_container.rb +17 -17
  84. data/lib/purecloud/models/ivr_entity_listing.rb +17 -17
  85. data/lib/purecloud/models/json_node.rb +32 -32
  86. data/lib/purecloud/models/language_entity_listing.rb +17 -17
  87. data/lib/purecloud/models/library_entity_listing.rb +17 -17
  88. data/lib/purecloud/models/line_base_entity_listing.rb +17 -17
  89. data/lib/purecloud/models/line_entity_listing.rb +17 -17
  90. data/lib/purecloud/models/linked_entity_listing_flow_details.rb +17 -17
  91. data/lib/purecloud/models/linked_entity_listing_work_item_search_details.rb +17 -17
  92. data/lib/purecloud/models/location_entity_listing.rb +17 -17
  93. data/lib/purecloud/models/logical_interface_entity_listing.rb +17 -17
  94. data/lib/purecloud/models/note_listing.rb +17 -17
  95. data/lib/purecloud/models/o_auth_client_entity_listing.rb +17 -17
  96. data/lib/purecloud/models/o_auth_provider_entity_listing.rb +17 -17
  97. data/lib/purecloud/models/organization.rb +1 -0
  98. data/lib/purecloud/models/organization_presence_entity_listing.rb +17 -17
  99. data/lib/purecloud/models/organization_role_entity_listing.rb +17 -17
  100. data/lib/purecloud/models/orphan_recording_listing.rb +17 -17
  101. data/lib/purecloud/models/outbound_route_entity_listing.rb +17 -17
  102. data/lib/purecloud/models/payment_method_listing.rb +17 -17
  103. data/lib/purecloud/models/permission_collection_entity_listing.rb +17 -17
  104. data/lib/purecloud/models/phone_base_entity_listing.rb +17 -17
  105. data/lib/purecloud/models/phone_entity_listing.rb +17 -17
  106. data/lib/purecloud/models/phone_meta_base_entity_listing.rb +17 -17
  107. data/lib/purecloud/models/physical_interface_entity_listing.rb +17 -17
  108. data/lib/purecloud/models/policy_entity_listing.rb +17 -17
  109. data/lib/purecloud/models/prompt_asset_entity_listing.rb +17 -17
  110. data/lib/purecloud/models/prompt_entity_listing.rb +17 -17
  111. data/lib/purecloud/models/property_index_request.rb +1 -12
  112. data/lib/purecloud/models/quality_audit_page.rb +17 -17
  113. data/lib/purecloud/models/queue_entity_listing.rb +17 -17
  114. data/lib/purecloud/models/queues_entity_listing.rb +17 -17
  115. data/lib/purecloud/models/quote_listing.rb +17 -17
  116. data/lib/purecloud/models/relationship_listing.rb +17 -17
  117. data/lib/purecloud/models/report_meta_data_entity_listing.rb +17 -17
  118. data/lib/purecloud/models/report_run_entry_entity_domain_listing.rb +17 -17
  119. data/lib/purecloud/models/report_schedule_entity_listing.rb +17 -17
  120. data/lib/purecloud/models/response_entity_list.rb +17 -17
  121. data/lib/purecloud/models/response_entity_listing.rb +17 -17
  122. data/lib/purecloud/models/response_set_entity_listing.rb +17 -17
  123. data/lib/purecloud/models/rule_set_entity_listing.rb +17 -17
  124. data/lib/purecloud/models/schedule_entity_listing.rb +17 -17
  125. data/lib/purecloud/models/schedule_group_entity_listing.rb +17 -17
  126. data/lib/purecloud/models/schema_category_entity_listing.rb +17 -17
  127. data/lib/purecloud/models/schema_reference_entity_listing.rb +17 -17
  128. data/lib/purecloud/models/script_entity_listing.rb +17 -17
  129. data/lib/purecloud/models/security_profile_entity_listing.rb +17 -17
  130. data/lib/purecloud/models/service_entity_listing.rb +17 -17
  131. data/lib/purecloud/models/share_entity_listing.rb +17 -17
  132. data/lib/purecloud/models/site.rb +1 -1
  133. data/lib/purecloud/models/site_entity_listing.rb +17 -17
  134. data/lib/purecloud/models/skill_entity_listing.rb +17 -17
  135. data/lib/purecloud/models/social_conversation_entity_listing.rb +17 -17
  136. data/lib/purecloud/models/spreadsheet_transform_entity_listing.rb +17 -17
  137. data/lib/purecloud/models/station_entity_listing.rb +17 -17
  138. data/lib/purecloud/models/system_prompt_asset_entity_listing.rb +17 -17
  139. data/lib/purecloud/models/system_prompt_entity_listing.rb +17 -17
  140. data/lib/purecloud/models/tag_value_entity_listing.rb +17 -17
  141. data/lib/purecloud/models/template_entity_listing.rb +17 -17
  142. data/lib/purecloud/models/text_table_transform_entity_listing.rb +17 -17
  143. data/lib/purecloud/models/time_zone_entity_listing.rb +17 -17
  144. data/lib/purecloud/models/trunk_metabase_entity_listing.rb +17 -17
  145. data/lib/purecloud/models/user_action_category_entity_listing.rb +17 -17
  146. data/lib/purecloud/models/user_action_metadata_entity_listing.rb +11 -11
  147. data/lib/purecloud/models/user_entity_listing.rb +17 -17
  148. data/lib/purecloud/models/user_queue_entity_listing.rb +17 -17
  149. data/lib/purecloud/models/user_recording_entity_listing.rb +17 -17
  150. data/lib/purecloud/models/user_skill_entity_listing.rb +17 -17
  151. data/lib/purecloud/models/users_entity_listing.rb +17 -17
  152. data/lib/purecloud/models/video_conversation_entity_listing.rb +17 -17
  153. data/lib/purecloud/models/voice_rate_international_entity_listing.rb +17 -17
  154. data/lib/purecloud/models/voice_xml_operation_entity_listing.rb +17 -17
  155. data/lib/purecloud/models/voicemail_message_entity_listing.rb +17 -17
  156. data/lib/purecloud/models/workspace_entity_listing.rb +17 -17
  157. data/lib/purecloud/models/workspace_member_entity_listing.rb +17 -17
  158. data/lib/purecloud/models/wrapup_code_entity_listing.rb +17 -17
  159. data/lib/purecloud/version.rb +1 -1
  160. data/lib/purecloud.rb +83 -100
  161. data/newVersion.md +1 -1
  162. data/swagger.json +1 -1
  163. data/version.json +1 -1
  164. metadata +2 -19
  165. data/lib/purecloud/api/callbacks_api.rb +0 -483
  166. data/lib/purecloud/api/calls_api.rb +0 -1088
  167. data/lib/purecloud/api/chats_api.rb +0 -483
  168. data/lib/purecloud/api/compliance_api.rb +0 -129
  169. data/lib/purecloud/api/downloads_api.rb +0 -140
  170. data/lib/purecloud/api/emails_api.rb +0 -1013
  171. data/lib/purecloud/api/evaluations_api.rb +0 -73
  172. data/lib/purecloud/api/faxes_api.rb +0 -73
  173. data/lib/purecloud/api/integrations_api.rb +0 -150
  174. data/lib/purecloud/api/integrations_workforce_management_api.rb +0 -73
  175. data/lib/purecloud/api/licensing_api.rb +0 -428
  176. data/lib/purecloud/api/scripts_api.rb +0 -718
  177. data/lib/purecloud/api/socials_api.rb +0 -483
  178. data/lib/purecloud/api/videos_api.rb +0 -483
  179. data/lib/purecloud/models/body.rb +0 -136
  180. data/lib/purecloud/models/organization_address.rb +0 -194
  181. data/lib/purecloud/models/participant_request.rb +0 -242
@@ -1,194 +0,0 @@
1
- require 'date'
2
-
3
- module PureCloud
4
- class OrganizationAddress
5
- attr_accessor :display
6
-
7
- attr_accessor :address
8
-
9
- attr_accessor :type
10
-
11
- attr_accessor :media_type
12
-
13
- # Attribute mapping from ruby-style variable name to JSON key.
14
- def self.attribute_map
15
- {
16
-
17
- :'display' => :'display',
18
-
19
- :'address' => :'address',
20
-
21
- :'type' => :'type',
22
-
23
- :'media_type' => :'mediaType'
24
-
25
- }
26
- end
27
-
28
- # Attribute type mapping.
29
- def self.swagger_types
30
- {
31
- :'display' => :'String',
32
- :'address' => :'String',
33
- :'type' => :'String',
34
- :'media_type' => :'String'
35
-
36
- }
37
- end
38
-
39
- def initialize(attributes = {})
40
- return unless attributes.is_a?(Hash)
41
-
42
- # convert string to symbol for hash key
43
- attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
44
-
45
-
46
- if attributes[:'display']
47
- self.display = attributes[:'display']
48
- end
49
-
50
- if attributes[:'address']
51
- self.address = attributes[:'address']
52
- end
53
-
54
- if attributes[:'type']
55
- self.type = attributes[:'type']
56
- end
57
-
58
- if attributes[:'mediaType']
59
- self.media_type = attributes[:'mediaType']
60
- end
61
-
62
- end
63
-
64
- # Custom attribute writer method checking allowed values (enum).
65
- def type=(type)
66
- allowed_values = ["WORK", "HOME", "MOBILE", "MAIN"]
67
- if type && !allowed_values.include?(type)
68
- fail "invalid value for 'type', must be one of #{allowed_values}"
69
- end
70
- @type = type
71
- end
72
-
73
- # Custom attribute writer method checking allowed values (enum).
74
- def media_type=(media_type)
75
- allowed_values = ["PHONE", "EMAIL", "SMS"]
76
- if media_type && !allowed_values.include?(media_type)
77
- fail "invalid value for 'media_type', must be one of #{allowed_values}"
78
- end
79
- @media_type = media_type
80
- end
81
-
82
- # Check equality by comparing each attribute.
83
- def ==(o)
84
- return true if self.equal?(o)
85
- self.class == o.class &&
86
- display == o.display &&
87
- address == o.address &&
88
- type == o.type &&
89
- media_type == o.media_type
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
- [display, address, type, media_type].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
@@ -1,242 +0,0 @@
1
- require 'date'
2
-
3
- module PureCloud
4
- class ParticipantRequest
5
- attr_accessor :id
6
-
7
- # Wrap-up to assign to this participant.
8
- attr_accessor :wrapup
9
-
10
- # The state to update to set for this participant's communications. Possible values are: 'CONNECTED' and 'DISCONNECTED'. Participant will have an updated communication with the new value for 'state'.
11
- attr_accessor :state
12
-
13
- # True to enable recording of this participant, otherwise false to disable recording. Participant will have an updated communication with the new value for 'recording'.
14
- attr_accessor :recording
15
-
16
- # True to mute this conversation participant. Participant will have an updated communication with the new value for 'muted'.
17
- attr_accessor :muted
18
-
19
- # True to confine this conversation participant. Should only be used for ad-hoc conferences. Participant will have an updated communication with the new value for 'confined'.
20
- attr_accessor :confined
21
-
22
- # True to hold this conversation participant. Participant will have an updated communication with the new value for 'held'.
23
- attr_accessor :held
24
-
25
- # True to skip wrap-up for this participant. Participant will have an updated communication with the new value for 'wrapupSkipped'.
26
- attr_accessor :wrapup_skipped
27
-
28
- # Attribute mapping from ruby-style variable name to JSON key.
29
- def self.attribute_map
30
- {
31
-
32
- :'id' => :'id',
33
-
34
- :'wrapup' => :'wrapup',
35
-
36
- :'state' => :'state',
37
-
38
- :'recording' => :'recording',
39
-
40
- :'muted' => :'muted',
41
-
42
- :'confined' => :'confined',
43
-
44
- :'held' => :'held',
45
-
46
- :'wrapup_skipped' => :'wrapupSkipped'
47
-
48
- }
49
- end
50
-
51
- # Attribute type mapping.
52
- def self.swagger_types
53
- {
54
- :'id' => :'String',
55
- :'wrapup' => :'Wrapup',
56
- :'state' => :'String',
57
- :'recording' => :'BOOLEAN',
58
- :'muted' => :'BOOLEAN',
59
- :'confined' => :'BOOLEAN',
60
- :'held' => :'BOOLEAN',
61
- :'wrapup_skipped' => :'BOOLEAN'
62
-
63
- }
64
- end
65
-
66
- def initialize(attributes = {})
67
- return unless attributes.is_a?(Hash)
68
-
69
- # convert string to symbol for hash key
70
- attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
71
-
72
-
73
- if attributes[:'id']
74
- self.id = attributes[:'id']
75
- end
76
-
77
- if attributes[:'wrapup']
78
- self.wrapup = attributes[:'wrapup']
79
- end
80
-
81
- if attributes[:'state']
82
- self.state = attributes[:'state']
83
- end
84
-
85
- if attributes[:'recording']
86
- self.recording = attributes[:'recording']
87
- else
88
- self.recording = false
89
- end
90
-
91
- if attributes[:'muted']
92
- self.muted = attributes[:'muted']
93
- else
94
- self.muted = false
95
- end
96
-
97
- if attributes[:'confined']
98
- self.confined = attributes[:'confined']
99
- else
100
- self.confined = false
101
- end
102
-
103
- if attributes[:'held']
104
- self.held = attributes[:'held']
105
- else
106
- self.held = false
107
- end
108
-
109
- if attributes[:'wrapupSkipped']
110
- self.wrapup_skipped = attributes[:'wrapupSkipped']
111
- else
112
- self.wrapup_skipped = false
113
- end
114
-
115
- end
116
-
117
- # Custom attribute writer method checking allowed values (enum).
118
- def state=(state)
119
- allowed_values = ["ALERTING", "DIALING", "CONTACTING", "OFFERING", "CONNECTED", "DISCONNECTED", "TERMINATED", "NONE"]
120
- if state && !allowed_values.include?(state)
121
- fail "invalid value for 'state', must be one of #{allowed_values}"
122
- end
123
- @state = state
124
- end
125
-
126
- # Check equality by comparing each attribute.
127
- def ==(o)
128
- return true if self.equal?(o)
129
- self.class == o.class &&
130
- id == o.id &&
131
- wrapup == o.wrapup &&
132
- state == o.state &&
133
- recording == o.recording &&
134
- muted == o.muted &&
135
- confined == o.confined &&
136
- held == o.held &&
137
- wrapup_skipped == o.wrapup_skipped
138
- end
139
-
140
- # @see the `==` method
141
- def eql?(o)
142
- self == o
143
- end
144
-
145
- # Calculate hash code according to all attributes.
146
- def hash
147
- [id, wrapup, state, recording, muted, confined, held, wrapup_skipped].hash
148
- end
149
-
150
- # build the object from hash
151
- def build_from_hash(attributes)
152
- return nil unless attributes.is_a?(Hash)
153
- self.class.swagger_types.each_pair do |key, type|
154
- if type =~ /^Array<(.*)>/i
155
- if attributes[self.class.attribute_map[key]].is_a?(Array)
156
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
157
- else
158
- #TODO show warning in debug mode
159
- end
160
- elsif !attributes[self.class.attribute_map[key]].nil?
161
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
162
- else
163
- # data not found in attributes(hash), not an issue as the data can be optional
164
- end
165
- end
166
-
167
- self
168
- end
169
-
170
- def _deserialize(type, value)
171
- case type.to_sym
172
- when :DateTime
173
- DateTime.parse(value)
174
- when :Date
175
- Date.parse(value)
176
- when :String
177
- value.to_s
178
- when :Integer
179
- value.to_i
180
- when :Float
181
- value.to_f
182
- when :BOOLEAN
183
- if value =~ /^(true|t|yes|y|1)$/i
184
- true
185
- else
186
- false
187
- end
188
- when /\AArray<(?<inner_type>.+)>\z/
189
- inner_type = Regexp.last_match[:inner_type]
190
- value.map { |v| _deserialize(inner_type, v) }
191
- when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
192
- k_type = Regexp.last_match[:k_type]
193
- v_type = Regexp.last_match[:v_type]
194
- {}.tap do |hash|
195
- value.each do |k, v|
196
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
197
- end
198
- end
199
- else # model
200
- _model = Object.const_get("PureCloud").const_get(type).new
201
- _model.build_from_hash(value)
202
- end
203
- end
204
-
205
- def to_s
206
- to_hash.to_s
207
- end
208
-
209
- # to_body is an alias to to_body (backward compatibility))
210
- def to_body
211
- to_hash
212
- end
213
-
214
- # return the object in the form of hash
215
- def to_hash
216
- hash = {}
217
- self.class.attribute_map.each_pair do |attr, param|
218
- value = self.send(attr)
219
- next if value.nil?
220
- hash[param] = _to_hash(value)
221
- end
222
- hash
223
- end
224
-
225
- # Method to output non-array value in the form of hash
226
- # For object, use to_hash. Otherwise, just return the value
227
- def _to_hash(value)
228
- if value.is_a?(Array)
229
- value.compact.map{ |v| _to_hash(v) }
230
- elsif value.is_a?(Hash)
231
- {}.tap do |hash|
232
- value.each { |k, v| hash[k] = _to_hash(v) }
233
- end
234
- elsif value.respond_to? :to_hash
235
- value.to_hash
236
- else
237
- value
238
- end
239
- end
240
-
241
- end
242
- end