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
@@ -0,0 +1,255 @@
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
+ # Input requirements of Action.
21
+ class ActionInput
22
+ # JSON Schema that defines the body of the request that the client (edge/architect/postman) is sending to the service, on the /execute path. If the 'flatten' query parameter is omitted or false, this field will be returned. Either inputSchema or inputSchemaFlattened will be returned, not both.
23
+ attr_accessor :input_schema
24
+
25
+ # JSON Schema that defines the body of the request that the client (edge/architect/postman) is sending to the service, on the /execute path. The schema is transformed based on Architect's flattened format. If the 'flatten' query parameter is supplied as true, this field will be returned. Either inputSchema or inputSchemaFlattened will be returned, not both.
26
+ attr_accessor :input_schema_flattened
27
+
28
+ # The URI of the input schema
29
+ attr_accessor :input_schema_uri
30
+
31
+ # Attribute mapping from ruby-style variable name to JSON key.
32
+ def self.attribute_map
33
+ {
34
+
35
+ :'input_schema' => :'inputSchema',
36
+
37
+ :'input_schema_flattened' => :'inputSchemaFlattened',
38
+
39
+ :'input_schema_uri' => :'inputSchemaUri'
40
+
41
+ }
42
+ end
43
+
44
+ # Attribute type mapping.
45
+ def self.swagger_types
46
+ {
47
+
48
+ :'input_schema' => :'JsonSchemaDocument',
49
+
50
+ :'input_schema_flattened' => :'JsonSchemaDocument',
51
+
52
+ :'input_schema_uri' => :'String'
53
+
54
+ }
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ return unless attributes.is_a?(Hash)
61
+
62
+ # convert string to symbol for hash key
63
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
64
+
65
+
66
+ if attributes.has_key?(:'inputSchema')
67
+
68
+
69
+ self.input_schema = attributes[:'inputSchema']
70
+
71
+
72
+ end
73
+
74
+
75
+ if attributes.has_key?(:'inputSchemaFlattened')
76
+
77
+
78
+ self.input_schema_flattened = attributes[:'inputSchemaFlattened']
79
+
80
+
81
+ end
82
+
83
+
84
+ if attributes.has_key?(:'inputSchemaUri')
85
+
86
+
87
+ self.input_schema_uri = attributes[:'inputSchemaUri']
88
+
89
+
90
+ end
91
+
92
+
93
+ end
94
+
95
+ # Show invalid properties with the reasons. Usually used together with valid?
96
+ # @return Array for valid properies with the reasons
97
+ def list_invalid_properties
98
+ invalid_properties = Array.new
99
+
100
+
101
+ return invalid_properties
102
+ end
103
+
104
+ # Check to see if the all the properties in the model are valid
105
+ # @return true if the model is valid
106
+ def valid?
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+ end
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+ # Checks equality by comparing each attribute.
139
+ # @param [Object] Object to be compared
140
+ def ==(o)
141
+ return true if self.equal?(o)
142
+ self.class == o.class &&
143
+ input_schema == o.input_schema &&
144
+ input_schema_flattened == o.input_schema_flattened &&
145
+ input_schema_uri == o.input_schema_uri
146
+ end
147
+
148
+ # @see the `==` method
149
+ # @param [Object] Object to be compared
150
+ def eql?(o)
151
+ self == o
152
+ end
153
+
154
+ # Calculates hash code according to all attributes.
155
+ # @return [Fixnum] Hash code
156
+ def hash
157
+ [input_schema, input_schema_flattened, input_schema_uri].hash
158
+ end
159
+
160
+ # build the object from hash
161
+ def build_from_hash(attributes)
162
+ return nil unless attributes.is_a?(Hash)
163
+ self.class.swagger_types.each_pair do |key, type|
164
+ if type =~ /^Array<(.*)>/i
165
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
166
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
167
+ else
168
+ #TODO show warning in debug mode
169
+ end
170
+ elsif !attributes[self.class.attribute_map[key]].nil?
171
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
172
+ else
173
+ # data not found in attributes(hash), not an issue as the data can be optional
174
+ end
175
+ end
176
+
177
+ self
178
+ end
179
+
180
+ def _deserialize(type, value)
181
+ case type.to_sym
182
+ when :DateTime
183
+ DateTime.parse(value)
184
+ when :Date
185
+ Date.parse(value)
186
+ when :String
187
+ value.to_s
188
+ when :Integer
189
+ value.to_i
190
+ when :Float
191
+ value.to_f
192
+ when :BOOLEAN
193
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
194
+ true
195
+ else
196
+ false
197
+ end
198
+ when :Object
199
+ # generic object (usually a Hash), return directly
200
+ value
201
+ when /\AArray<(?<inner_type>.+)>\z/
202
+ inner_type = Regexp.last_match[:inner_type]
203
+ value.map { |v| _deserialize(inner_type, v) }
204
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
205
+ k_type = Regexp.last_match[:k_type]
206
+ v_type = Regexp.last_match[:v_type]
207
+ {}.tap do |hash|
208
+ value.each do |k, v|
209
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
210
+ end
211
+ end
212
+ else # model
213
+ _model = Object.const_get("PureCloud").const_get(type).new
214
+ _model.build_from_hash(value)
215
+ end
216
+ end
217
+
218
+ def to_s
219
+ to_hash.to_s
220
+ end
221
+
222
+ # to_body is an alias to to_body (backward compatibility))
223
+ def to_body
224
+ to_hash
225
+ end
226
+
227
+ # return the object in the form of hash
228
+ def to_hash
229
+ hash = {}
230
+ self.class.attribute_map.each_pair do |attr, param|
231
+ value = self.send(attr)
232
+ next if value.nil?
233
+ hash[param] = _to_hash(value)
234
+ end
235
+ hash
236
+ end
237
+
238
+ # Method to output non-array value in the form of hash
239
+ # For object, use to_hash. Otherwise, just return the value
240
+ def _to_hash(value)
241
+ if value.is_a?(Array)
242
+ value.compact.map{ |v| _to_hash(v) }
243
+ elsif value.is_a?(Hash)
244
+ {}.tap do |hash|
245
+ value.each { |k, v| hash[k] = _to_hash(v) }
246
+ end
247
+ elsif value.respond_to? :to_hash
248
+ value.to_hash
249
+ else
250
+ value
251
+ end
252
+ end
253
+
254
+ end
255
+ end
@@ -0,0 +1,333 @@
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
+ # Output definition of Action.
21
+ class ActionOutput
22
+ # JSON schema that defines the transformed, successful result that will be sent back to the caller. If the 'flatten' query parameter is omitted or false, this field will be returned. Either successSchema or successSchemaFlattened will be returned, not both.
23
+ attr_accessor :success_schema
24
+
25
+ # URI to retrieve success schema
26
+ attr_accessor :success_schema_uri
27
+
28
+ # JSON schema that defines the body of response when request is not successful. If the 'flatten' query parameter is omitted or false, this field will be returned. Either errorSchema or errorSchemaFlattened will be returned, not both.
29
+ attr_accessor :error_schema
30
+
31
+ # URI to retrieve error schema
32
+ attr_accessor :error_schema_uri
33
+
34
+ # JSON schema that defines the transformed, successful result that will be sent back to the caller. The schema is transformed based on Architect's flattened format. If the 'flatten' query parameter is supplied as true, this field will be returned. Either successSchema or successSchemaFlattened will be returned, not both.
35
+ attr_accessor :success_schema_flattened
36
+
37
+ # JSON schema that defines the body of response when request is not successful. The schema is transformed based on Architect's flattened format. If the 'flatten' query parameter is supplied as true, this field will be returned. Either errorSchema or errorSchemaFlattened will be returned, not both.
38
+ attr_accessor :error_schema_flattened
39
+
40
+ # Attribute mapping from ruby-style variable name to JSON key.
41
+ def self.attribute_map
42
+ {
43
+
44
+ :'success_schema' => :'successSchema',
45
+
46
+ :'success_schema_uri' => :'successSchemaUri',
47
+
48
+ :'error_schema' => :'errorSchema',
49
+
50
+ :'error_schema_uri' => :'errorSchemaUri',
51
+
52
+ :'success_schema_flattened' => :'successSchemaFlattened',
53
+
54
+ :'error_schema_flattened' => :'errorSchemaFlattened'
55
+
56
+ }
57
+ end
58
+
59
+ # Attribute type mapping.
60
+ def self.swagger_types
61
+ {
62
+
63
+ :'success_schema' => :'JsonSchemaDocument',
64
+
65
+ :'success_schema_uri' => :'String',
66
+
67
+ :'error_schema' => :'JsonSchemaDocument',
68
+
69
+ :'error_schema_uri' => :'String',
70
+
71
+ :'success_schema_flattened' => :'JsonSchemaDocument',
72
+
73
+ :'error_schema_flattened' => :'Object'
74
+
75
+ }
76
+ end
77
+
78
+ # Initializes the object
79
+ # @param [Hash] attributes Model attributes in the form of hash
80
+ def initialize(attributes = {})
81
+ return unless attributes.is_a?(Hash)
82
+
83
+ # convert string to symbol for hash key
84
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
85
+
86
+
87
+ if attributes.has_key?(:'successSchema')
88
+
89
+
90
+ self.success_schema = attributes[:'successSchema']
91
+
92
+
93
+ end
94
+
95
+
96
+ if attributes.has_key?(:'successSchemaUri')
97
+
98
+
99
+ self.success_schema_uri = attributes[:'successSchemaUri']
100
+
101
+
102
+ end
103
+
104
+
105
+ if attributes.has_key?(:'errorSchema')
106
+
107
+
108
+ self.error_schema = attributes[:'errorSchema']
109
+
110
+
111
+ end
112
+
113
+
114
+ if attributes.has_key?(:'errorSchemaUri')
115
+
116
+
117
+ self.error_schema_uri = attributes[:'errorSchemaUri']
118
+
119
+
120
+ end
121
+
122
+
123
+ if attributes.has_key?(:'successSchemaFlattened')
124
+
125
+
126
+ self.success_schema_flattened = attributes[:'successSchemaFlattened']
127
+
128
+
129
+ end
130
+
131
+
132
+ if attributes.has_key?(:'errorSchemaFlattened')
133
+
134
+
135
+ self.error_schema_flattened = attributes[:'errorSchemaFlattened']
136
+
137
+
138
+ end
139
+
140
+
141
+ end
142
+
143
+ # Show invalid properties with the reasons. Usually used together with valid?
144
+ # @return Array for valid properies with the reasons
145
+ def list_invalid_properties
146
+ invalid_properties = Array.new
147
+
148
+
149
+ return invalid_properties
150
+ end
151
+
152
+ # Check to see if the all the properties in the model are valid
153
+ # @return true if the model is valid
154
+ def valid?
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+ end
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+ # Checks equality by comparing each attribute.
214
+ # @param [Object] Object to be compared
215
+ def ==(o)
216
+ return true if self.equal?(o)
217
+ self.class == o.class &&
218
+ success_schema == o.success_schema &&
219
+ success_schema_uri == o.success_schema_uri &&
220
+ error_schema == o.error_schema &&
221
+ error_schema_uri == o.error_schema_uri &&
222
+ success_schema_flattened == o.success_schema_flattened &&
223
+ error_schema_flattened == o.error_schema_flattened
224
+ end
225
+
226
+ # @see the `==` method
227
+ # @param [Object] Object to be compared
228
+ def eql?(o)
229
+ self == o
230
+ end
231
+
232
+ # Calculates hash code according to all attributes.
233
+ # @return [Fixnum] Hash code
234
+ def hash
235
+ [success_schema, success_schema_uri, error_schema, error_schema_uri, success_schema_flattened, error_schema_flattened].hash
236
+ end
237
+
238
+ # build the object from hash
239
+ def build_from_hash(attributes)
240
+ return nil unless attributes.is_a?(Hash)
241
+ self.class.swagger_types.each_pair do |key, type|
242
+ if type =~ /^Array<(.*)>/i
243
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
244
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
245
+ else
246
+ #TODO show warning in debug mode
247
+ end
248
+ elsif !attributes[self.class.attribute_map[key]].nil?
249
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
250
+ else
251
+ # data not found in attributes(hash), not an issue as the data can be optional
252
+ end
253
+ end
254
+
255
+ self
256
+ end
257
+
258
+ def _deserialize(type, value)
259
+ case type.to_sym
260
+ when :DateTime
261
+ DateTime.parse(value)
262
+ when :Date
263
+ Date.parse(value)
264
+ when :String
265
+ value.to_s
266
+ when :Integer
267
+ value.to_i
268
+ when :Float
269
+ value.to_f
270
+ when :BOOLEAN
271
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
272
+ true
273
+ else
274
+ false
275
+ end
276
+ when :Object
277
+ # generic object (usually a Hash), return directly
278
+ value
279
+ when /\AArray<(?<inner_type>.+)>\z/
280
+ inner_type = Regexp.last_match[:inner_type]
281
+ value.map { |v| _deserialize(inner_type, v) }
282
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
283
+ k_type = Regexp.last_match[:k_type]
284
+ v_type = Regexp.last_match[:v_type]
285
+ {}.tap do |hash|
286
+ value.each do |k, v|
287
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
288
+ end
289
+ end
290
+ else # model
291
+ _model = Object.const_get("PureCloud").const_get(type).new
292
+ _model.build_from_hash(value)
293
+ end
294
+ end
295
+
296
+ def to_s
297
+ to_hash.to_s
298
+ end
299
+
300
+ # to_body is an alias to to_body (backward compatibility))
301
+ def to_body
302
+ to_hash
303
+ end
304
+
305
+ # return the object in the form of hash
306
+ def to_hash
307
+ hash = {}
308
+ self.class.attribute_map.each_pair do |attr, param|
309
+ value = self.send(attr)
310
+ next if value.nil?
311
+ hash[param] = _to_hash(value)
312
+ end
313
+ hash
314
+ end
315
+
316
+ # Method to output non-array value in the form of hash
317
+ # For object, use to_hash. Otherwise, just return the value
318
+ def _to_hash(value)
319
+ if value.is_a?(Array)
320
+ value.compact.map{ |v| _to_hash(v) }
321
+ elsif value.is_a?(Hash)
322
+ {}.tap do |hash|
323
+ value.each { |k, v| hash[k] = _to_hash(v) }
324
+ end
325
+ elsif value.respond_to? :to_hash
326
+ value.to_hash
327
+ else
328
+ value
329
+ end
330
+ end
331
+
332
+ end
333
+ end