purecloudplatformclientv2 15.0.0 → 16.0.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 (131) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/docs/Action.md +21 -0
  4. data/docs/ActionConfig.md +14 -0
  5. data/docs/ActionContract.md +14 -0
  6. data/docs/ActionContractInput.md +14 -0
  7. data/docs/ActionEntityListing.md +22 -0
  8. data/docs/ActionInput.md +15 -0
  9. data/docs/ActionOutput.md +18 -0
  10. data/docs/ActiveAlertCount.md +13 -0
  11. data/docs/AggregationQuery.md +1 -1
  12. data/docs/AlertingApi.md +54 -0
  13. data/docs/ArchitectApi.md +31 -25
  14. data/docs/CallConversationNotificationCallMediaParticipant.md +1 -0
  15. data/docs/CallConversationNotificationParticipants.md +1 -0
  16. data/docs/CallbackConversationNotificationCallbackMediaParticipant.md +1 -0
  17. data/docs/CallbackConversationNotificationParticipants.md +1 -0
  18. data/docs/Category.md +13 -0
  19. data/docs/CategoryEntityListing.md +17 -0
  20. data/docs/ChatConversationNotificationChatMediaParticipant.md +1 -0
  21. data/docs/ChatConversationNotificationParticipants.md +1 -0
  22. data/docs/CobrowseConversationNotificationCobrowseMediaParticipant.md +1 -0
  23. data/docs/CobrowseConversationNotificationParticipants.md +1 -0
  24. data/docs/ConversationNotificationCall.md +1 -0
  25. data/docs/ConversationNotificationCalls.md +1 -0
  26. data/docs/ConversationNotificationEmail.md +1 -0
  27. data/docs/ConversationNotificationEmails.md +1 -0
  28. data/docs/ConversationNotificationParticipant.md +1 -0
  29. data/docs/ConversationNotificationParticipants.md +1 -0
  30. data/docs/ConversationsApi.md +3 -3
  31. data/docs/Document.md +1 -1
  32. data/docs/DomainOrganizationRole.md +1 -1
  33. data/docs/DomainOrganizationRoleCreate.md +1 -1
  34. data/docs/DomainOrganizationRoleUpdate.md +1 -1
  35. data/docs/DraftValidationResult.md +14 -0
  36. data/docs/EmailConversationNotificationEmailMediaParticipant.md +2 -0
  37. data/docs/EmailConversationNotificationParticipants.md +2 -0
  38. data/docs/FaxDocument.md +1 -1
  39. data/docs/IntegrationsApi.md +1355 -0
  40. data/docs/JsonNode.md +4 -4
  41. data/docs/ManagementUnit.md +1 -1
  42. data/docs/ManagementUnitListing.md +22 -0
  43. data/docs/OutboundApi.md +59 -0
  44. data/docs/PostActionInput.md +18 -0
  45. data/docs/PostInputContract.md +13 -0
  46. data/docs/PostOutputContract.md +13 -0
  47. data/docs/PublishDraftInput.md +13 -0
  48. data/docs/RecordingApi.md +123 -0
  49. data/docs/RequestConfig.md +17 -0
  50. data/docs/ResponseConfig.md +15 -0
  51. data/docs/ScreenShareConversationNotificationParticipants.md +1 -0
  52. data/docs/ScreenShareConversationNotificationScreenShareMediaParticipant.md +1 -0
  53. data/docs/SocialConversationNotificationParticipants.md +1 -0
  54. data/docs/SocialConversationNotificationSocialMediaParticipant.md +1 -0
  55. data/docs/TestExecutionOperationResult.md +17 -0
  56. data/docs/TestExecutionResult.md +16 -0
  57. data/docs/UpdateActionInput.md +16 -0
  58. data/docs/UpdateDraftInput.md +18 -0
  59. data/docs/VideoConversationNotificationParticipants.md +1 -0
  60. data/docs/VideoConversationNotificationVideoMediaParticipant.md +1 -0
  61. data/docs/WorkforceManagementApi.md +2 -4
  62. data/lib/purecloudplatformclientv2.rb +23 -1
  63. data/lib/purecloudplatformclientv2/api/alerting_api.rb +55 -0
  64. data/lib/purecloudplatformclientv2/api/architect_api.rb +52 -20
  65. data/lib/purecloudplatformclientv2/api/conversations_api.rb +2 -2
  66. data/lib/purecloudplatformclientv2/api/integrations_api.rb +1723 -0
  67. data/lib/purecloudplatformclientv2/api/outbound_api.rb +65 -0
  68. data/lib/purecloudplatformclientv2/api/recording_api.rb +140 -0
  69. data/lib/purecloudplatformclientv2/api/workforce_management_api.rb +3 -12
  70. data/lib/purecloudplatformclientv2/api_client.rb +1 -1
  71. data/lib/purecloudplatformclientv2/models/action.rb +409 -0
  72. data/lib/purecloudplatformclientv2/models/action_config.rb +229 -0
  73. data/lib/purecloudplatformclientv2/models/action_contract.rb +229 -0
  74. data/lib/purecloudplatformclientv2/models/action_contract_input.rb +239 -0
  75. data/lib/purecloudplatformclientv2/models/action_entity_listing.rb +428 -0
  76. data/lib/purecloudplatformclientv2/models/action_input.rb +255 -0
  77. data/lib/purecloudplatformclientv2/models/action_output.rb +333 -0
  78. data/lib/purecloudplatformclientv2/models/active_alert_count.rb +202 -0
  79. data/lib/purecloudplatformclientv2/models/aggregation_query.rb +1 -1
  80. data/lib/purecloudplatformclientv2/models/call_conversation_notification_call_media_participant.rb +26 -1
  81. data/lib/purecloudplatformclientv2/models/call_conversation_notification_participants.rb +26 -1
  82. data/lib/purecloudplatformclientv2/models/callback_conversation_notification_callback_media_participant.rb +26 -1
  83. data/lib/purecloudplatformclientv2/models/callback_conversation_notification_participants.rb +26 -1
  84. data/lib/purecloudplatformclientv2/models/category.rb +203 -0
  85. data/lib/purecloudplatformclientv2/models/category_entity_listing.rb +303 -0
  86. data/lib/purecloudplatformclientv2/models/chat_conversation_notification_chat_media_participant.rb +26 -1
  87. data/lib/purecloudplatformclientv2/models/chat_conversation_notification_participants.rb +26 -1
  88. data/lib/purecloudplatformclientv2/models/cobrowse_conversation_notification_cobrowse_media_participant.rb +26 -1
  89. data/lib/purecloudplatformclientv2/models/cobrowse_conversation_notification_participants.rb +26 -1
  90. data/lib/purecloudplatformclientv2/models/condition.rb +2 -2
  91. data/lib/purecloudplatformclientv2/models/conversation_notification_call.rb +26 -1
  92. data/lib/purecloudplatformclientv2/models/conversation_notification_calls.rb +26 -1
  93. data/lib/purecloudplatformclientv2/models/conversation_notification_email.rb +26 -1
  94. data/lib/purecloudplatformclientv2/models/conversation_notification_emails.rb +26 -1
  95. data/lib/purecloudplatformclientv2/models/conversation_notification_participant.rb +40 -1
  96. data/lib/purecloudplatformclientv2/models/conversation_notification_participants.rb +40 -1
  97. data/lib/purecloudplatformclientv2/models/dependency.rb +2 -2
  98. data/lib/purecloudplatformclientv2/models/dependency_object.rb +2 -2
  99. data/lib/purecloudplatformclientv2/models/document.rb +12 -12
  100. data/lib/purecloudplatformclientv2/models/domain_organization_role.rb +12 -12
  101. data/lib/purecloudplatformclientv2/models/domain_organization_role_create.rb +12 -12
  102. data/lib/purecloudplatformclientv2/models/domain_organization_role_update.rb +12 -12
  103. data/lib/purecloudplatformclientv2/models/draft_validation_result.rb +231 -0
  104. data/lib/purecloudplatformclientv2/models/email_conversation_notification_email_media_participant.rb +54 -4
  105. data/lib/purecloudplatformclientv2/models/email_conversation_notification_participants.rb +54 -4
  106. data/lib/purecloudplatformclientv2/models/fax_document.rb +12 -12
  107. data/lib/purecloudplatformclientv2/models/flow.rb +2 -2
  108. data/lib/purecloudplatformclientv2/models/interaction_stats_alert.rb +2 -2
  109. data/lib/purecloudplatformclientv2/models/interaction_stats_rule.rb +2 -2
  110. data/lib/purecloudplatformclientv2/models/json_node.rb +72 -72
  111. data/lib/purecloudplatformclientv2/models/management_unit.rb +7 -7
  112. data/lib/purecloudplatformclientv2/models/management_unit_listing.rb +428 -0
  113. data/lib/purecloudplatformclientv2/models/post_action_input.rb +358 -0
  114. data/lib/purecloudplatformclientv2/models/post_input_contract.rb +208 -0
  115. data/lib/purecloudplatformclientv2/models/post_output_contract.rb +208 -0
  116. data/lib/purecloudplatformclientv2/models/publish_draft_input.rb +208 -0
  117. data/lib/purecloudplatformclientv2/models/request_config.rb +309 -0
  118. data/lib/purecloudplatformclientv2/models/response_config.rb +257 -0
  119. data/lib/purecloudplatformclientv2/models/screen_share_conversation_notification_participants.rb +26 -1
  120. data/lib/purecloudplatformclientv2/models/screen_share_conversation_notification_screen_share_media_participant.rb +26 -1
  121. data/lib/purecloudplatformclientv2/models/social_conversation_notification_participants.rb +26 -1
  122. data/lib/purecloudplatformclientv2/models/social_conversation_notification_social_media_participant.rb +26 -1
  123. data/lib/purecloudplatformclientv2/models/test_execution_operation_result.rb +306 -0
  124. data/lib/purecloudplatformclientv2/models/test_execution_result.rb +282 -0
  125. data/lib/purecloudplatformclientv2/models/{publish_flow_notification_notification.rb → update_action_input.rb} +35 -26
  126. data/lib/purecloudplatformclientv2/models/update_draft_input.rb +338 -0
  127. data/lib/purecloudplatformclientv2/models/video_conversation_notification_participants.rb +26 -1
  128. data/lib/purecloudplatformclientv2/models/video_conversation_notification_video_media_participant.rb +26 -1
  129. data/lib/purecloudplatformclientv2/version.rb +1 -1
  130. metadata +91 -47
  131. data/docs/PublishFlowNotificationNotification.md +0 -16
@@ -70,6 +70,8 @@ module PureCloud
70
70
 
71
71
  attr_accessor :peer
72
72
 
73
+ attr_accessor :screen_recording_state
74
+
73
75
  attr_accessor :outbound_preview
74
76
 
75
77
  attr_accessor :voicemail
@@ -142,6 +144,8 @@ module PureCloud
142
144
 
143
145
  :'peer' => :'peer',
144
146
 
147
+ :'screen_recording_state' => :'screenRecordingState',
148
+
145
149
  :'outbound_preview' => :'outboundPreview',
146
150
 
147
151
  :'voicemail' => :'voicemail',
@@ -217,6 +221,8 @@ module PureCloud
217
221
 
218
222
  :'peer' => :'String',
219
223
 
224
+ :'screen_recording_state' => :'String',
225
+
220
226
  :'outbound_preview' => :'ConversationNotificationDialerPreview',
221
227
 
222
228
  :'voicemail' => :'ConversationNotificationVoicemail',
@@ -481,6 +487,15 @@ module PureCloud
481
487
  end
482
488
 
483
489
 
490
+ if attributes.has_key?(:'screenRecordingState')
491
+
492
+
493
+ self.screen_recording_state = attributes[:'screenRecordingState']
494
+
495
+
496
+ end
497
+
498
+
484
499
  if attributes.has_key?(:'outboundPreview')
485
500
 
486
501
 
@@ -716,6 +731,10 @@ module PureCloud
716
731
 
717
732
 
718
733
 
734
+
735
+
736
+
737
+
719
738
 
720
739
 
721
740
 
@@ -915,6 +934,11 @@ module PureCloud
915
934
 
916
935
 
917
936
 
937
+
938
+
939
+
940
+
941
+
918
942
 
919
943
 
920
944
 
@@ -952,6 +976,7 @@ module PureCloud
952
976
  external_organization == o.external_organization &&
953
977
  wrapup == o.wrapup &&
954
978
  peer == o.peer &&
979
+ screen_recording_state == o.screen_recording_state &&
955
980
  outbound_preview == o.outbound_preview &&
956
981
  voicemail == o.voicemail &&
957
982
  callback_numbers == o.callback_numbers &&
@@ -971,7 +996,7 @@ module PureCloud
971
996
  # Calculates hash code according to all attributes.
972
997
  # @return [Fixnum] Hash code
973
998
  def hash
974
- [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, provider, external_contact, external_organization, wrapup, peer, outbound_preview, voicemail, callback_numbers, callback_user_name, skip_enabled, timeout_seconds, callback_scheduled_time, automated_callback_config_id].hash
999
+ [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, provider, external_contact, external_organization, wrapup, peer, screen_recording_state, outbound_preview, voicemail, callback_numbers, callback_user_name, skip_enabled, timeout_seconds, callback_scheduled_time, automated_callback_config_id].hash
975
1000
  end
976
1001
 
977
1002
  # build the object from hash
@@ -0,0 +1,203 @@
1
+ =begin
2
+ PureCloud Platform API
3
+
4
+ With the PureCloud Platform API, you can control all aspects of your PureCloud environment. With the APIs you can access the system configuration, manage conversations and more.
5
+
6
+ OpenAPI spec version: v2
7
+ Contact: DeveloperEvangelists@genesys.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ License: ININ
11
+ http://www.inin.com
12
+
13
+ Terms of Service: https://developer.mypurecloud.com/tos
14
+
15
+ =end
16
+
17
+ require 'date'
18
+
19
+ module PureCloud
20
+ # List of available Action categories.
21
+ class Category
22
+ # Category name
23
+ attr_accessor :name
24
+
25
+ # Attribute mapping from ruby-style variable name to JSON key.
26
+ def self.attribute_map
27
+ {
28
+
29
+ :'name' => :'name'
30
+
31
+ }
32
+ end
33
+
34
+ # Attribute type mapping.
35
+ def self.swagger_types
36
+ {
37
+
38
+ :'name' => :'String'
39
+
40
+ }
41
+ end
42
+
43
+ # Initializes the object
44
+ # @param [Hash] attributes Model attributes in the form of hash
45
+ def initialize(attributes = {})
46
+ return unless attributes.is_a?(Hash)
47
+
48
+ # convert string to symbol for hash key
49
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
50
+
51
+
52
+ if attributes.has_key?(:'name')
53
+
54
+
55
+ self.name = attributes[:'name']
56
+
57
+
58
+ end
59
+
60
+
61
+ end
62
+
63
+ # Show invalid properties with the reasons. Usually used together with valid?
64
+ # @return Array for valid properies with the reasons
65
+ def list_invalid_properties
66
+ invalid_properties = Array.new
67
+
68
+
69
+ return invalid_properties
70
+ end
71
+
72
+ # Check to see if the all the properties in the model are valid
73
+ # @return true if the model is valid
74
+ def valid?
75
+
76
+
77
+
78
+
79
+
80
+ end
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+ # Checks equality by comparing each attribute.
89
+ # @param [Object] Object to be compared
90
+ def ==(o)
91
+ return true if self.equal?(o)
92
+ self.class == o.class &&
93
+ name == o.name
94
+ end
95
+
96
+ # @see the `==` method
97
+ # @param [Object] Object to be compared
98
+ def eql?(o)
99
+ self == o
100
+ end
101
+
102
+ # Calculates hash code according to all attributes.
103
+ # @return [Fixnum] Hash code
104
+ def hash
105
+ [name].hash
106
+ end
107
+
108
+ # build the object from hash
109
+ def build_from_hash(attributes)
110
+ return nil unless attributes.is_a?(Hash)
111
+ self.class.swagger_types.each_pair do |key, type|
112
+ if type =~ /^Array<(.*)>/i
113
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
114
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
115
+ else
116
+ #TODO show warning in debug mode
117
+ end
118
+ elsif !attributes[self.class.attribute_map[key]].nil?
119
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
120
+ else
121
+ # data not found in attributes(hash), not an issue as the data can be optional
122
+ end
123
+ end
124
+
125
+ self
126
+ end
127
+
128
+ def _deserialize(type, value)
129
+ case type.to_sym
130
+ when :DateTime
131
+ DateTime.parse(value)
132
+ when :Date
133
+ Date.parse(value)
134
+ when :String
135
+ value.to_s
136
+ when :Integer
137
+ value.to_i
138
+ when :Float
139
+ value.to_f
140
+ when :BOOLEAN
141
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
142
+ true
143
+ else
144
+ false
145
+ end
146
+ when :Object
147
+ # generic object (usually a Hash), return directly
148
+ value
149
+ when /\AArray<(?<inner_type>.+)>\z/
150
+ inner_type = Regexp.last_match[:inner_type]
151
+ value.map { |v| _deserialize(inner_type, v) }
152
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
153
+ k_type = Regexp.last_match[:k_type]
154
+ v_type = Regexp.last_match[:v_type]
155
+ {}.tap do |hash|
156
+ value.each do |k, v|
157
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
158
+ end
159
+ end
160
+ else # model
161
+ _model = Object.const_get("PureCloud").const_get(type).new
162
+ _model.build_from_hash(value)
163
+ end
164
+ end
165
+
166
+ def to_s
167
+ to_hash.to_s
168
+ end
169
+
170
+ # to_body is an alias to to_body (backward compatibility))
171
+ def to_body
172
+ to_hash
173
+ end
174
+
175
+ # return the object in the form of hash
176
+ def to_hash
177
+ hash = {}
178
+ self.class.attribute_map.each_pair do |attr, param|
179
+ value = self.send(attr)
180
+ next if value.nil?
181
+ hash[param] = _to_hash(value)
182
+ end
183
+ hash
184
+ end
185
+
186
+ # Method to output non-array value in the form of hash
187
+ # For object, use to_hash. Otherwise, just return the value
188
+ def _to_hash(value)
189
+ if value.is_a?(Array)
190
+ value.compact.map{ |v| _to_hash(v) }
191
+ elsif value.is_a?(Hash)
192
+ {}.tap do |hash|
193
+ value.each { |k, v| hash[k] = _to_hash(v) }
194
+ end
195
+ elsif value.respond_to? :to_hash
196
+ value.to_hash
197
+ else
198
+ value
199
+ end
200
+ end
201
+
202
+ end
203
+ end
@@ -0,0 +1,303 @@
1
+ =begin
2
+ PureCloud Platform API
3
+
4
+ With the PureCloud Platform API, you can control all aspects of your PureCloud environment. With the APIs you can access the system configuration, manage conversations and more.
5
+
6
+ OpenAPI spec version: v2
7
+ Contact: DeveloperEvangelists@genesys.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ License: ININ
11
+ http://www.inin.com
12
+
13
+ Terms of Service: https://developer.mypurecloud.com/tos
14
+
15
+ =end
16
+
17
+ require 'date'
18
+
19
+ module PureCloud
20
+ class CategoryEntityListing
21
+ attr_accessor :entities
22
+
23
+ attr_accessor :page_size
24
+
25
+ attr_accessor :page_number
26
+
27
+ attr_accessor :total
28
+
29
+ attr_accessor :page_count
30
+
31
+ # Attribute mapping from ruby-style variable name to JSON key.
32
+ def self.attribute_map
33
+ {
34
+
35
+ :'entities' => :'entities',
36
+
37
+ :'page_size' => :'pageSize',
38
+
39
+ :'page_number' => :'pageNumber',
40
+
41
+ :'total' => :'total',
42
+
43
+ :'page_count' => :'pageCount'
44
+
45
+ }
46
+ end
47
+
48
+ # Attribute type mapping.
49
+ def self.swagger_types
50
+ {
51
+
52
+ :'entities' => :'Array<Category>',
53
+
54
+ :'page_size' => :'Integer',
55
+
56
+ :'page_number' => :'Integer',
57
+
58
+ :'total' => :'Integer',
59
+
60
+ :'page_count' => :'Integer'
61
+
62
+ }
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param [Hash] attributes Model attributes in the form of hash
67
+ def initialize(attributes = {})
68
+ return unless attributes.is_a?(Hash)
69
+
70
+ # convert string to symbol for hash key
71
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
72
+
73
+
74
+ if attributes.has_key?(:'entities')
75
+
76
+ if (value = attributes[:'entities']).is_a?(Array)
77
+ self.entities = value
78
+ end
79
+
80
+
81
+
82
+ end
83
+
84
+
85
+ if attributes.has_key?(:'pageSize')
86
+
87
+
88
+ self.page_size = attributes[:'pageSize']
89
+
90
+
91
+ end
92
+
93
+
94
+ if attributes.has_key?(:'pageNumber')
95
+
96
+
97
+ self.page_number = attributes[:'pageNumber']
98
+
99
+
100
+ end
101
+
102
+
103
+ if attributes.has_key?(:'total')
104
+
105
+
106
+ self.total = attributes[:'total']
107
+
108
+
109
+ end
110
+
111
+
112
+ if attributes.has_key?(:'pageCount')
113
+
114
+
115
+ self.page_count = attributes[:'pageCount']
116
+
117
+
118
+ end
119
+
120
+
121
+ end
122
+
123
+ # Show invalid properties with the reasons. Usually used together with valid?
124
+ # @return Array for valid properies with the reasons
125
+ def list_invalid_properties
126
+ invalid_properties = Array.new
127
+
128
+
129
+ return invalid_properties
130
+ end
131
+
132
+ # Check to see if the all the properties in the model are valid
133
+ # @return true if the model is valid
134
+ def valid?
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+ end
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+ # Checks equality by comparing each attribute.
185
+ # @param [Object] Object to be compared
186
+ def ==(o)
187
+ return true if self.equal?(o)
188
+ self.class == o.class &&
189
+ entities == o.entities &&
190
+ page_size == o.page_size &&
191
+ page_number == o.page_number &&
192
+ total == o.total &&
193
+ page_count == o.page_count
194
+ end
195
+
196
+ # @see the `==` method
197
+ # @param [Object] Object to be compared
198
+ def eql?(o)
199
+ self == o
200
+ end
201
+
202
+ # Calculates hash code according to all attributes.
203
+ # @return [Fixnum] Hash code
204
+ def hash
205
+ [entities, page_size, page_number, total, page_count].hash
206
+ end
207
+
208
+ # build the object from hash
209
+ def build_from_hash(attributes)
210
+ return nil unless attributes.is_a?(Hash)
211
+ self.class.swagger_types.each_pair do |key, type|
212
+ if type =~ /^Array<(.*)>/i
213
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
214
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
215
+ else
216
+ #TODO show warning in debug mode
217
+ end
218
+ elsif !attributes[self.class.attribute_map[key]].nil?
219
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
220
+ else
221
+ # data not found in attributes(hash), not an issue as the data can be optional
222
+ end
223
+ end
224
+
225
+ self
226
+ end
227
+
228
+ def _deserialize(type, value)
229
+ case type.to_sym
230
+ when :DateTime
231
+ DateTime.parse(value)
232
+ when :Date
233
+ Date.parse(value)
234
+ when :String
235
+ value.to_s
236
+ when :Integer
237
+ value.to_i
238
+ when :Float
239
+ value.to_f
240
+ when :BOOLEAN
241
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
242
+ true
243
+ else
244
+ false
245
+ end
246
+ when :Object
247
+ # generic object (usually a Hash), return directly
248
+ value
249
+ when /\AArray<(?<inner_type>.+)>\z/
250
+ inner_type = Regexp.last_match[:inner_type]
251
+ value.map { |v| _deserialize(inner_type, v) }
252
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
253
+ k_type = Regexp.last_match[:k_type]
254
+ v_type = Regexp.last_match[:v_type]
255
+ {}.tap do |hash|
256
+ value.each do |k, v|
257
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
258
+ end
259
+ end
260
+ else # model
261
+ _model = Object.const_get("PureCloud").const_get(type).new
262
+ _model.build_from_hash(value)
263
+ end
264
+ end
265
+
266
+ def to_s
267
+ to_hash.to_s
268
+ end
269
+
270
+ # to_body is an alias to to_body (backward compatibility))
271
+ def to_body
272
+ to_hash
273
+ end
274
+
275
+ # return the object in the form of hash
276
+ def to_hash
277
+ hash = {}
278
+ self.class.attribute_map.each_pair do |attr, param|
279
+ value = self.send(attr)
280
+ next if value.nil?
281
+ hash[param] = _to_hash(value)
282
+ end
283
+ hash
284
+ end
285
+
286
+ # Method to output non-array value in the form of hash
287
+ # For object, use to_hash. Otherwise, just return the value
288
+ def _to_hash(value)
289
+ if value.is_a?(Array)
290
+ value.compact.map{ |v| _to_hash(v) }
291
+ elsif value.is_a?(Hash)
292
+ {}.tap do |hash|
293
+ value.each { |k, v| hash[k] = _to_hash(v) }
294
+ end
295
+ elsif value.respond_to? :to_hash
296
+ value.to_hash
297
+ else
298
+ value
299
+ end
300
+ end
301
+
302
+ end
303
+ end